<?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://caitengwei.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://caitengwei.com/blog</link>
	<description>临流揽镜曳双魂 落红逐青裙 依稀往梦幻如真 泪湿千里云</description>
	<lastBuildDate>Mon, 16 Jan 2012 08:59:15 +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>沙扬娜拉，MMIE</title>
		<link>http://caitengwei.com/blog/my-life/%e6%b2%99%e6%89%ac%e5%a8%9c%e6%8b%89%ef%bc%8cmmie/</link>
		<comments>http://caitengwei.com/blog/my-life/%e6%b2%99%e6%89%ac%e5%a8%9c%e6%8b%89%ef%bc%8cmmie/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 15:46:23 +0000</pubDate>
		<dc:creator>twcai</dc:creator>
				<category><![CDATA[My Life]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[总结]]></category>

		<guid isPermaLink="false">http://caitengwei.com/blog/?p=1053</guid>
		<description><![CDATA[年终总结要拖一下，这差不多是每年的惯例。 去年可能是我这两三年来最不用功的一年，却似乎是我收获最多的一年。为此我很感谢我身边的人，既然我都不怎么用功，那我收获的的肯定都是从慷慨的他们那里得到的。 先看一下去年写的计划（MMIE）好了。 1. 给自己买了5本非技术的书，要认认真真读完。 发现非技术的看起来还是很快的，去年一共看了7本，嫌疑人X的献身，1988，三重门，放学后，民主的细节，侦探伽里略，青春，黑客与画家。技术的看的不多，但还算看的仔细。 2. 计划以后每年去一到两个地方旅游，看时间吧，今年暂定春节去厦门看看。 春天去了次厦门，真是愉快的体验，好习惯，要保持！ 3. 既然当了QA了，就要做好。从Perl帝手里接过来的事情一定不能干砸了，好好学学automation test。 今年一年都在做QA automation，做了些不同的尝试，也收获了一些经验。其实这个东西还是蛮有意思的，因为 东西是做给ITer们用的，做起来比较自由，可以做的有意思。 光有测试工具还不行，怎么让测试工具配合软件开发的测试流程是个值得一直思考的问题。测试工具既要减轻QA的重复劳动又要能引导测试过程的规范。 一直要思考计算机程序的本质之一：怎样最大限度的减少人的重复劳动。 4. 用动态编程语言（Perl, Python神马的）写一个有意思的东东。 2010年下半年曾经学了一个星期的python，写了一个小东西，可惜因为项目放弃了使用python从此搁下了。今年算有了点决定权，2011下半年又拿起django框架的教程，花了两个星期写了个网页的骨架，不过因为不会前端难看到不好意思拿出来演示。今年吧，抽点时间美化一下。 5. 找一个C/C++开发的产品，读懂代码。 这个算是失败了，读了一点memcached和innodb的代码，但是没有读完。 6. 要抓机会锻炼*nix environment programming，各读一本OO和设计的书。 没完成吧，今年继续。 7. 不要再装逼，至少要学着由内而外的装。 哈哈，这个就留给朋友们评说吧。 8. 经常让自己看看上面这些都做了没。 从更新blog的速度就可以看出这条失败的可以 ================ 我是2011和2012的分割线 ================= 去年还有一些其他很值得纪录的事情。 去年，就在我生日前一天，那个MMIE里的可爱姑娘终于答应我问了一年多的请求！虽然我们有90％的日子都是分隔两地，但她带给我的快乐一直充满着我的生活。今年我再许一个愿望， 希望她能早点来杭州（^_^） 下半年美国客户来公司交流时给我颁发了一个刻着Rock Star的iPod touch。接着Boss又推荐我参加公司优秀员工评选，也终于在公司年会上得到了优秀员工奖。这些让我觉得过去一年自己并没有虚度。 另外，去年在豆瓣上一共纪录了124部电影为看过，一部分是以前看过的旧电影，但今年看的电影还是占了所有电影总数的三分之一。豆瓣fm推出以后，一共听了15601首歌，接触的音乐风格比我之前这20多年加起来都多。于是我打算恬不知耻的追认2011为我的文艺年哈哈。 今年的目标还没什么头绪。一是因为最近略忙没什么时间可以好好想想，二是有些事情真的在我能力以外。比如，今年爸妈都很辛苦，一直为家庭操劳，希望今年爸妈不再需要负担这么多事情，奶奶的病情也能够转好。 先写这么多吧。最近状态不是很对，所以才拖了这么久。]]></description>
			<content:encoded><![CDATA[<p>年终总结要拖一下，这差不多是每年的惯例。</p>
<p>去年可能是我这两三年来最不用功的一年，却似乎是我收获最多的一年。为此我很感谢我身边的人，既然我都不怎么用功，那我收获的的肯定都是从慷慨的他们那里得到的。</p>
<p>先看一下去年写的计划（<a href="http://caitengwei.com/blog/my-life/mmie/" title="MMIE" target="_blank">MMIE</a>）好了。</p>
<p>1. 给自己买了5本非技术的书，要认认真真读完。</p>
<ul>
<li>发现非技术的看起来还是很快的，去年一共看了7本，嫌疑人X的献身，1988，三重门，放学后，民主的细节，侦探伽里略，青春，黑客与画家。技术的看的不多，但还算看的仔细。</li>
</ul>
<p>2. 计划以后每年去一到两个地方旅游，看时间吧，今年暂定春节去厦门看看。</p>
<ul>
<li>春天去了次厦门，真是愉快的体验，好习惯，要保持！</li>
</ul>
<p>3. 既然当了QA了，就要做好。从Perl帝手里接过来的事情一定不能干砸了，好好学学automation test。
<ul>
<li>
今年一年都在做QA automation，做了些不同的尝试，也收获了一些经验。其实这个东西还是蛮有意思的，因为
<ol>
<li>东西是做给ITer们用的，做起来比较自由，可以做的有意思。</li>
<li>光有测试工具还不行，怎么让测试工具配合软件开发的测试流程是个值得一直思考的问题。测试工具既要减轻QA的重复劳动又要能引导测试过程的规范。</li>
<li>一直要思考计算机程序的本质之一：怎样最大限度的减少人的重复劳动。</li>
</ol>
</li>
</ul>
<p>4. 用动态编程语言（Perl, Python神马的）写一个有意思的东东。</p>
<ul>
<li>2010年下半年曾经学了一个星期的python，写了一个小东西，可惜因为项目放弃了使用python从此搁下了。今年算有了点决定权，2011下半年又拿起django框架的教程，花了两个星期写了个网页的骨架，不过因为不会前端难看到不好意思拿出来演示。今年吧，抽点时间美化一下。</li>
</ul>
<p>5. 找一个C/C++开发的产品，读懂代码。</p>
<ul>
<li>这个算是失败了，读了一点memcached和innodb的代码，但是没有读完。</li>
</ul>
<p>6. 要抓机会锻炼*nix environment programming，各读一本OO和设计的书。</p>
<ul>
<li>没完成吧，今年继续。</li>
</ul>
<p>7. 不要再装逼，至少要学着由内而外的装。</p>
<ul>
<li>哈哈，这个就留给朋友们评说吧。</li>
</ul>
<p>8. 经常让自己看看上面这些都做了没。</p>
<ul>
<li>从更新blog的速度就可以看出这条失败的可以</li>
</ul>
<p>================ 我是2011和2012的分割线 =================</p>
<p>去年还有一些其他很值得纪录的事情。</p>
<p>去年，就在我生日前一天，那个MMIE里的<a href="http://www.weibo.com/u/1812671004" title="时间怎么都不够" target="_blank">可爱姑娘</a>终于答应我问了一年多的请求！虽然我们有90％的日子都是分隔两地，但她带给我的快乐一直充满着我的生活。今年我再许一个愿望， 希望她能早点来杭州（^_^）</p>
<p>下半年美国客户来公司交流时给我颁发了一个刻着Rock Star的iPod touch。接着Boss又推荐我参加公司优秀员工评选，也终于在公司年会上得到了优秀员工奖。这些让我觉得过去一年自己并没有虚度。</p>
<p>另外，去年在豆瓣上一共纪录了124部电影为看过，一部分是以前看过的旧电影，但今年看的电影还是占了所有电影总数的三分之一。豆瓣fm推出以后，一共听了15601首歌，接触的音乐风格比我之前这20多年加起来都多。于是我打算恬不知耻的追认2011为我的文艺年哈哈。</p>
<p>今年的目标还没什么头绪。一是因为最近略忙没什么时间可以好好想想，二是有些事情真的在我能力以外。比如，今年爸妈都很辛苦，一直为家庭操劳，希望今年爸妈不再需要负担这么多事情，奶奶的病情也能够转好。</p>
<p>先写这么多吧。最近状态不是很对，所以才拖了这么久。</p>
]]></content:encoded>
			<wfw:commentRss>http://caitengwei.com/blog/my-life/%e6%b2%99%e6%89%ac%e5%a8%9c%e6%8b%89%ef%bc%8cmmie/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>作为一个命令行偏执狂&#8230;</title>
		<link>http://caitengwei.com/blog/programming/perl/%e4%bd%9c%e4%b8%ba%e4%b8%80%e4%b8%aa%e5%91%bd%e4%bb%a4%e8%a1%8c%e5%81%8f%e6%89%a7%e7%8b%82/</link>
		<comments>http://caitengwei.com/blog/programming/perl/%e4%bd%9c%e4%b8%ba%e4%b8%80%e4%b8%aa%e5%91%bd%e4%bb%a4%e8%a1%8c%e5%81%8f%e6%89%a7%e7%8b%82/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 16:50:52 +0000</pubDate>
		<dc:creator>twcai</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[LWP]]></category>
		<category><![CDATA[XPath]]></category>
		<category><![CDATA[字典]]></category>

		<guid isPermaLink="false">http://caitengwei.com/blog/?p=1012</guid>
		<description><![CDATA[好久没有更新博客了，这次更新的原因是上次贴的Perl脚本查Google字典因为Google关闭字典服务的关系已经不能再用了。 前段时间接触了一个新东西叫XPath，名字听起来挺酷的，于是拿来又折腾了一个脚本出来。这次查的是有道辞典，没有Google的好用，但因为Google字典已经不再提供服务，目前能找到的Google字典服务都是通过Unofficial API实现的，也不知道能用多久，就先这么凑合着用吧。 上图 这次脚本代码还是主要分两部分，一部分是通过LWP::UserAgent抓网页内容，一部分是用HTML::TreeBuilder::XPath分析网页内容提取需要的数据。 XPath其实是一门用来在XML文档中查找信息的语言，比较简单的说就是他能用一个路径表达式定位到一个XML文档里面的某个（或某几个）标签。因为XHTML借鉴了XML的结构，所以我们也可以用XPath来定位XHTML网页中的某个特定标签（XPath几乎总是能定位到一个正常网页中的特定标签的）。 在原来使用的网页解析模块HTML::TokenParser中，所有网页标签都按出现顺序排列，并且标签之间都是并列的关系。但是没有一个Browser DEV tool会用这种结构给开发者展示网页源代码，即便我们写代码时也不会这样写。所以这样并列的结构其实对开发者来说是不直观的，也使得编码复杂了很多。 而在XPath的世界里，网页的结构是树型的，每个标签都是这棵树上的结点或叶子，开发者会发现很容易就能找出一个路径通往我们想要的那个标签。不过如果你有Firebug和FireFinder这两个网页开发辅助插件，你会发现用起XPath来更加得心应手。 直接对比下面一个脚本和上一个脚本中网页分析部分的代码，你就能直观的感受到上面提到这两种方法的差别。XPath的详细介绍和语法，请猛击W3school #!/usr/bin/perl use strict; use warnings; use IO::Scalar; use LWP::UserAgent; use HTML::TreeBuilder::XPath; use URI::Escape; use Data::Dumper; use encoding&#160;&#34;utf-8&#34;; &#160; my&#160;$keyword = $ARGV[0]; die&#160;&#34;You must pass a Chinese/English word as parameter&#34; if ( ! $keyword ); &#160; my&#160;$url&#160; = 'http://dict.youdao.com/search?q=KEYW0RD&#38;ue=utf8'; $keyword = uri_escape(&#160;$keyword ); $url&#160; &#160;&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>好久没有更新博客了，这次更新的原因是上次贴的<a href="./programming/perl/perl脚本查google字典/" target='_blank'>Perl脚本查Google字典</a>因为Google关闭字典服务的关系已经不能再用了。</p>
<p>前段时间接触了一个新东西叫XPath，名字听起来挺酷的，于是拿来又折腾了一个脚本出来。这次查的是有道辞典，没有Google的好用，但因为Google字典已经不再提供服务，目前能找到的Google字典服务都是通过Unofficial API实现的，也不知道能用多久，就先这么凑合着用吧。</p>
<p>上图<br />
<a href="http://caitengwei.com/blog/wp-content/uploads/2011/11/youdao_dict.jpg" class="highslide-image" onclick="return hs.expand(this);"><img alt="youdao_dict " src="http://caitengwei.com/blog/wp-content/uploads/2011/11/youdao_dict.jpg" title="youdao_dict" width="640" height="400" /></a><br />
<br/><br />
这次脚本代码还是主要分两部分，一部分是通过LWP::UserAgent抓网页内容，一部分是用HTML::TreeBuilder::XPath分析网页内容提取需要的数据。</p>
<ul>
<li>XPath其实是一门用来在XML文档中查找信息的语言，比较简单的说就是他能用一个路径表达式定位到一个XML文档里面的某个（或某几个）标签。因为XHTML借鉴了XML的结构，所以我们也可以用XPath来定位XHTML网页中的某个特定标签（XPath几乎总是能定位到一个正常网页中的特定标签的）。
</li>
<p><br/></p>
<li>
在原来使用的网页解析模块HTML::TokenParser中，所有网页标签都按出现顺序排列，并且标签之间都是并列的关系。但是没有一个Browser DEV tool会用这种结构给开发者展示网页源代码，即便我们写代码时也不会这样写。所以这样并列的结构其实对开发者来说是不直观的，也使得编码复杂了很多。
</li>
<p><br/></p>
<li>
而在XPath的世界里，网页的结构是树型的，每个标签都是这棵树上的结点或叶子，开发者会发现很容易就能找出一个路径通往我们想要的那个标签。不过如果你有Firebug和FireFinder这两个网页开发辅助插件，你会发现用起XPath来更加得心应手。
</li>
</ul>
<p><br/><br />
直接对比下面一个脚本和<a href="./programming/perl/perl脚本查google字典/" target='_blank'>上一个脚本</a>中网页分析部分的代码，你就能直观的感受到上面提到这两种方法的差别。XPath的详细介绍和语法，请猛击<a href="http://www.w3school.com.cn/xpath/index.asp" target='_blank'>W3school</a><span id="more-1012"></span></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Navy;">#!/usr/bin/perl</span></li>
<li><span style="color: Navy;">use strict</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use warnings</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use IO::Scalar</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use LWP::UserAgent</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use HTML::TreeBuilder::XPath</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use URI::Escape</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use Data::Dumper</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use encoding</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$keyword</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$ARGV</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">die</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">You must pass a Chinese/English word as parameter</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Gray;"> ! </span><span style="color: #00008b;">$keyword</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$url</span><span style="color: Gray;">&nbsp; = </span><span style="color: #8b0000;">'</span><span style="color: Red;">http://dict.youdao.com/search?q=KEYW0RD&amp;ue=utf8</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$keyword</span><span style="color: Gray;"> = </span><span style="color: Blue;">uri_escape</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$keyword</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$url</span><span style="color: Gray;">&nbsp; &nbsp;&nbsp; =~ </span><span style="color: Blue;">s</span><span style="color: Gray;">/</span><span style="color: Blue;">KEYW0RD</span><span style="color: Gray;">/</span><span style="color: #00008b;">$keyword</span><span style="color: Gray;">/;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$ua</span><span style="color: Gray;"> =</span><span style="color: Navy;"> LWP::UserAgent</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">new</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$ua</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">timeout</span><span style="color: Olive;">(</span><span style="color: Maroon;">30</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$ua</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">env_proxy</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$page</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$ua</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">get</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$url</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">die</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Cannot connect to youdao dictionary</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Green;">unless</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$page</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">is_success</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$buffer</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$screen</span><span style="color: Gray;"> =</span><span style="color: Navy;"> IO::Scalar</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">new</span><span style="color: Olive;">(</span><span style="color: Gray;"> \</span><span style="color: #00008b;">$buffer</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$tree</span><span style="color: Gray;">&nbsp;&nbsp; =</span><span style="color: Navy;"> HTML::TreeBuilder::XPath</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">new_from_content</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$page</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">decoded_content</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">get_translation</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$tree</span><span style="color: Gray;">, </span><span style="color: #00008b;">$screen</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$buffer</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">END</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$tree</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">delete</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">sub</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">get_translation</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$tree</span><span style="color: Gray;">, </span><span style="color: #00008b;">$screen</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> = </span><span style="color: #00008b;">@_</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$indent</span><span style="color: Gray;"> = </span><span style="color: Maroon;">2</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> ! </span><span style="color: #00008b;">$tree</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">exists</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">//div[@class=</span><span style="color: Navy;">\'</span><span style="color: Red;">trans-wrapper</span><span style="color: Navy;">\'</span><span style="color: Red;">][not(@id)]</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$screen</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Cannot find the translation on the page</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">1</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;"># Get the spell and phonetic of the word</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$screen</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$tree</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">findvalue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">//div[@class=</span><span style="color: Navy;">\'</span><span style="color: Red;">trans-wrapper</span><span style="color: Navy;">\'</span><span style="color: Red;">][not(@id)]/h2</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$screen</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$tree</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">exists</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">//div[@id=</span><span style="color: Navy;">\'</span><span style="color: Red;">eTransform</span><span style="color: Navy;">\'</span><span style="color: Red;">]</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;"># Get the basic translation of the word</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$screen</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$tree</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">findvalue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">//div[@id=</span><span style="color: Navy;">\'</span><span style="color: Red;">eTransform</span><span style="color: Navy;">\'</span><span style="color: Red;">]/h3/span/a[@rel=</span><span style="color: Navy;">\'</span><span style="color: Red;">#etcTrans</span><span style="color: Navy;">\'</span><span style="color: Red;">]/span</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">@translation_list</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$tree</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">findvalues</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">//div[@id=</span><span style="color: Navy;">\'</span><span style="color: Red;">eTransform</span><span style="color: Navy;">\'</span><span style="color: Red;">]/div/div[@id=</span><span style="color: Navy;">\'</span><span style="color: Red;">etcTrans</span><span style="color: Navy;">\'</span><span style="color: Red;">]/ul/</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">'</span><span style="color: Red;">li</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #00008b;">$#translation_list</span><span style="color: Gray;"> == -</span><span style="color: Maroon;">1</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;"># If didn't get any translation, it may be a chinese word</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">@translation_list</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$tree</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">findvalues</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">//div[@id=</span><span style="color: Navy;">\'</span><span style="color: Red;">eTransform</span><span style="color: Navy;">\'</span><span style="color: Red;">]/div/div[@id=</span><span style="color: Navy;">\'</span><span style="color: Red;">etcTrans</span><span style="color: Navy;">\'</span><span style="color: Red;">]/ul/</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">'</span><span style="color: Red;">p</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">foreach</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #00008b;">@translation_list</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$screen</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;"> </span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Blue;">x</span><span style="color: Gray;"> </span><span style="color: #00008b;">$indent</span><span style="color: Gray;">, </span><span style="color: Blue;">trim</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$_</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$screen</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$tree</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">exists</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">//div[@id=</span><span style="color: Navy;">\'</span><span style="color: Red;">examples</span><span style="color: Navy;">\'</span><span style="color: Red;">]</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;"># Get the examples of the word</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">@examples_id</span><span style="color: Gray;">&nbsp;&nbsp; = </span><span style="color: #8b0000;">qw(</span><span style="color: Red;">bilingual originalSound authority</span><span style="color: #8b0000;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">@examples_name</span><span style="color: Gray;"> = </span><span style="color: Green;">split</span><span style="color: Olive;">(</span><span style="color: #8b0000;"> /</span><span style="color: Red;">\s+</span><span style="color: #8b0000;">/</span><span style="color: Gray;">, </span><span style="color: Blue;">trim</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$tree</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">findvalue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">//div[@id=</span><span style="color: Navy;">\'</span><span style="color: Red;">examples</span><span style="color: Navy;">\'</span><span style="color: Red;">]/h3</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">foreach</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">my</span><span style="color: Gray;"> </span><span style="color: #00008b;">$index</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> .. </span><span style="color: Maroon;">2</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$xpath</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">//div[@id=</span><span style="color: Navy;">\'</span><span style="color: Red;">examples</span><span style="color: Navy;">\'</span><span style="color: Red;">]/div/div[@id=</span><span style="color: Navy;">\'</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> . </span><span style="color: #00008b;">$examples_id</span><span style="color: Olive;">[</span><span style="color: #00008b;">$index</span><span style="color: Olive;">]</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">'</span><span style="color: Navy;">\'</span><span style="color: Red;">]</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">next</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Gray;"> ! </span><span style="color: #00008b;">$tree</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">exists</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$xpath</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$screen</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">shift</span><span style="color: Gray;"> </span><span style="color: #00008b;">@examples_name</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">@examples_list</span><span style="color: Gray;">&nbsp; &nbsp; = </span><span style="color: #00008b;">$tree</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">findvalues</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: #00008b;">$xpath</span><span style="color: Red;">/ul/li/</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">p[not(</span><span style="color: Navy;">\@</span><span style="color: Red;">class)]</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$is_a_translation</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">foreach</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #00008b;">@examples_list</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$screen</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;"> </span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Blue;">x</span><span style="color: Gray;"> </span><span style="color: #00008b;">$indent</span><span style="color: Gray;">, </span><span style="color: #00008b;">$is_a_translation</span><span style="color: Gray;"> ? </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">~ </span><span style="color: #00008b;">$_</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> : </span><span style="color: #00008b;">$_</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$is_a_translation</span><span style="color: Gray;"> ^= </span><span style="color: Maroon;">1</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$index</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">2</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$screen</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">sub</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">trim</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$string</span><span style="color: Gray;"> = </span><span style="color: Green;">shift</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$string</span><span style="color: Gray;"> =~ </span><span style="color: Blue;">s</span><span style="color: Gray;">/^\</span><span style="color: Blue;">s</span><span style="color: Gray;">*</span><span style="color: Olive;">(</span><span style="color: Gray;">.*?</span><span style="color: Olive;">)</span><span style="color: Gray;">\</span><span style="color: Blue;">s</span><span style="color: Gray;">*$/</span><span style="color: #00008b;">$1</span><span style="color: Gray;">/;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$string</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://caitengwei.com/blog/programming/perl/%e4%bd%9c%e4%b8%ba%e4%b8%80%e4%b8%aa%e5%91%bd%e4%bb%a4%e8%a1%8c%e5%81%8f%e6%89%a7%e7%8b%82/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>比赛的意义</title>
		<link>http://caitengwei.com/blog/algorithm-match/acmicpc/%e6%af%94%e8%b5%9b%e7%9a%84%e6%84%8f%e4%b9%89/</link>
		<comments>http://caitengwei.com/blog/algorithm-match/acmicpc/%e6%af%94%e8%b5%9b%e7%9a%84%e6%84%8f%e4%b9%89/#comments</comments>
		<pubDate>Mon, 30 May 2011 15:14:05 +0000</pubDate>
		<dc:creator>twcai</dc:creator>
				<category><![CDATA[ACM/ICPC]]></category>
		<category><![CDATA[My Life]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[ICPC]]></category>
		<category><![CDATA[World Finals]]></category>
		<category><![CDATA[快乐]]></category>

		<guid isPermaLink="false">http://caitengwei.com/blog/?p=1008</guid>
		<description><![CDATA[今天是2011 World Finals ACM/ICPC的比赛日，晚上10点开始看比赛的直播，看着每个学校的队伍的排名交错的攀升，看到HDU-Knuth的两题AC，两题WA，突然脑海闪回过自己的大二暑假，背上出了点汗，手臂上起了鸡皮疙瘩。 杭电进World Finals已经不是第一次，但是今年退役后看比赛跟去年在役看比赛是两种心情。在役时似乎更多的是不甘心和一些小嫉妒，因为我显然WF无望。之前自然也知道想进World Finals很难很难，但还是难免偶尔会狂妄的暗暗把这当作自己的目标。现在的我，对自己宽容了，内心平静了，但有时候也怀疑自己是不是失去了激情和进取心。 记得以前北大的CICI姐姐写过一篇日志，大致是说她在World Finals看到一个非洲的大学的队伍，只AC两题，却在赛后激动的跟领队拥抱欢呼。虽然她一个人也可以做出两题，但是她却没有那些人的快乐。 想到这里，我释然了，ACM/ICPC竞赛可以给我的，我都已经得到了。]]></description>
			<content:encoded><![CDATA[<p>今天是2011 World Finals ACM/ICPC的比赛日，晚上10点开始看比赛的直播，看着每个学校的队伍的排名交错的攀升，看到HDU-Knuth的两题AC，两题WA，突然脑海闪回过自己的大二暑假，背上出了点汗，手臂上起了鸡皮疙瘩。</p>
<p>杭电进World Finals已经不是第一次，但是今年退役后看比赛跟去年在役看比赛是两种心情。在役时似乎更多的是不甘心和一些小嫉妒，因为我显然WF无望。之前自然也知道想进World Finals很难很难，但还是难免偶尔会狂妄的暗暗把这当作自己的目标。现在的我，对自己宽容了，内心平静了，但有时候也怀疑自己是不是失去了激情和进取心。</p>
<p>记得以前北大的CICI姐姐写过一篇日志，大致是说她在World Finals看到一个非洲的大学的队伍，只AC两题，却在赛后激动的跟领队拥抱欢呼。虽然她一个人也可以做出两题，但是她却没有那些人的快乐。</p>
<p>想到这里，我释然了，ACM/ICPC竞赛可以给我的，我都已经得到了。</p>
]]></content:encoded>
			<wfw:commentRss>http://caitengwei.com/blog/algorithm-match/acmicpc/%e6%af%94%e8%b5%9b%e7%9a%84%e6%84%8f%e4%b9%89/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SVN导入外部项目到本项目版本库</title>
		<link>http://caitengwei.com/blog/programming/svn%e5%af%bc%e5%85%a5%e5%a4%96%e9%83%a8%e9%a1%b9%e7%9b%ae%e5%88%b0%e6%9c%ac%e9%a1%b9%e7%9b%ae%e7%89%88%e6%9c%ac%e5%ba%93/</link>
		<comments>http://caitengwei.com/blog/programming/svn%e5%af%bc%e5%85%a5%e5%a4%96%e9%83%a8%e9%a1%b9%e7%9b%ae%e5%88%b0%e6%9c%ac%e9%a1%b9%e7%9b%ae%e7%89%88%e6%9c%ac%e5%ba%93/#comments</comments>
		<pubDate>Sat, 28 May 2011 03:53:51 +0000</pubDate>
		<dc:creator>twcai</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[svn:externals]]></category>
		<category><![CDATA[外部定义]]></category>

		<guid isPermaLink="false">http://caitengwei.com/blog/?p=998</guid>
		<description><![CDATA[原文链接 为什么需要导入外部项目到本项目版本库 在项目开发的过程中我们很可能会遇到这种情况：我们手头开发的项目可能要用到其他项目的内容。 最容易想到的办法是从其他项目的版本库里取出那部分内容，拷贝并添加到本项目的版本库中。但如果我们要令其他项目那过来的那部分内容保持最新，就是一个非常繁琐的工作了。 有没有高效的办法 如果本项目的版本库自动取得被引用的外部项目的更新，例如每次&#8221;svn update&#8221;或者&#8221;svn checkout&#8221;都可以去外部项目的版本库取得最新的内容，那实在是非常方便。我们可以通过Subversion的外部定义功能来实现这个目的。外部定义是一组本地文件路径和URL的映射，使svn可以取得外部版本库的文件到本地路径。 主要要用到以下几个svn指令 svn propset svn:externals PROJECT_NAME svn propedit svn:externals PROJECT_NAME svn propget svn:externals PROJECT_NAME 前两个指令都可以用来设置对应PROJECT_NAME的svn:externals属性，一般推荐用第二个。svn:externals的属性列表指定项目中模块的相对路径，版本信息和对应的URL。 例如： third-party/foo svn://example.com/repos/foo third-party/bar -r 1234 svn://example.com/repos/bar Subversion 1.5及以上的版本也支持以下的格式： http://example.com/foo third-party/foo -r 1234 http://example.com/bar third-party/bar 第三个指令则可以查询项目的外部定义的属性列表。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.schooner-ht.com/2011/05/26/svn%E5%AF%BC%E5%85%A5%E5%A4%96%E9%83%A8%E9%A1%B9%E7%9B%AE%E5%88%B0%E6%9C%AC%E9%A1%B9%E7%9B%AE%E7%89%88%E6%9C%AC%E5%BA%93/">原文链接</a></p>
<h6>为什么需要导入外部项目到本项目版本库</h6>
<p>在项目开发的过程中我们很可能会遇到这种情况：我们手头开发的项目可能要用到其他项目的内容。</p>
<p>最容易想到的办法是从其他项目的版本库里取出那部分内容，拷贝并添加到本项目的版本库中。但如果我们要令其他项目那过来的那部分内容保持最新，就是一个非常繁琐的工作了。</p>
<h6>有没有高效的办法</h6>
<p>如果本项目的版本库自动取得被引用的外部项目的更新，例如每次&#8221;svn update&#8221;或者&#8221;svn checkout&#8221;都可以去外部项目的版本库取得最新的内容，那实在是非常方便。我们可以通过Subversion的外部定义功能来实现这个目的。外部定义是一组本地文件路径和URL的映射，使svn可以取得外部版本库的文件到本地路径。</p>
<h6>主要要用到以下几个svn指令</h6>
<pre>
svn propset  svn:externals PROJECT_NAME
svn propedit svn:externals PROJECT_NAME
svn propget  svn:externals PROJECT_NAME
</pre>
<p>前两个指令都可以用来设置对应PROJECT_NAME的svn:externals属性，一般推荐用第二个。svn:externals的属性列表指定项目中模块的相对路径，版本信息和对应的URL。</p>
<p>例如：</p>
<pre>
third-party/foo         svn://example.com/repos/foo
third-party/bar -r 1234 svn://example.com/repos/bar
</pre>
<p>Subversion 1.5及以上的版本也支持以下的格式：</p>
<pre>
        http://example.com/foo third-party/foo
-r 1234 http://example.com/bar third-party/bar
</pre>
<p>第三个指令则可以查询项目的外部定义的属性列表。</p>
]]></content:encoded>
			<wfw:commentRss>http://caitengwei.com/blog/programming/svn%e5%af%bc%e5%85%a5%e5%a4%96%e9%83%a8%e9%a1%b9%e7%9b%ae%e5%88%b0%e6%9c%ac%e9%a1%b9%e7%9b%ae%e7%89%88%e6%9c%ac%e5%ba%93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl脚本查Google字典</title>
		<link>http://caitengwei.com/blog/programming/perl/perl%e8%84%9a%e6%9c%ac%e6%9f%a5google%e5%ad%97%e5%85%b8/</link>
		<comments>http://caitengwei.com/blog/programming/perl/perl%e8%84%9a%e6%9c%ac%e6%9f%a5google%e5%ad%97%e5%85%b8/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 17:37:18 +0000</pubDate>
		<dc:creator>twcai</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[LWP]]></category>
		<category><![CDATA[TokeParser]]></category>
		<category><![CDATA[字典]]></category>

		<guid isPermaLink="false">http://caitengwei.com/blog/?p=961</guid>
		<description><![CDATA[这个Perl脚本其实并不能算我的原创，是师傅Perl帝拿出来分享的。本来拿的是iciba的翻译，我另外改了一个上Google字典拿翻译的版本。 要修改的原因： 1. Google字典的英中字典，有双语解释； 2. Google字典的例句和相关短语这些资源要丰富的多，可以帮助理解单词使用的语境，写英文材料时非常有用； 3. 我习惯用Google字典，我一个G粉。 先上截图 为什么要用一个脚本查单词？对于命令行控来说，离开当前工作终端，开个网页查单词是很痛苦的事情，他们甚至根本不想让手离开主键盘区！有这样的一个脚本，然后扔进/user/bin/，就不用大费周章的移动手臂了。 这个脚本用LWP::UserAgent抓取网页，HTML::TokeParser解析网页，获取单词的翻译。 脚本实现了一个抓取和解析google字典的类，整体的逻辑在en2chs函数中： 1. 生成网址 2. 用LWP取得结果网页 3. 解析网页 _parse_html找到翻译信息所在的代码块——一个id叫“pr-root”的标签，然后主要的体力活就全都扔给_get_close_mean啦。 要通过html标签来定位自己想要的内容，还真是个蛮累人的事情。但是Chrome的Deveploper Tools让事情简单了很多，实在是让人心神舒畅啊。 来看代码吧 &#19979;&#36733;: gdict.pl#!/usr/bin/perl use strict; use warnings; &#160; my&#160;$robot = Translater-&#62;new; print&#160;$robot-&#62;en2chs( $ARGV[0] ); &#160; # # Class Translator # package&#160;Translater; &#160; use strict; use warnings; use LWP::UserAgent; use HTML::TokeParser; use URI::Escape; use Carp&#160;qw(confess); [...]]]></description>
			<content:encoded><![CDATA[<p>这个Perl脚本其实并不能算我的原创，是师傅<a href="http://t.sina.com.cn/kanhongdeng">Perl帝</a>拿出来分享的。本来拿的是iciba的翻译，我另外改了一个上Google字典拿翻译的版本。</p>
<p>要修改的原因：<br />
1. Google字典的英中字典，有双语解释；<br />
2. Google字典的例句和相关短语这些资源要丰富的多，可以帮助理解单词使用的语境，写英文材料时非常有用；<br />
3. 我习惯用Google字典，我一个G粉。</p>
<p>先上截图<br />
<a href="http://caitengwei.com/blog/wp-content/uploads/2011/03/gdict.png" class="highslide-image" onclick="return hs.expand(this);"><img alt="gdict " src="http://caitengwei.com/blog/wp-content/uploads/2011/03/gdict.png" title="Google Dictionary" width="640" height="400" /></a></p>
<p>为什么要用一个脚本查单词？对于命令行控来说，离开当前工作终端，开个网页查单词是很痛苦的事情，他们甚至根本不想让手离开主键盘区！有这样的一个脚本，然后扔进/user/bin/，就不用大费周章的移动手臂了。</p>
<p>这个脚本用LWP::UserAgent抓取网页，HTML::TokeParser解析网页，获取单词的翻译。</p>
<p>脚本实现了一个抓取和解析google字典的类，整体的逻辑在en2chs函数中：<br />
1. 生成网址<br />
2. 用LWP取得结果网页<br />
3. 解析网页</p>
<p>_parse_html找到翻译信息所在的代码块——一个id叫“pr-root”的标签，然后主要的体力活就全都扔给_get_close_mean啦。</p>
<p>要通过html标签来定位自己想要的内容，还真是个蛮累人的事情。但是Chrome的Deveploper Tools让事情简单了很多，实在是让人心神舒畅啊。</p>
<p>来看代码吧<span id="more-961"></span></p>
<div class="hl-title">&#19979;&#36733;: <a href="http://caitengwei.com/blog/wp-content/plugins/coolcode/coolcode.php?p=961&amp;download=gdict.pl">gdict.pl</a></div><div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Navy;">#!/usr/bin/perl </span></li>
<li><span style="color: Navy;">use strict</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use warnings</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$robot</span><span style="color: Gray;"> = </span><span style="color: Blue;">Translater</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">new</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$robot</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">en2chs</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$ARGV</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">#</span></li>
<li><span style="color: #ffa500;"># Class Translator</span></li>
<li><span style="color: #ffa500;">#</span></li>
<li><span style="color: Green;">package</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">Translater</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Navy;">use strict</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use warnings</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use LWP::UserAgent</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use HTML::TokeParser</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use URI::Escape</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use Carp</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">qw(</span><span style="color: Red;">confess</span><span style="color: #8b0000;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use IO::Scalar</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">sub</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$class</span><span style="color: Gray;"> = </span><span style="color: Green;">shift</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$self</span><span style="color: Gray;"> = </span><span style="color: Green;">bless</span><span style="color: Gray;"> </span><span style="color: Olive;">{}</span><span style="color: Gray;">, </span><span style="color: #00008b;">$class</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">_init</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$self</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">sub</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">_init</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$self</span><span style="color: Gray;"> = </span><span style="color: Green;">shift</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">browser</span><span style="color: Olive;">}</span><span style="color: Gray;"> =</span><span style="color: Navy;"> LWP::UserAgent</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">new</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">browser</span><span style="color: Olive;">}</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">timeout</span><span style="color: Olive;">(</span><span style="color: Maroon;">60</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">browser</span><span style="color: Olive;">}</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">env_proxy</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">_url</span><span style="color: Olive;">}</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.google.com.hk/dictionary?q=KEYW0RD&amp;hl=zh-CN&amp;langpair=en|zh-CN&amp;spell=1&amp;oi=spell</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">sub</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">en2chs</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$self</span><span style="color: Gray;">, </span><span style="color: #00008b;">$word</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> = </span><span style="color: #00008b;">@_</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$buffer</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$word</span><span style="color: Gray;"> = </span><span style="color: Blue;">uri_escape</span><span style="color: Olive;">(</span><span style="color: #00008b;">$word</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">_url</span><span style="color: Olive;">}</span><span style="color: Gray;"> =~ </span><span style="color: Blue;">s</span><span style="color: Gray;">/</span><span style="color: Blue;">KEYW0RD</span><span style="color: Gray;">/</span><span style="color: #00008b;">$word</span><span style="color: Gray;">/;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$response</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">browser</span><span style="color: Olive;">}</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">get</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">_url</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">confess</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Cannot connect to Google Dictionary </span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> . </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">browser</span><span style="color: Olive;">}</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">status_line</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">unless</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$response</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">is_success</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$content</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$response</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">content</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">_io</span><span style="color: Olive;">}</span><span style="color: Gray;"> =</span><span style="color: Navy;"> IO::Scalar</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">new</span><span style="color: Olive;">(</span><span style="color: Gray;"> \</span><span style="color: #00008b;">$buffer</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">_parse_html</span><span style="color: Olive;">(</span><span style="color: Gray;"> \</span><span style="color: #00008b;">$content</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$buffer</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">sub</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">_parse_html</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$self</span><span style="color: Gray;">, </span><span style="color: #00008b;">$ctxt_ref</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> = </span><span style="color: #00008b;">@_</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$stream</span><span style="color: Gray;"> =</span><span style="color: Navy;"> HTML::TokeParser</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">new</span><span style="color: Olive;">(</span><span style="color: #00008b;">$ctxt_ref</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">while</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Green;">my</span><span style="color: Gray;"> </span><span style="color: #00008b;">$token</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$stream</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">get_token</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">S</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">ul</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">exists</span><span style="color: Gray;"> </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]{</span><span style="color: Blue;">id</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]{</span><span style="color: Blue;">id</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">pr-root</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">_get_close_mean</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$stream</span><span style="color: Gray;">, </span><span style="color: #00008b;">$token</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">_io</span><span style="color: Olive;">}</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">sub</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">_get_close_mean</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$self</span><span style="color: Gray;">, </span><span style="color: #00008b;">$stream</span><span style="color: Gray;">, </span><span style="color: #00008b;">$token</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> = </span><span style="color: #00008b;">@_</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$mean_counter</span><span style="color: Gray;"> = </span><span style="color: Maroon;">1</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">while</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #00008b;">$token</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">S</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">exists</span><span style="color: Gray;"> </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]{</span><span style="color: Blue;">class</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]{</span><span style="color: Blue;">class</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">dct-tt</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;"># find dictionary entry</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">_io</span><span style="color: Olive;">}</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$stream</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">get_trimmed_text</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">/span</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elsif</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">S</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">div</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">exists</span><span style="color: Gray;"> </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]{</span><span style="color: Blue;">class</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]{</span><span style="color: Blue;">class</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">dct-em</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">_io</span><span style="color: Olive;">}</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n\n</span><span style="color: Red;">&nbsp; </span><span style="color: #00008b;">$mean_counter</span><span style="color: Red;">.&nbsp; </span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$mean_counter</span><span style="color: Gray;">++;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elsif</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">S</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">exists</span><span style="color: Gray;"> </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]{</span><span style="color: Blue;">title</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]{</span><span style="color: Blue;">title</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">Part-of-Speech</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;"># find Part-of-Speech</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">_io</span><span style="color: Olive;">}</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #00008b;">$stream</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">get_trimmed_text</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">/span</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$mean_counter</span><span style="color: Gray;"> = </span><span style="color: Maroon;">1</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elsif</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">S</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">div</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">exists</span><span style="color: Gray;"> </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]{</span><span style="color: Blue;">class</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]{</span><span style="color: Blue;">class</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">dct-ee</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;"># find example</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">_io</span><span style="color: Olive;">}</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: Red;">&nbsp; &nbsp; &nbsp; ~ </span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elsif</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">S</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">span</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">exists</span><span style="color: Gray;"> </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]{</span><span style="color: Blue;">class</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]{</span><span style="color: Blue;">class</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">dct-tp</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;"># find spell</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$spell</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$stream</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">get_trimmed_text</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">/span</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$spell</span><span style="color: Gray;"> =~</span><span style="color: #8b0000;"> /</span><span style="color: Red;">([\/\[].+[\/\]])</span><span style="color: #8b0000;">/</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$self</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">{</span><span style="color: Blue;">_io</span><span style="color: Olive;">}</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">print</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #00008b;">$1</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elsif</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">S</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">div</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">exists</span><span style="color: Gray;"> </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]{</span><span style="color: Blue;">class</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]{</span><span style="color: Blue;">class</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">dct-er</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;"># escape &quot;See also&quot; tag</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">while</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">true</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$token</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$stream</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">get_token</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">E</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">div</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">last</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$token</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$stream</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">get_token</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">S</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">and</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$token</span><span style="color: Gray;">-&gt;</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Green;">eq</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">h3</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">last</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://caitengwei.com/blog/programming/perl/perl%e8%84%9a%e6%9c%ac%e6%9f%a5google%e5%ad%97%e5%85%b8/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>只是不甘心让二月一片空白</title>
		<link>http://caitengwei.com/blog/my-life/%e5%8f%aa%e6%98%af%e4%b8%8d%e7%94%98%e5%bf%83%e8%ae%a9%e4%ba%8c%e6%9c%88%e4%b8%80%e7%89%87%e7%a9%ba%e7%99%bd/</link>
		<comments>http://caitengwei.com/blog/my-life/%e5%8f%aa%e6%98%af%e4%b8%8d%e7%94%98%e5%bf%83%e8%ae%a9%e4%ba%8c%e6%9c%88%e4%b8%80%e7%89%87%e7%a9%ba%e7%99%bd/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 15:59:43 +0000</pubDate>
		<dc:creator>twcai</dc:creator>
				<category><![CDATA[My Life]]></category>

		<guid isPermaLink="false">http://caitengwei.com/blog/?p=938</guid>
		<description><![CDATA[RT]]></description>
			<content:encoded><![CDATA[<p>RT</p>
]]></content:encoded>
			<wfw:commentRss>http://caitengwei.com/blog/my-life/%e5%8f%aa%e6%98%af%e4%b8%8d%e7%94%98%e5%bf%83%e8%ae%a9%e4%ba%8c%e6%9c%88%e4%b8%80%e7%89%87%e7%a9%ba%e7%99%bd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Not Going Anywhere</title>
		<link>http://caitengwei.com/blog/my-life/not-going-anywhere/</link>
		<comments>http://caitengwei.com/blog/my-life/not-going-anywhere/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 16:58:21 +0000</pubDate>
		<dc:creator>twcai</dc:creator>
				<category><![CDATA[My Life]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Springpad]]></category>
		<category><![CDATA[厦门]]></category>
		<category><![CDATA[计划]]></category>

		<guid isPermaLink="false">http://caitengwei.com/blog/?p=937</guid>
		<description><![CDATA[晚上8点，紫金港后门的腐败街80%的店都已经打烊了，小摊更是一个都不见了。 平常在腐败街正中间摆摊的那个烤猪蹄的老板，曾经以赚点钱回家过年为理由，把他的烤猪蹄们身价提高30%，虽然遭受了众人的抵制仍然可以很屌的吐槽：爱买不买。现在看来，他真顺利揣着钱，穿着纸尿裤回家过年去了。 晚上在Google Reader上看到这么一条调查成果“每天晚上8点到10点在做什么决定你是否能够成功”，看完我继续刷Google Reader，校内，豆瓣，各种刷刷到11点，开始检查我为今年写的计划。介于前几天开始读Memcached 1.4.5的源代码，算是又开始了2011计划里的又一项条目。 不过春节厦门旅游的事情也基本上潮吹告吹了，因为特么的从温岭到厦门的火车票，当天中午就卖光光了！真特么坑爹啊！！ 唉，不说不开心的事情啦，不如顺便分享一下这个用来管理自己计划的工具—Springpad。 官方对这个工具的介绍是“一个免费帮助你记忆，分类管理你的各种东东的应用”。猛击这里，你就能看到一个技术宅为他的2011定的计划。你要是觉得他根本没有去做这些事嘛，太没理想，又或者太装逼，都可以在这里吐槽他！ 最初发现这个东东是在Teddy君的日志Make it a better chrome。我看到截图中有个图标长着一根挺萌的黑色小箭头，于是去Chrome Web Store里找到她体验了一把，还真挺好用。 这里就不放链接了，请自行Google。如果你正在用Chrome，把他拖到你Chrome的App列表里面吧，灰常得心应手的说。嗯哼~]]></description>
			<content:encoded><![CDATA[<p>晚上8点，紫金港后门的腐败街80%的店都已经打烊了，小摊更是一个都不见了。</p>
<p>平常在腐败街正中间摆摊的那个烤猪蹄的老板，曾经以赚点钱回家过年为理由，把他的烤猪蹄们身价提高30%，虽然遭受了众人的抵制仍然可以很屌的吐槽：爱买不买。现在看来，他真顺利揣着钱，穿着纸尿裤回家过年去了。</p>
<p>晚上在Google Reader上看到这么一条调查成果“每天晚上8点到10点在做什么决定你是否能够成功”，看完我继续刷Google Reader，校内，豆瓣，各种刷刷到11点，开始检查我为今年写的计划。介于前几天开始读Memcached 1.4.5的源代码，算是又开始了<a href="./my-life/mmie/">2011计划</a>里的又一项条目。</p>
<p>不过春节厦门旅游的事情也基本上<del datetime="2011-01-27T16:40:26+00:00">潮吹</del>告吹了，因为特么的从温岭到厦门的火车票，当天中午就卖光光了！真特么坑爹啊！！</p>
<p>唉，不说不开心的事情啦，不如顺便分享一下这个用来管理自己计划的工具—Springpad。</p>
<p>官方对这个工具的介绍是“一个免费帮助你记忆，分类管理你的各种东东的应用”。猛击<a href="http://sprng.me/9ksh9">这里</a>，你就能看到一个技术宅为他的2011定的计划。你要是觉得他根本没有去做这些事嘛，太没理想，又或者太装逼，都可以在这里吐槽他！</p>
<p>最初发现这个东东是在Teddy君的日志<a href="http://ganlu.name/blog/archives/make-it-a-better-chrome">Make it a better chrome</a>。我看到截图中有个图标长着一根挺萌的黑色小箭头，于是去Chrome Web Store里找到她体验了一把，还真挺好用。</p>
<p>这里就不放链接了，请自行Google。如果你正在用Chrome，把他拖到你Chrome的App列表里面吧，灰常得心应手的说。嗯哼~</p>
<p><a href="http://caitengwei.com/blog/wp-content/uploads/2011/01/springpad.png" class="highslide-image" onclick="return hs.expand(this);"><img alt="Springpad " src="http://caitengwei.com/blog/wp-content/uploads/2011/01/springpad.png" title="springpad" width="640" height="400" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://caitengwei.com/blog/my-life/not-going-anywhere/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>MMIE</title>
		<link>http://caitengwei.com/blog/my-life/mmie/</link>
		<comments>http://caitengwei.com/blog/my-life/mmie/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 16:34:19 +0000</pubDate>
		<dc:creator>twcai</dc:creator>
				<category><![CDATA[My Life]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[总结]]></category>
		<category><![CDATA[计划]]></category>

		<guid isPermaLink="false">http://caitengwei.com/blog/?p=910</guid>
		<description><![CDATA[前两年跨年时，我留了两小坨东西在自己的博客上。 2009刚开始的时候，我是个憧憬美好淫生人生决心投身奋斗的学习青年。 2010的元旦，我居然能听着Jay的歌，在茅坑里内牛。 所以说写博客是个好事情，看看自己的过去，会有各种欢乐。 回想一下过去的十二个月，前一半时间基本是被毕设和找工作折腾。 最后一个学期，我粗略的翻阅了Beginning Linux Programming和Windows核心编程，记了半本A4大小的笔记本，也算是学了一点点win下和linux下的程序开发，于是给OJ留下一个半成品的对战评判系统。 然后花了点心思搞定丢失的一个学分，忐忑的毕业了。 照理说，大学的最后一个学期不会只有这两样事情，然而当时或不安或淡然，或失望或期待，现在想来都已经模糊了。最清晰的印象原来是一直在重复的事情:每天背着笔记本来往于寝室实验室，翻着大部头的书坐在屏幕前写着代码。 下半年，我终于从毕业的压力中解脱出来。每天上上班，平时玩一玩，也不知道自己忙了些什么，就老觉得时间怎么都不够，所以这本该在跨年时出现的日志，才这么姗姗来迟。 尽管这样，我还是发现自己喜欢上了一个姑娘（虽然不那么及时）。这姑娘笑起来的时候老可爱了，又当知心姐姐又能讲冷笑话，卖萌撒娇捂脸什么的样样精通，甚至于，还有点geek的基因。要是能追上这姑娘，我得高兴成啥样？! 好啦，来制定一下今年的目标吧： 1. 给自己买了5本非技术的书，要认认真真读完。 2. 计划以后每年去一到两个地方旅游，看时间吧，今年暂定春节去厦门看看。 3. 既然当了QA了，就要做好。从Perl帝手里接过来的事情一定不能干砸了，好好学学automation test。 4. 用动态编程语言（Perl, Python神马的）写一个有意思的东东。 5. 找一个C/C++开发的产品，读懂代码。 6. 要抓机会锻炼*nix environment programming，各读一本OO和设计的书。 7. 不要再装逼，至少要学着由内而外的装。 8. 经常让自己看看上面这些都做了没。 于是，这篇总结就这样了。你要知道，回忆神马的，总是很辛苦的。]]></description>
			<content:encoded><![CDATA[<p>前两年跨年时，我留了两小坨东西在自己的博客上。<br />
<a href="./my-life/%E5%93%87%EF%BD%9E2009%E5%95%A6/">2009</a>刚开始的时候，我是个憧憬美好<del datetime="2011-01-05T13:54:37+00:00">淫生</del>人生决心投身奋斗的学习青年。<br />
<a href="./blog/my-life/2010%E5%95%A6/">2010</a>的元旦，我居然能听着Jay的歌，在茅坑里内牛。<br />
所以说写博客是个好事情，看看自己的过去，会有各种欢乐。</p>
<p>回想一下过去的十二个月，前一半时间基本是被毕设和找工作折腾。<br />
最后一个学期，我粗略的翻阅了Beginning Linux Programming和Windows核心编程，记了半本A4大小的笔记本，也算是学了一点点win下和linux下的程序开发，于是给OJ留下一个半成品的对战评判系统。<br />
然后花了点心思搞定丢失的一个学分，忐忑的毕业了。<br />
照理说，大学的最后一个学期不会只有这两样事情，然而当时或不安或淡然，或失望或期待，现在想来都已经模糊了。最清晰的印象原来是一直在重复的事情:每天背着笔记本来往于寝室实验室，翻着大部头的书坐在屏幕前写着代码。</p>
<p>下半年，我终于从毕业的压力中解脱出来。每天上上班，平时玩一玩，也不知道自己忙了些什么，就老觉得时间怎么都不够，所以这本该在跨年时出现的日志，才这么姗姗来迟。<br />
尽管这样，我还是发现自己喜欢上了一个姑娘（虽然不那么及时）。这姑娘笑起来的时候老可爱了，又当知心姐姐又能讲冷笑话，卖萌撒娇捂脸什么的样样精通，甚至于，还有点geek的基因。要是能追上这姑娘，我得高兴成啥样？!</p>
<p>好啦，来制定一下今年的目标吧：</p>
<blockquote><p>1. 给自己买了5本非技术的书，要认认真真读完。<br />
2. 计划以后每年去一到两个地方旅游，看时间吧，今年暂定春节去厦门看看。<br />
3. 既然当了QA了，就要做好。从Perl帝手里接过来的事情一定不能干砸了，好好学学automation test。<br />
4. 用动态编程语言（Perl, Python神马的）写一个有意思的东东。<br />
5. 找一个C/C++开发的产品，读懂代码。<br />
6. 要抓机会锻炼*nix environment programming，各读一本OO和设计的书。<br />
7. 不要再装逼，至少要学着由内而外的装。<br />
8. 经常让自己看看上面这些都做了没。</p></blockquote>
<p>于是，这篇总结就这样了。你要知道，回忆神马的，总是很辛苦的。</p>
]]></content:encoded>
			<wfw:commentRss>http://caitengwei.com/blog/my-life/mmie/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>想不出标题了</title>
		<link>http://caitengwei.com/blog/my-life/wtf/</link>
		<comments>http://caitengwei.com/blog/my-life/wtf/#comments</comments>
		<pubDate>Sun, 24 Oct 2010 15:44:00 +0000</pubDate>
		<dc:creator>twcai</dc:creator>
				<category><![CDATA[My Life]]></category>

		<guid isPermaLink="false">http://caitengwei.com/blog/?p=888</guid>
		<description><![CDATA[住处突然断网，接着想起我这个已经长草的博客，于是回忆了下最近记忆比较深刻的事情，来这里Mark下。 造勒个梦 蘑菇实在是个爱折腾的孩子。我估计真要找一个愿意从紫金港跑到钱江新城的万象城去看iMax的人应该不多，何况他还无视了西湖时代广场的iMax因为那屏幕&#8221;整整&#8221;比万象城的窄了1米。 那晚看的电影是Inception，整个观影的动作分解就是俩脑袋不停在45度和70度之间调整仰角，因为我们当时只能买到第三排的位置了。 但是我要说，看iMax版Inception完全对的起我们这么折腾，因为iMax也可以算是某种程度上的造梦机器了！ 傻逼了吧 举国同庆前的那阵子，我好像特别冲动。具体表现在过了个Sample就信心满满的Submit，还以为自己能拿到个Yes呢。结果呢，第一次拿了个Runtime Error，接着被Wrong Answer。接下来有人说是TLE，有人说是PE，一坨坨Error搞得我头都昏了。 于是我想，其实也许这个算法从刚开始就YY错了呢？还是回头继续学习各种奇技淫巧吧。 有些孩子很好心，会问问我你这最近YY得咋样了？我只好说：没，还差得远呢。于是，我又不小心让自己陷入绝望里面了。 敢再给力些么 国庆长假连续腐败6天。谢谢！ 一斤欲望多少钱 这就是昨天的事，杭州下午还下着小雨，我只能说这天气太特么清新了。 然后下雨又貌似导致机器故障，主办方可能是想缓和大家的情绪放了点音乐。有个哥们说敢情我们是买票听CD来了，于是就有了一群人跟着音乐比中指的搞笑场面。不过也有几个人大概理解不了这种幽默感，以为大家都跟他一样义愤填膺了，直接进化成骂街，对这种人只好BS+无语。 即便如此，李志上场以后现场的气氛还是很给力的。弹唱，嘶吼，撒钱，一大票歌迷跟着他的节奏蹦达。后来我发现我左脚略往前的草坪上就有个水坑，估计是某位重量级的歌迷给蹦出来的。 后面甜蜜的孩子，曹方都显得略怂了些。介于全身的衣服都已经可耻的湿了，我们就无视曹方的安可曲，早退了。 昨晚回来把风骚的沾着几瞥泥浆的裤子扔进了洗衣机，今早晒裤子发现音乐节门票上的那个防伪标志无辜的从裤子上飘下来了。 狗日的，于是音乐节划上句号。 Ending 这三个月来，有一件事情一直贯穿在其中，我为此各种烦恼但又快乐着。 好吧，C&#8217;est La Vie.]]></description>
			<content:encoded><![CDATA[<p>住处突然断网，接着想起我这个已经长草的博客，于是回忆了下最近记忆比较深刻的事情，来这里Mark下。</p>
<p><strong>造勒个梦</strong></p>
<p>蘑菇实在是个爱折腾的孩子。我估计真要找一个愿意从紫金港跑到钱江新城的万象城去看iMax的人应该不多，何况他还无视了西湖时代广场的iMax因为那屏幕&#8221;整整&#8221;比万象城的窄了1米。</p>
<p>那晚看的电影是Inception，整个观影的动作分解就是俩脑袋不停在45度和70度之间调整仰角，因为我们当时只能买到第三排的位置了。</p>
<p>但是我要说，看iMax版Inception完全对的起我们这么折腾，因为iMax也可以算是某种程度上的造梦机器了！</p>
<p><strong>傻逼了吧</strong></p>
<p>举国同庆前的那阵子，我好像特别冲动。具体表现在过了个Sample就信心满满的Submit，还以为自己能拿到个Yes呢。结果呢，第一次拿了个Runtime Error，接着被Wrong Answer。接下来有人说是TLE，有人说是PE，一坨坨Error搞得我头都昏了。</p>
<p>于是我想，其实也许这个算法从刚开始就YY错了呢？还是回头继续学习各种奇技淫巧吧。</p>
<p>有些孩子很好心，会问问我你这最近YY得咋样了？我只好说：没，还差得远呢。于是，我又不小心让自己陷入绝望里面了。</p>
<p><strong>敢再给力些么</strong></p>
<p>国庆长假连续腐败6天。谢谢！</p>
<p><strong>一斤欲望多少钱</strong></p>
<p>这就是昨天的事，杭州下午还下着小雨，我只能说这天气太特么清新了。</p>
<p>然后下雨又貌似导致机器故障，主办方可能是想缓和大家的情绪放了点音乐。有个哥们说敢情我们是买票听CD来了，于是就有了一群人跟着音乐比中指的搞笑场面。不过也有几个人大概理解不了这种幽默感，以为大家都跟他一样义愤填膺了，直接进化成骂街，对这种人只好BS+无语。</p>
<p>即便如此，李志上场以后现场的气氛还是很给力的。弹唱，嘶吼，撒钱，一大票歌迷跟着他的节奏蹦达。后来我发现我左脚略往前的草坪上就有个水坑，估计是某位重量级的歌迷给蹦出来的。</p>
<p>后面甜蜜的孩子，曹方都显得略怂了些。介于全身的衣服都已经可耻的湿了，我们就无视曹方的安可曲，早退了。</p>
<p>昨晚回来把风骚的沾着几瞥泥浆的裤子扔进了洗衣机，今早晒裤子发现音乐节门票上的那个防伪标志无辜的从裤子上飘下来了。</p>
<p>狗日的，于是音乐节划上句号。</p>
<p><strong>Ending</strong></p>
<p>这三个月来，有一件事情一直贯穿在其中，我为此各种烦恼但又快乐着。</p>
<p>好吧，C&#8217;est La Vie.</p>
]]></content:encoded>
			<wfw:commentRss>http://caitengwei.com/blog/my-life/wtf/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Perl中建立一个实例方法的线程</title>
		<link>http://caitengwei.com/blog/programming/perl/perl%e4%b8%ad%e5%bb%ba%e7%ab%8b%e4%b8%80%e4%b8%aa%e5%ae%9e%e4%be%8b%e6%96%b9%e6%b3%95%e7%9a%84%e7%ba%bf%e7%a8%8b/</link>
		<comments>http://caitengwei.com/blog/programming/perl/perl%e4%b8%ad%e5%bb%ba%e7%ab%8b%e4%b8%80%e4%b8%aa%e5%ae%9e%e4%be%8b%e6%96%b9%e6%b3%95%e7%9a%84%e7%ba%bf%e7%a8%8b/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 17:42:17 +0000</pubDate>
		<dc:creator>twcai</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[OO]]></category>
		<category><![CDATA[多线程]]></category>
		<category><![CDATA[引用]]></category>

		<guid isPermaLink="false">http://caitengwei.com/blog/?p=857</guid>
		<description><![CDATA[标题有点复杂吧？其实就是新建一个线程，来运行某个对象实例中的特定函数。 一般在Perl中新建一个线程的方法很简单： use threads; my&#160;$th = threads-&#62;create( function_ref, parameters ); 但是启动一个实例中的函数就不太一样了，因为不能用 \&#038;$object->method 来取得该函数的引用。 因为自己写脚本的时候有用到，于是花了一个下午探索实验。然后发现一个确实可以work的办法：在一个匿名函数中调用该方法。 不过这个做法实在是丑陋，Perl这样灵活的语言，一定可以有更好的办法来解决这种问题。 实验加翻阅Intermediate perl一个下午还是无果，突然Perl帝出现，看了一眼代码后瞬间给出一个非常正规的解决方法。 具体请直接看示例代码： &#19979;&#36733;: cat.pmpackage Cat; &#160; use strict; use warnings; &#160; sub&#160;new { &#160; &#160; my&#160;$class = shift; &#160; &#160; my&#160;$self = { &#160; &#160; &#160; &#160; hello =&#62; 'Miao', &#160; &#160; &#160; &#160; @_ &#160; &#160; }; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>标题有点复杂吧？其实就是新建一个线程，来运行某个对象实例中的特定函数。</p>
<p>一般在Perl中新建一个线程的方法很简单：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Navy;">use threads</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$th</span><span style="color: Gray;"> = </span><span style="color: Blue;">threads</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">create</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">function_ref</span><span style="color: Gray;">, </span><span style="color: Blue;">parameters</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>但是启动一个实例中的函数就不太一样了，因为不能用 \&#038;$object->method 来取得该函数的引用。</p>
<p>因为自己写脚本的时候有用到，于是花了一个下午探索实验。然后发现一个确实可以work的办法：在一个匿名函数中调用该方法。</p>
<p>不过这个做法实在是丑陋，Perl这样灵活的语言，一定可以有更好的办法来解决这种问题。</p>
<p>实验加翻阅Intermediate perl一个下午还是无果，突然Perl帝出现，看了一眼代码后瞬间给出一个非常正规的解决方法。</p>
<p>具体请直接看示例代码：</p>
<div class="hl-title">&#19979;&#36733;: <a href="http://caitengwei.com/blog/wp-content/plugins/coolcode/coolcode.php?p=857&amp;download=cat.pm">cat.pm</a></div><div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">package</span><span style="color: Gray;"> </span><span style="color: Blue;">Cat</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Navy;">use strict</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use warnings</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">sub</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$class</span><span style="color: Gray;"> = </span><span style="color: Green;">shift</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$self</span><span style="color: Gray;"> = </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">hello</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">'</span><span style="color: Red;">Miao</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">@_</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">bless</span><span style="color: Gray;"> </span><span style="color: #00008b;">$self</span><span style="color: Gray;">, </span><span style="color: #00008b;">$class</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">sub</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sayhi</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$self</span><span style="color: Gray;"> = </span><span style="color: Green;">shift</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$times</span><span style="color: Gray;"> = </span><span style="color: Green;">shift</span><span style="color: Gray;"> || </span><span style="color: Maroon;">3</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">foreach</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Gray;"> .. </span><span style="color: #00008b;">$times</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: #00008b;">$self</span><span style="color: Red;">-&gt;{hello}</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">sleep</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">1</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Maroon;">1</span><span style="color: Gray;">;</span></li></ol></div>
<div class="hl-title">&#19979;&#36733;: <a href="http://caitengwei.com/blog/wp-content/plugins/coolcode/coolcode.php?p=857&amp;download=sayhi.pl">sayhi.pl</a></div><div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Navy;">#!/usr/bin/perl</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Navy;">use strict</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use warnings</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use threads</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use FindBin</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">qw(</span><span style="color: #00008b;">$Bin</span><span style="color: #8b0000;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use lib</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: #00008b;">$Bin</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Navy;">use Cat</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$cat</span><span style="color: Gray;"> = </span><span style="color: Blue;">Cat</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">new</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Red;">hello</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">'</span><span style="color: Red;">meow</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;"># solution 1: works but ugly</span></li>
<li><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: Red;">+++++++ solution 1 +++++++</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$th1</span><span style="color: Gray;"> = </span><span style="color: Blue;">threads</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">create</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Green;">sub</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"> </span><span style="color: #00008b;">$cat</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">sayhi</span><span style="color: Olive;">(</span><span style="color: Maroon;">4</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">foreach</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Gray;"> .. </span><span style="color: Maroon;">4</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">This is main function.</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">sleep</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">1</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: #00008b;">$th1</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">join</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;"># solution 2: more professional</span></li>
<li><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: Red;">+++++++ solution 2 +++++++</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">my</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$th2</span><span style="color: Gray;"> = </span><span style="color: Blue;">threads</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">create</span><span style="color: Olive;">(</span><span style="color: Gray;"> \</span><span style="color: Navy;">&amp;Cat::sayhi</span><span style="color: Gray;">, </span><span style="color: #00008b;">$cat</span><span style="color: Gray;">, </span><span style="color: Maroon;">4</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">foreach</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Gray;"> .. </span><span style="color: Maroon;">4</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">This is main function.</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">sleep</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">1</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: #00008b;">$th2</span><span style="color: Gray;">-&gt;</span><span style="color: Green;">join</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: Red;">Demo ends.</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://caitengwei.com/blog/programming/perl/perl%e4%b8%ad%e5%bb%ba%e7%ab%8b%e4%b8%80%e4%b8%aa%e5%ae%9e%e4%be%8b%e6%96%b9%e6%b3%95%e7%9a%84%e7%ba%bf%e7%a8%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

