<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[zlike]]></title>
  <link href="http://zlike.net/atom.xml" rel="self"/>
  <link href="http://zlike.net/"/>
  <updated>2012-02-02T14:30:12+08:00</updated>
  <id>http://zlike.net/</id>
  <author>
    <name><![CDATA[Zhu Like]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[推荐 - Life in a Day]]></title>
    <link href="http://zlike.net/blog/2012/02/02/tui-jian-life-in-a-day/"/>
    <updated>2012-02-02T14:13:00+08:00</updated>
    <id>http://zlike.net/blog/2012/02/02/tui-jian-life-in-a-day</id>
    <content type="html"><![CDATA[<p>一个纪录片，素材来自全世界（当然没有中国）YouTube用户的上传，由“两位奥斯卡金像级大导演－雷德利·斯科特(Ridley Scott)和凯文·麦克唐纳(Kevin Macdonald)－联同全球最大影片分享网站YouTube破天荒合作”（搜狐语），每一个片段都是人们在2010年7月24日用自己的镜头拍下的故事。</p>

<p>请耐着性子看，一个半小时的片长不会让你失望。</p>

<object width="640" height="360"><param name="movie" value="http://share.vrs.sohu.com/566082/v.swf&xuid="></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed width="640" height="360"  allowfullscreen="true" allowscriptaccess="always" quality="high" src="http://share.vrs.sohu.com/566082/v.swf&xuid=" type="application/x-shockwave-flash"/></embed></object>


<p>如果你能够打开YouTube，影片的官方网站在<a href="http://www.youtube.com/lifeinaday">这里</a>。他们的介绍是这么写的：</p>

<blockquote><p>On July 24th, 2010, thousands of people around the world uploaded videos of their days to YouTube to take port in Life in a Day, a historic cinematic experiment to create a documentary file about a single day on earth.</p>

<p>Oscar-winning director Kevin Macdonald whittled down over 4500 hours of footage into a 90-minute film that wowed audiences at the Sundance Berlin and SXSW Film Festivals earlier this year.</p>

<p>Now, after releasing in theaters across the globe, the film has returned to where it it all began. Watch it for free, and be sure to explre the channel to learn more about this amazing piece of cinema history.</p></blockquote>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Octopress...]]></title>
    <link href="http://zlike.net/blog/2012/01/24/octopress-dot-dot-dot/"/>
    <updated>2012-01-24T21:12:00+08:00</updated>
    <id>http://zlike.net/blog/2012/01/24/octopress-dot-dot-dot</id>
    <content type="html"><![CDATA[<p>插播一下通知。以前的Wordpress系统因为吃内存太厉害被我咔嚓掉了，换成现在静态的Octopress。这果然是个geek用的博客系统，rake来rake去的总算有点样子了。Octopress的官网在<a href="http://octopress.org">这里</a>。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[北京！北京！（一）]]></title>
    <link href="http://zlike.net/blog/2012/01/23/%25e5%258c%2597%25e4%25ba%25ac%25ef%25bc%2581%25e5%258c%2597%25e4%25ba%25ac%25ef%25bc%2581%25ef%25bc%2588%25e4%25b8%2580%25ef%25bc%2589/"/>
    <updated>2012-01-23T00:00:00+08:00</updated>
    <id>http://zlike.net/blog/2012/01/23/%e5%8c%97%e4%ba%ac%ef%bc%81%e5%8c%97%e4%ba%ac%ef%bc%81%ef%bc%88%e4%b8%80%ef%bc%89</id>
    <content type="html"><![CDATA[<p>又过年了。打开google map，浏览器里突然出现了熟悉的北京地图。拨弄了几下，各种各样的记忆涌上来，7年的生活果然不是那么容易就可以打败的。那就写下来，当作纪念。</p>

<h2>知春路还是西土城？</h2>

<p>北航是我去北京的意义。全名叫做北京航空航天大学，位于北京三环以外，四环以内，学院路西边。学校跟北京其他的学校一样，被围在方方正正的一个框里，每次跟别人说自己学校的时候，除了跟人说学校面积北京第三，还会补上一句“家属区占了三分之一的面积”。</p>

<p>我刚到北航的时候，旅行团的导游和司机师傅“公车私用”，送我和爸妈到主楼的正门，从那儿进的学校。当时还给现在已经是副院长的某某老师打了个电话问在哪里报到，现在想来，真是“好大的胆子”。那个时候，硕大的“新主楼” 还没有盖完（鬼知道哪个英明领导起的这个名字。这还不算，起个英文名字叫New Main Building，一不小心成了NMB）。没记错的话，这个使用面积和建筑面积比例严重偏小、过道比房间大的怪物应该是06年的时候完工的。然后08年，NMB的东南角10号线西土城站开通，成为我无数次的起点和终点。</p>

<img src="images/2012/01/DSCF0017.jpg" alt="北航校园" width="960" height="720" />

<img src="images/2012/01/DSCF0121.jpg" alt="新主楼" width="960" height="720" />

<img src="images/2012/01/DSCF0012.jpg" alt="体育馆和未完工的NMB" width="960" height="720" />

<p>大学本科四年、研究生两年半，我基本住在学校西南角的大运村公寓里，住宿费1800一年，水电自理，没有暖气。大运村的宿舍条件是我见过北京学生宿舍里比较好的，一个大屋里三个小屋，每个小屋有独立卫生间，有热水，电费自理。房间天花板上面有电热膜，即为干净环保的取暖方式，但是一个小时20度电让人心疼钱包，所以2011年冬天让我们腾宿舍装暖气的时候，大家虽然怨声载道，但是还是很识大体的全都搬走了。我一共在大运村住过1、2、3、9、10号楼，当中1号楼住过12、14、18层，算是个老赖，也许哪天大运村管委会可以给我发个荣誉居民什么的。之所以住过那么多地方，搬过那么多次，都是因为我的折腾。其实本科四年在1号楼1407住得很老实，但是一读研究生，因为已经习惯了，所以就赖在大运村不想走，才有了这光辉的战绩。</p>

<img src="images/2012/01/DSCF0001.jpg" alt="大运村" width="960" height="720" />

<p>大运村交通便利。8号楼底下有个门洞，出去就是地铁10号线和13号线，还有公交知春路站，去诺基亚实习那阵班车站也在大运村楼下。从这里，我上学、上班、出游、回家，经常因为西土城和知春路挨得近，在10号线里思量应该是西土城下去实验室，还是知春路下直接回宿舍。7年过去，大运村楼下的店家从KTV变成了KFC、天鸿酒店变成了立庭华苑。一直没变的，大概也就是SPR COFFEE门口那块“免费无线上网”的牌子了，虽然我一次都没有去过。</p>

<img src="images/2012/01/Image021.jpg" alt="大运村" width="960" height="720" />

<p>那儿是我在北京的窝。</p>

<h2>到底哪儿算中关村？</h2>

<p>中关村，原名“中倌村”。中倌者，太监也，据说本来是太监们终老的地方，但这已经是老黄历了。现在的中关村是北京的一张名片，无数IT界的传奇从这里传向全国。我已经记不得是什么时候第一次“进村”的了，不过也没人告诉过我准确的“中关村”地界是哪儿。后来觉得大概应该是苏州街以东、中关村大街以西、北四环以南、海淀南路以北这个框框里面的这块地，结果后来有人说“上地也有中关村”“望京也有”“⋯⋯”</p>

<p>我在中关村里有4个目的地——西北角的中关村图书大厦、鼎好海龙一带、中关村购物广场周边、单位。从学校去中关村，944、386或者611可以到海淀南路，下车往北走穿过海淀图书馆前的小公园就是单位。去图书大厦可以从知春路坐641到终点站海淀桥南，去鼎好海龙坐826到北大附近，后来这路车改成了626，忘了是什么时候了。</p>

<p>以前去中关村没有地铁，后来09年通了地铁4号线就有了中关村这一站。这一站贴墙的广告都是各种宏基华硕英特尔，安检的机器都比其他站大一号，方便跑货的拿各种机器设备进地铁。但是因为动物园站地铁电梯事故以后，那个通往鼎好的出口电梯就一直“正在维修中”，辛苦了各种小弟们做苦劳力搬上搬下。</p>
<p>我来北京的05年，是中关村最火的时候。那个时候和宿舍的哥们去中关村见世面，随便走进鼎好、科贸和海龙任一家，瞬间就会有一群导购冲上来拉自己衣服，一边“大哥，买电脑吗？”“大哥，装机吗？”“大哥，修电脑吗？”，不胜其烦。楼里也是人声鼎沸，吆喝叫卖，几千几万的设备卖法和菜市场里几毛几块的白菜卖法是一样的。几次下来以后大家都对村里产生了恐惧，不敢轻易去。07年国庆表弟来北京，带他去了一次，回来的时候就跟逃难的似的了。</p>

<p>但是现在的中关村电子市场已经完全不是当年的样子了。最近去过几次，一个柜台一摊的模式已经很少了，以前满地的DIY也已经被各种贩卖苹果设备的柜台取代。没有人再拉你衣服叫你装机，而是“大哥，买iphone么？”。</p>
<p>这个行业就是这样，什么东西火，去中关村看看再说吧。</p>
（待续）
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Test]]></title>
    <link href="http://zlike.net/blog/2011/12/21/test/"/>
    <updated>2011-12-21T00:00:00+08:00</updated>
    <id>http://zlike.net/blog/2011/12/21/test</id>
    <content type="html"><![CDATA[To be alive again&#8230;
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[视频下载脚本]]></title>
    <link href="http://zlike.net/blog/2011/09/27/download-youku-videos/"/>
    <updated>2011-09-27T00:00:00+08:00</updated>
    <id>http://zlike.net/blog/2011/09/27/download-youku-videos</id>
    <content type="html"><![CDATA[<p>作为这儿的第一个也应该是最后一个技术文章，下面这个脚本已经失效了⋯⋯</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
<span class='line-number'>35</span>
<span class='line-number'>36</span>
<span class='line-number'>37</span>
<span class='line-number'>38</span>
<span class='line-number'>39</span>
<span class='line-number'>40</span>
<span class='line-number'>41</span>
<span class='line-number'>42</span>
<span class='line-number'>43</span>
<span class='line-number'>44</span>
<span class='line-number'>45</span>
<span class='line-number'>46</span>
<span class='line-number'>47</span>
<span class='line-number'>48</span>
<span class='line-number'>49</span>
<span class='line-number'>50</span>
<span class='line-number'>51</span>
<span class='line-number'>52</span>
<span class='line-number'>53</span>
<span class='line-number'>54</span>
<span class='line-number'>55</span>
<span class='line-number'>56</span>
<span class='line-number'>57</span>
<span class='line-number'>58</span>
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="kn">import</span> <span class="nn">urllib2</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">sys</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">time</span><span class="o">,</span> <span class="nn">md5</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">xml.dom.minidom</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">subprocess</span>
</span><span class='line'>
</span><span class='line'><span class="k">def</span> <span class="nf">get_linked_video</span><span class="p">(</span><span class="n">url</span><span class="p">):</span>
</span><span class='line'>    <span class="n">auth</span> <span class="o">=</span> <span class="s">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([(</span><span class="nb">str</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()))),</span> <span class="s">&#39; XOA== MWZlNWE4Y2Q4OWQ0NjEyMWJjZTJmMWNiYTVhNzQwZGM=&#39;</span><span class="p">])</span>
</span><span class='line'>    <span class="n">auth</span> <span class="o">=</span> <span class="n">md5</span><span class="o">.</span><span class="n">md5</span><span class="p">(</span><span class="n">auth</span><span class="p">)</span><span class="o">.</span><span class="n">hexdigest</span><span class="p">()</span>
</span><span class='line'>    <span class="n">ctime</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span>
</span><span class='line'>    <span class="n">api_url1</span> <span class="o">=</span> <span class="s">&quot;http://kuapi.youku.com/api_rest?method=video.getvideoid&amp;amp;pid=XOA==&amp;amp;ctime=&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">ctime</span><span class="p">)</span> <span class="o">+</span> <span class="s">&quot;&amp;amp;auth=&quot;</span> <span class="o">+</span> <span class="n">auth</span> <span class="o">+</span> <span class="s">&quot;&amp;amp;url=&quot;</span> <span class="o">+</span> <span class="n">url</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">f</span> <span class="o">=</span> <span class="n">urllib2</span><span class="o">.</span><span class="n">urlopen</span><span class="p">(</span><span class="n">api_url1</span><span class="p">)</span>
</span><span class='line'>    <span class="n">content</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">30000</span><span class="p">)</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s">&quot;utf-8&quot;</span><span class="p">)</span>
</span><span class='line'>
</span><span class='line'>    <span class="k">print</span> <span class="n">content</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">data</span> <span class="o">=</span> <span class="n">xml</span><span class="o">.</span><span class="n">dom</span><span class="o">.</span><span class="n">minidom</span><span class="o">.</span><span class="n">parseString</span><span class="p">(</span><span class="n">content</span><span class="p">)</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">response</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">getElementsByTagName</span><span class="p">(</span><span class="s">&quot;response&quot;</span><span class="p">)</span>
</span><span class='line'>    <span class="n">videoId</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>
</span><span class='line'>    <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">response</span><span class="p">:</span>
</span><span class='line'>        <span class="n">c</span> <span class="o">=</span> <span class="n">r</span><span class="o">.</span><span class="n">childNodes</span>
</span><span class='line'>        <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">c</span><span class="p">:</span>
</span><span class='line'>            <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">nodeName</span> <span class="o">==</span> <span class="s">&quot;videoId&quot;</span><span class="p">:</span>
</span><span class='line'>                <span class="n">videoId</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">childNodes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">data</span>
</span><span class='line'>                <span class="k">break</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">api_url2</span> <span class="o">=</span> <span class="s">&quot;http://kuapi.youku.com/api_rest?method=video.getvideofile&amp;amp;pid=XOA==&amp;amp;ctime=&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">ctime</span><span class="p">)</span> <span class="o">+</span> <span class="s">&quot;&amp;amp;auth=&quot;</span> <span class="o">+</span> <span class="n">auth</span> <span class="o">+</span> <span class="s">&quot;&amp;amp;videoid=&quot;</span> <span class="o">+</span> <span class="n">videoId</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">f</span> <span class="o">=</span> <span class="n">urllib2</span><span class="o">.</span><span class="n">urlopen</span><span class="p">(</span><span class="n">api_url2</span><span class="p">)</span>
</span><span class='line'>    <span class="n">content</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">30000</span><span class="p">)</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s">&quot;utf-8&quot;</span><span class="p">)</span>
</span><span class='line'>
</span><span class='line'>    <span class="k">print</span> <span class="n">content</span>
</span><span class='line'>    <span class="n">data</span> <span class="o">=</span> <span class="n">xml</span><span class="o">.</span><span class="n">dom</span><span class="o">.</span><span class="n">minidom</span><span class="o">.</span><span class="n">parseString</span><span class="p">(</span><span class="n">content</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s">&quot;utf-8&quot;</span><span class="p">))</span>
</span><span class='line'>    <span class="n">response</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">getElementsByTagName</span><span class="p">(</span><span class="s">r&quot;response&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">title</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>
</span><span class='line'>    <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">response</span><span class="o">.</span><span class="n">childNodes</span><span class="p">:</span>
</span><span class='line'>        <span class="k">if</span> <span class="n">r</span><span class="o">.</span><span class="n">nodeName</span> <span class="o">==</span> <span class="s">&quot;title&quot;</span><span class="p">:</span>
</span><span class='line'>            <span class="n">title</span> <span class="o">=</span> <span class="n">r</span><span class="o">.</span><span class="n">childNodes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">data</span>
</span><span class='line'>            <span class="k">if</span> <span class="n">r</span><span class="o">.</span><span class="n">nodeName</span> <span class="o">==</span> <span class="s">&quot;streams&quot;</span><span class="p">:</span>
</span><span class='line'>                <span class="n">streams</span> <span class="o">=</span> <span class="n">r</span><span class="o">.</span><span class="n">childNodes</span>
</span><span class='line'>                <span class="k">for</span> <span class="n">s</span> <span class="ow">in</span> <span class="n">streams</span><span class="p">:</span>
</span><span class='line'>                    <span class="k">if</span> <span class="n">s</span><span class="o">.</span><span class="n">nodeName</span> <span class="o">==</span> <span class="s">&quot;stream&quot;</span><span class="p">:</span>
</span><span class='line'>                        <span class="n">tp</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">getAttribute</span><span class="p">(</span><span class="s">&quot;type&quot;</span><span class="p">)</span>
</span><span class='line'>                        <span class="k">if</span> <span class="n">tp</span> <span class="o">==</span> <span class="s">&quot;flv&quot;</span> <span class="ow">or</span> <span class="n">tp</span> <span class="o">==</span> <span class="s">&quot;flvhd&quot;</span><span class="p">:</span>
</span><span class='line'>                            <span class="n">segs</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">childNodes</span>
</span><span class='line'>                            <span class="k">for</span> <span class="n">seg</span> <span class="ow">in</span> <span class="n">segs</span><span class="p">:</span>
</span><span class='line'>                                <span class="k">if</span> <span class="n">seg</span><span class="o">.</span><span class="n">nodeName</span> <span class="o">==</span> <span class="s">&quot;seg&quot;</span><span class="p">:</span>
</span><span class='line'>                                    <span class="n">download_url</span> <span class="o">=</span> <span class="n">seg</span><span class="o">.</span><span class="n">getAttribute</span><span class="p">(</span><span class="s">&quot;url&quot;</span><span class="p">)</span>
</span><span class='line'>                                    <span class="n">seg_index</span> <span class="o">=</span> <span class="n">seg</span><span class="o">.</span><span class="n">getAttribute</span><span class="p">(</span><span class="s">&quot;id&quot;</span><span class="p">)</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">filename</span> <span class="o">=</span> <span class="n">title</span> <span class="o">+</span> <span class="s">&quot;_part&quot;</span> <span class="o">+</span> <span class="n">seg_index</span> <span class="o">+</span> <span class="s">&quot;.flv&quot;</span>
</span><span class='line'>    <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">([</span><span class="s">&quot;wget&quot;</span><span class="p">,</span> <span class="s">&quot;-T&quot;</span><span class="p">,</span> <span class="s">&quot;60&quot;</span><span class="p">,</span> <span class="s">&quot;-O&quot;</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="s">&quot;-U&quot;</span><span class="p">,</span> <span class="s">&quot;Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebkit/535.1 (KHTML, like Gecko) Chrome/14.0.825.0 Safari/535.1&quot;</span><span class="p">,</span> <span class="n">download_url</span><span class="p">])</span>
</span><span class='line'>
</span><span class='line'><span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span>
</span><span class='line'>    <span class="n">get_linked_video</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="o">&lt;/</span><span class="n">pre</span><span class="o">&gt;</span>
</span></code></pre></td></tr></table></div></figure>


<p>所以，如果有人用得到的话，下面这个脚本应该是可以用的，而且万能（向伟大的<a href="http://www.flvcd.com">flvcd.com</a>致敬！）</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
<span class='line-number'>35</span>
<span class='line-number'>36</span>
<span class='line-number'>37</span>
<span class='line-number'>38</span>
<span class='line-number'>39</span>
<span class='line-number'>40</span>
<span class='line-number'>41</span>
<span class='line-number'>42</span>
<span class='line-number'>43</span>
<span class='line-number'>44</span>
<span class='line-number'>45</span>
<span class='line-number'>46</span>
<span class='line-number'>47</span>
<span class='line-number'>48</span>
<span class='line-number'>49</span>
<span class='line-number'>50</span>
<span class='line-number'>51</span>
<span class='line-number'>52</span>
<span class='line-number'>53</span>
<span class='line-number'>54</span>
<span class='line-number'>55</span>
<span class='line-number'>56</span>
<span class='line-number'>57</span>
<span class='line-number'>58</span>
<span class='line-number'>59</span>
<span class='line-number'>60</span>
<span class='line-number'>61</span>
<span class='line-number'>62</span>
<span class='line-number'>63</span>
<span class='line-number'>64</span>
<span class='line-number'>65</span>
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="c">#!/usr/bin/python</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">urllib2</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">urllib</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">re</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">subprocess</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">os</span><span class="o">,</span> <span class="nn">sys</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">threading</span>
</span><span class='line'><span class="kn">import</span> <span class="nn">time</span>
</span><span class='line'>
</span><span class='line'><span class="k">def</span> <span class="nf">timed_download</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="n">timeout</span><span class="p">):</span>
</span><span class='line'>    <span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">title</span><span class="p">)</span> <span class="o">=</span> <span class="n">download</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span>
</span><span class='line'>    <span class="k">if</span> <span class="n">p</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
</span><span class='line'>        <span class="k">return</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
</span><span class='line'>    <span class="k">if</span> <span class="n">p</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
</span><span class='line'>        <span class="k">return</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="s">&#39;(duplicates)&#39;</span><span class="p">)</span>
</span><span class='line'>
</span><span class='line'>    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">timeout</span><span class="p">):</span>
</span><span class='line'>        <span class="c"># check if rt is still running every 1 sec.</span>
</span><span class='line'>        <span class="n">state</span> <span class="o">=</span> <span class="n">p</span><span class="o">.</span><span class="n">poll</span><span class="p">()</span>
</span><span class='line'>        <span class="k">if</span> <span class="n">state</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
</span><span class='line'>            <span class="k">break</span>
</span><span class='line'>        <span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
</span><span class='line'>
</span><span class='line'>    <span class="k">if</span> <span class="n">p</span><span class="o">.</span><span class="n">poll</span><span class="p">()</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
</span><span class='line'>        <span class="k">print</span> <span class="s">&#39;terminated.&#39;</span>
</span><span class='line'>        <span class="n">p</span><span class="o">.</span><span class="n">terminate</span><span class="p">()</span>
</span><span class='line'>    <span class="k">else</span><span class="p">:</span>
</span><span class='line'>        <span class="k">print</span> <span class="s">&#39;finished.&#39;</span>
</span><span class='line'>
</span><span class='line'>    <span class="k">return</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">title</span><span class="p">)</span>
</span><span class='line'>
</span><span class='line'><span class="k">def</span> <span class="nf">download</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">filename</span><span class="p">):</span>
</span><span class='line'>    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
</span><span class='line'>        <span class="k">return</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;exist&#39;</span><span class="p">)</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">videourl</span> <span class="o">=</span> <span class="n">url</span><span class="p">;</span>
</span><span class='line'>    <span class="n">url</span> <span class="o">=</span> <span class="s">&#39;http://www.flvcd.com/parse.php?flag=&amp;amp;format=&amp;amp;kw=&#39;</span> <span class="o">+</span> <span class="n">urllib</span><span class="o">.</span><span class="n">quote</span><span class="p">(</span><span class="n">videourl</span><span class="p">);</span>
</span><span class='line'>    <span class="n">req</span> <span class="o">=</span> <span class="n">urllib2</span><span class="o">.</span><span class="n">Request</span><span class="p">(</span><span class="n">url</span><span class="p">);</span>
</span><span class='line'>    <span class="n">req</span><span class="o">.</span><span class="n">add_header</span><span class="p">(</span><span class="s">&#39;host&#39;</span><span class="p">,</span> <span class="s">&#39;www.flvcd.com&#39;</span><span class="p">);</span>
</span><span class='line'>    <span class="n">req</span><span class="o">.</span><span class="n">add_header</span><span class="p">(</span><span class="s">&#39;Referer&#39;</span><span class="p">,</span> <span class="n">url</span><span class="p">[:</span><span class="o">-</span><span class="mi">4</span><span class="p">]);</span>
</span><span class='line'>    <span class="n">req</span><span class="o">.</span><span class="n">add_header</span><span class="p">(</span><span class="s">&#39;User-Agent&#39;</span><span class="p">,</span> <span class="s">&#39;Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebkit/535.1 (KHTML, like Gecko) Chrome/14.0.825.0 Safari/535.1&#39;</span><span class="p">);</span>
</span><span class='line'>    <span class="n">req</span><span class="o">.</span><span class="n">add_header</span><span class="p">(</span><span class="s">&#39;Accept-Language&#39;</span><span class="p">,</span> <span class="s">&#39;en-us,en;q=0.5&#39;</span><span class="p">);</span>
</span><span class='line'>    <span class="n">req</span><span class="o">.</span><span class="n">add_header</span><span class="p">(</span><span class="s">&#39;Accept-Encoding&#39;</span><span class="p">,</span> <span class="s">&#39;gzip, deflate&#39;</span><span class="p">);</span>
</span><span class='line'>    <span class="n">req</span><span class="o">.</span><span class="n">add_header</span><span class="p">(</span><span class="s">&#39;Accept-Charset&#39;</span><span class="p">,</span> <span class="s">&#39;ISO-8859-1,utf-8;q=0.7,*;q=0.7&#39;</span><span class="p">);</span>
</span><span class='line'>    <span class="n">req</span><span class="o">.</span><span class="n">add_header</span><span class="p">(</span><span class="s">&#39;Keep-Alive&#39;</span><span class="p">,</span> <span class="s">&#39;115&#39;</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">res</span> <span class="o">=</span> <span class="n">urllib2</span><span class="o">.</span><span class="n">urlopen</span><span class="p">(</span><span class="n">req</span><span class="p">);</span>
</span><span class='line'>    <span class="n">html</span> <span class="o">=</span> <span class="n">res</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">pattern</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s">&#39;firstmatch = pattern.search(html);</span>
</span><span class='line'>    <span class="k">if</span> <span class="n">firstmatch</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
</span><span class='line'>        <span class="n">urls</span> <span class="o">=</span> <span class="n">firstmatch</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'>        <span class="n">urlpattern</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s">&#39;(.+)&#39;</span><span class="p">);</span>
</span><span class='line'>        <span class="n">result</span> <span class="o">=</span> <span class="n">urlpattern</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="n">urls</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'>        <span class="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="n">result</span><span class="p">[</span><span class="n">i</span><span class="p">:</span><span class="n">i</span><span class="o">+</span><span class="mi">2</span><span class="p">]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">result</span><span class="p">),</span> <span class="mi">2</span><span class="p">)]</span>
</span><span class='line'>        <span class="n">url</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>
</span><span class='line'>        <span class="n">ret</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">([</span><span class="s">&quot;wget&quot;</span><span class="p">,</span> <span class="s">&quot;-T&quot;</span><span class="p">,</span> <span class="s">&quot;60&quot;</span><span class="p">,</span> <span class="s">&quot;-O&quot;</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="s">&quot;-U&quot;</span><span class="p">,</span> <span class="s">&quot;Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebkit/535.1 (KHTML, like Gecko) Chrome/14.0.825.0 Safari/535.1&quot;</span><span class="p">,</span> <span class="n">url</span><span class="p">])</span>
</span><span class='line'>        <span class="k">return</span> <span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
</span><span class='line'>    <span class="k">else</span><span class="p">:</span>
</span><span class='line'>        <span class="k">return</span> <span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
</span><span class='line'>
</span><span class='line'><span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&#39;__main__&#39;</span><span class="p">:</span>
</span><span class='line'>    <span class="n">timed_download</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">3</span><span class="p">]))</span><span class="o">&lt;/</span><span class="n">pre</span><span class="o">&gt;</span>
</span></code></pre></td></tr></table></div></figure>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[各种倒霉事]]></title>
    <link href="http://zlike.net/blog/2011/09/06/%25e5%2590%2584%25e7%25a7%258d%25e5%2580%2592%25e9%259c%2589%25e4%25ba%258b/"/>
    <updated>2011-09-06T00:00:00+08:00</updated>
    <id>http://zlike.net/blog/2011/09/06/%e5%90%84%e7%a7%8d%e5%80%92%e9%9c%89%e4%ba%8b</id>
    <content type="html"><![CDATA[<p>车丢了，房要没了，钱也少了，答辩也不过了。</p>

<p>这是什么日子！</p>

<p>每次推车进宿舍楼，楼下保安就找我麻烦。不想每次都臭脸，还专门跑去买了把锁，放新主楼楼下一晚上，今天早上去看还在，晚上回来，没了。纪念一下两年只驮着我走了493公里的美利达勇士09，我不会停下脚步的。</p>

<p>离最终滚蛋还有三个多月，大运村终于要装暖气了，前提是把我们赶到学校里去。楼下贴通知，“请同学们少购电”，摘要是，1号楼和4号楼的学生马上就要搬到校内去了，而电表里的预充电是不退的，但是又不能少于20度，所以大家要计算好电量，少买电。言下之意是，我们已经告诉你们这帮倒霉蛋了，要是多买了电，一概不退，不许来我这儿吵。</p>

<p>但是又不告诉什么时候搬，只说“于近期”。那我们怎么才能准确的“少购电”？没电了合闸，开个锁扳个开关你们要3块钱的时候，可是眼睛眨都不眨一下啊。</p>

<p>就好像新闻联播一样，大事发生先报国家领导如何如何，然后再“本台刚刚收到的消息”。要赶学生，先推掉滚蛋以后要负的责任，然后再告诉你们具体怎么滚蛋。真是上梁不正。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[中期答辩第二弹]]></title>
    <link href="http://zlike.net/blog/2011/08/23/%25e5%2592%25b3%25e5%2592%25b3%25ef%25bc%258c%25e7%25ac%25ac%25e4%25ba%258c%25e5%25bc%25b9/"/>
    <updated>2011-08-23T00:00:00+08:00</updated>
    <id>http://zlike.net/blog/2011/08/23/%e5%92%b3%e5%92%b3%ef%bc%8c%e7%ac%ac%e4%ba%8c%e5%bc%b9</id>
    <content type="html"><![CDATA[不好意思啊，中期检查还有两天，放一个新版PPT……
<div id="__ss_8969459" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="中期检查答辩第二弹" href="http://www.slideshare.net/LikeZhu/ss-8969459" target="_blank">中期检查答辩第二弹</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/8969459" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="425" height="355"></iframe>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/LikeZhu" target="_blank">Like Zhu</a></div>
</div>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[back to work...]]></title>
    <link href="http://zlike.net/blog/2011/08/16/back-to-work/"/>
    <updated>2011-08-16T00:00:00+08:00</updated>
    <id>http://zlike.net/blog/2011/08/16/back-to-work</id>
    <content type="html"><![CDATA[折腾了几天，把这个域名从原来国内某服务商那里迁到的godaddy，省掉了备案的步骤，更自由一些。花钱买了hosting，什么配置都不用做就能自动装上wordpress，省心。最近越来越发现东西真是一分钱一分货，付了钱，服务质量就完全不一样了。

不过第一篇要贴一些没啥意思的，就是我的中期检查报告PPT。中期答辩还没有开始（其实是连时间都不确定），所以先放在这里。写报告去也~
<div id="__ss_8860316" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="中期检查答辩" href="http://www.slideshare.net/LikeZhu/ss-8860316">中期检查答辩</a></strong><object id="__sse8860316" width="425" height="355" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=random-110815212408-phpapp02&amp;stripped_title=ss-8860316&amp;userName=LikeZhu" /><param name="allowscriptaccess" value="always" /><param name="allowfullscreen" value="true" /><embed id="__sse8860316" width="425" height="355" type="application/x-shockwave-flash" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=random-110815212408-phpapp02&amp;stripped_title=ss-8860316&amp;userName=LikeZhu" allowFullScreen="true" allowScriptAccess="always" allowscriptaccess="always" allowfullscreen="true" /></object>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/LikeZhu">Like Zhu</a>.</div>
</div>
]]></content>
  </entry>
  
</feed>

