<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_٩(͡๏̯͡๏)۶</title><subtitle type="text">☢☣☢☣☢☣</subtitle><id>http://feed.cnblogs.com/blog/u/70829/rss</id><updated>2012-06-02T08:07:39Z</updated><author><name>K++</name><uri>http://www.cnblogs.com/k-sharp/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/k-sharp/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/70829/rss"/><entry><id>http://www.cnblogs.com/k-sharp/archive/2012/06/02/2531993.html</id><title type="text">【plot】gnuplot制作唯美gif动画</title><summary type="text">gnuplot 4.6增加了for...loop, 为制作动画提供了方便. 改了标题。</summary><published>2012-06-02T07:56:00Z</published><updated>2012-06-02T07:56:00Z</updated><author><name>K++</name><uri>http://www.cnblogs.com/k-sharp/</uri></author><link rel="alternate" href="http://www.cnblogs.com/k-sharp/archive/2012/06/02/2531993.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/k-sharp/archive/2012/06/02/2531993.html"/><content type="html">&lt;p&gt;gnuplot 4.6增加了&lt;code&gt;for...loop&lt;/code&gt;, 为制作动画提供了方便.&lt;br /&gt;为了增加编程的乐趣, 我写了一个随机生成圆点的gif动画.&lt;br /&gt;如果你对gnuplot还不了解, 请阅读关于&lt;a href="http://hjkl.me/tagcloud.html#cat-plot"&gt;plot&lt;/a&gt;的相关文章.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;脚本&lt;/strong&gt;&lt;/p&gt;&lt;div class="highlight"&gt;&lt;code class="gnuplot"&gt;&lt;span class="c"&gt;#!/usr/bin/env gnuplot&lt;/span&gt;&lt;br/&gt;&lt;span class="c"&gt;# rnd.plt&lt;/span&gt;&lt;br/&gt;&lt;span class="c"&gt;# generate random dots&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span class="err"&gt;!mkdir&lt;/span&gt; &lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="k"&gt;p&lt;/span&gt; &lt;span class="n"&gt;rnd&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;term&lt;/span&gt; &lt;span class="n"&gt;svg&lt;/span&gt;&lt;br/&gt;&lt;span class="k"&gt;unset&lt;/span&gt; &lt;span class="nb"&gt;border&lt;/span&gt;&lt;br/&gt;&lt;span class="k"&gt;unset&lt;/span&gt; &lt;span class="nb"&gt;tics&lt;/span&gt;&lt;br/&gt;&lt;span class="nf"&gt;rnd&lt;/span&gt;(x) &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;rand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br/&gt;&lt;span class="err"&gt;do&lt;/span&gt; &lt;span class="err"&gt;for&lt;/span&gt; &lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;99&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br/&gt;    &lt;span class="nv"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sprintf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'rnd/%02d.svg'&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br/&gt;    &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;out&lt;/span&gt; &lt;span class="n"&gt;file&lt;/span&gt;&lt;br/&gt;    &lt;span class="k"&gt;plot&lt;/span&gt; &lt;span class="s"&gt;'&amp;lt;seq 10'&lt;/span&gt; &lt;span class="nb"&gt;using&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;rnd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;rnd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nf"&gt;rand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;rnd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; \&lt;br/&gt;        &lt;span class="nb"&gt;with&lt;/span&gt; &lt;span class="n"&gt;points&lt;/span&gt; &lt;span class="n"&gt;pt&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt; &lt;span class="n"&gt;ps&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt; &lt;span class="n"&gt;lc&lt;/span&gt; &lt;span class="n"&gt;rgb&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt; &lt;span class="nb"&gt;notitle&lt;/span&gt;&lt;br/&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span class="err"&gt;!convert&lt;/span&gt; &lt;span class="err"&gt;rnd/*.svg&lt;/span&gt; &lt;span class="err"&gt;rnd.gi&lt;/span&gt;&lt;span class="k"&gt;f&lt;/span&gt;&lt;br/&gt;&lt;span class="err"&gt;!rm&lt;/span&gt; &lt;span class="err"&gt;-r&lt;/span&gt; &lt;span class="err"&gt;rnd&lt;/span&gt;&lt;br/&gt;&lt;/code&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;运行&lt;/strong&gt;&lt;/p&gt;&lt;code&gt;chmod +x rnd.plt&lt;br/&gt;./rnd.plt&lt;br/&gt;firefox rnd.gif&lt;br/&gt;&lt;/code&gt;&lt;p&gt;&lt;strong&gt;结果&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://hjkl.me/img/rnd.gif" alt="rnd.gif" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;参考&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://gnuplot.sourceforge.net/demo_4.6/rgb_variable.html"&gt;http://gnuplot.sourceforge.net/demo_4.6/rgb_variable.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a&gt;http://www.gnuplotting.org/gnuplot-4-6-do/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;原文地址： &lt;a href="http://hjkl.me/plot/2012/06/02/plot-gnuplot-for-loop.html"&gt;http://hjkl.me/plot/2012/06/02/plot-gnuplot-for-loop.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/k-sharp/aggbug/2531993.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/k-sharp/archive/2012/06/02/2531993.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/k-sharp/archive/2012/06/02/2531665.html</id><title type="text">【plot】IE浏览器的市场份额, 半年就降了近10%!</title><summary type="text">IE浏览器的市场份额, 半年就降了近10%!</summary><published>2012-06-02T02:31:00Z</published><updated>2012-06-02T02:31:00Z</updated><author><name>K++</name><uri>http://www.cnblogs.com/k-sharp/</uri></author><link rel="alternate" href="http://www.cnblogs.com/k-sharp/archive/2012/06/02/2531665.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/k-sharp/archive/2012/06/02/2531665.html"/><content type="html">&lt;p&gt;基于Web Sevice的软件已经非常普及了, 桌面应用在日常生活中的比重变得越来越小.&lt;br /&gt;最终, 只要安装一个Web Browser, 就可以使用电脑了. 也许, 未来的操作系统就是一个Web Browser.&lt;br /&gt;本文介绍, 怎样使用命令行工具&lt;a href="http://curl.haxx.se/"&gt;curl&lt;/a&gt;通过&lt;a href="https://developers.google.com/chart/image/"&gt;Google Charts API&lt;/a&gt;生成3D饼图.&lt;br /&gt;所生成的拼图, 与wikipedia上的对比, 发现一个事实:&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;p&gt;IE浏览器的市场份额, 半年就降了近10%!&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;数据源&lt;/strong&gt;&lt;/p&gt;&lt;code&gt;Browser Usage on Wikimedia&lt;br/&gt;==========================&lt;br/&gt;浏览器              份额&lt;br/&gt;------             ------&lt;br/&gt;IE                  34.2&lt;br/&gt;Firefox             23.6&lt;br/&gt;Chrome              20.6&lt;br/&gt;Safari              11.2&lt;br/&gt;Opera               5.0&lt;br/&gt;Android             1.9&lt;br/&gt;Other               3.5&lt;br/&gt;&lt;/code&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;p&gt;这是我半年前记录的数据, 再看看现在的&lt;a href="http://en.wikipedia.org/wiki/Usage_share_of_web_browsers"&gt;状况&lt;/a&gt;!&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;命令行&lt;/strong&gt;&lt;/p&gt;&lt;code&gt;curl -v -G -o browers.png \&lt;br/&gt;--data-urlencode 'chtt=Browser Usage on Wikimedia' \&lt;br/&gt;--data           'cht=p3' \&lt;br/&gt;--data           'chs=450x200' \&lt;br/&gt;--data           'chd=t:34.2,23.6,20.6,11.2,5.0,1.9,3.5' \&lt;br/&gt;--data-urlencode 'chl=IE|Firefox|Chrome|Safari|Opera|Android|Other' \&lt;br/&gt;--data-urlencode 'chdl=34.2%|23.6%|20.6%|11.2%|5.0%|1.9%|3.5%' \&lt;br/&gt;'http://chart.apis.google.com/chart'&lt;br/&gt;&lt;/code&gt;&lt;p&gt;&lt;strong&gt;说明&lt;/strong&gt;&lt;/p&gt;&lt;code&gt;-v                      开启啰嗦模式&lt;br/&gt;-G                      使用GET命令&lt;br/&gt;-o FILE                 输出到文件&lt;br/&gt;--date DATA             query-string数据(简称: -d)&lt;br/&gt;--data-urlencode DATA   query-string数据(进行url编码)&lt;br/&gt;&lt;br/&gt;| 参数 | 说明       | 补充                           |&lt;br/&gt;|------+------------+--------------------------------|&lt;br/&gt;| chd  | data       | 以`t:`为前缀, 用`逗号`分割字段 |&lt;br/&gt;| chdl | data label | 用`竖线`分割字段               |&lt;br/&gt;| chl  | label      | 用`竖线`分割字段               |&lt;br/&gt;| chs  | size       |                                |&lt;br/&gt;| cht  | type       |                                |&lt;br/&gt;| chtt | title      |                                |&lt;br/&gt;&lt;/code&gt;&lt;p&gt;&lt;strong&gt;结果&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;半年前&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://chart.apis.google.com/chart?chtt=Browser%20Usage%20on%20Wikimedia&amp;amp;cht=p3&amp;amp;chs=450x200&amp;amp;chd=t:34.2,23.6,20.6,11.2,5.0,1.9,3.5&amp;amp;chl=IE%7CFirefox%7CChrome%7CSafari%7COpera%7CAndroid%7COther&amp;amp;chdl=34.2%25%7C23.6%25%7C20.6%25%7C11.2%25%7C5.0%25%7C1.9%25%7C3.5%25" alt="半年前" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;半年后&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/08/Wikimedia_browser_share_pie_chart_3.png/220px-Wikimedia_browser_share_pie_chart_3.png" alt="半年后" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #888888;"&gt;原文地址&lt;/span&gt;&lt;/strong&gt;: &lt;a href="http://hjkl.me/plot/2012/06/02/plot-google-chart-api.html"&gt;http://hjkl.me/plot/2012/06/02/plot-google-chart-api.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/k-sharp/aggbug/2531665.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/k-sharp/archive/2012/06/02/2531665.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/k-sharp/archive/2012/05/31/2528802.html</id><title type="text">【screencast】tmux - 打开多个窗口, 独立地运行程序(类似firefox的Tab)(含视频)</title><summary type="text">tmux是个终端复用器：它让你在一个屏幕中, 创建/操作/控制若干终端（或窗口）， 每个窗口都可以独立地运行程序。tmux可以脱离屏幕在后台继续运行，稍后可复位。</summary><published>2012-05-31T09:15:00Z</published><updated>2012-05-31T09:15:00Z</updated><author><name>K++</name><uri>http://www.cnblogs.com/k-sharp/</uri></author><link rel="alternate" href="http://www.cnblogs.com/k-sharp/archive/2012/05/31/2528802.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/k-sharp/archive/2012/05/31/2528802.html"/><content type="html">&lt;p&gt;&lt;strong&gt;介绍&lt;/strong&gt;&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;p&gt;&lt;code&gt;tmux&lt;/code&gt; is a terminal multiplexer: it enables a number of terminals (or windows), each running a separate program, to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.&lt;/p&gt;&lt;p&gt;&lt;code&gt;tmux&lt;/code&gt;是个终端复用器：它让你在一个屏幕中, 创建/操作/控制若干终端（或窗口）， 每个窗口都可以独立地运行程序。&lt;code&gt;tmux&lt;/code&gt;可以脱离屏幕在后台继续运行，稍后可复位。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;术语&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;session&lt;/code&gt; - 直接运行&lt;code&gt;tmux&lt;/code&gt;命令, 会创建一个session; 也可以通过运行&lt;code&gt;tmux attach -t session-name&lt;/code&gt;命令, 连接到已有的session.&lt;/li&gt;&lt;li&gt;&lt;code&gt;client&lt;/code&gt; - tmux是基于C/S架构的软件, 你所操作的界面属于client, 服务器(即server)会管理所有的client; 不同的client可以连接到相同的session.&lt;/li&gt;&lt;li&gt;&lt;code&gt;window&lt;/code&gt; - 参考firefox的&lt;code&gt;Tab&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;pane&lt;/code&gt; - 参考vim的&lt;code&gt;:split&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;命令&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;bind&lt;/code&gt;(bind-key) - 绑定快捷键&lt;/li&gt;&lt;li&gt;&lt;code&gt;unbind&lt;/code&gt;(unbind-key) - 取消快捷键&lt;/li&gt;&lt;li&gt;&lt;code&gt;set&lt;/code&gt;(set-option) - 设置(用&lt;code&gt;set -u&lt;/code&gt;来unset)&lt;/li&gt;&lt;li&gt;&lt;code&gt;setw&lt;/code&gt;(set-window-option) - 设置窗口&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;默认快捷键&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;other&lt;/strong&gt;&lt;/p&gt;&lt;code&gt;C-b         Send the prefix key (C-b) through to the application.&lt;br/&gt;C-z         Suspend the tmux client.&lt;br/&gt;:           Enter the tmux command prompt.&lt;br/&gt;?           List all key bindings.&lt;br/&gt;t           Show the time.&lt;br/&gt;~           Show previous messages from tmux, if any.&lt;br/&gt;&lt;/code&gt;&lt;p&gt;&lt;strong&gt;window&lt;/strong&gt;&lt;/p&gt;&lt;code&gt;c           Create a new window.&lt;br/&gt;n           Change to the next window.&lt;br/&gt;p           Change to the previous window.&lt;br/&gt;l           Move to the previously selected window.&lt;br/&gt;f           Prompt to search for text in open windows.&lt;br/&gt;w           Choose the current window interactively.&lt;br/&gt;i           Display some information about the current window.&lt;br/&gt;&amp;amp;           Kill the current window.&lt;br/&gt;'           Prompt for a window index to select.'&lt;br/&gt;,           Rename the current window.&lt;br/&gt;.           Prompt for an index to move the current window.&lt;br/&gt;0 to 9      Select windows 0 to 9.&lt;br/&gt;&lt;/code&gt;&lt;p&gt;&lt;strong&gt;pane&lt;/strong&gt;&lt;/p&gt;&lt;code&gt;"           Split the current pane into two, top and bottom."&lt;br/&gt;%           Split the current pane into two, left and right.&lt;br/&gt;C-o         Rotate the panes in the current window forwards.&lt;br/&gt;!           Break the current pane out of the window.&lt;br/&gt;;           Move to the previously active pane.&lt;br/&gt;o           Select the next pane in the current window.&lt;br/&gt;q           Briefly display pane indexes.&lt;br/&gt;x           Kill the current pane.&lt;br/&gt;{           Swap the current pane with the previous pane.&lt;br/&gt;}           Swap the current pane with the next pane.&lt;br/&gt;&amp;uarr;&amp;darr;&amp;larr;&amp;rarr;        Change to the pane above, below, to the left,&lt;br/&gt;            or to the right of the current pane.&lt;br/&gt;C-&amp;uarr;&amp;darr;&amp;larr;&amp;rarr;      Resize the current pane in steps of one cell.&lt;br/&gt;M-&amp;uarr;&amp;darr;&amp;larr;&amp;rarr;      Resize the current pane in steps of five cells.&lt;br/&gt;M-1 to M-5  Arrange panes in one of the five preset layouts:&lt;br/&gt;            even-horizontal, even-vertical, main-horizontal, main-vertical, or tiled.&lt;br/&gt;&lt;/code&gt;&lt;p&gt;&lt;strong&gt;copy/paste&lt;/strong&gt;&lt;/p&gt;&lt;code&gt;[           Enter copy mode to copy text or view the history.&lt;br/&gt;]           Paste the most recently copied buffer of text.&lt;br/&gt;=           Choose which buffer to paste interactively from a list.&lt;br/&gt;#           List all paste buffers.&lt;br/&gt;-           Delete the most recently copied buffer of text.&lt;br/&gt;Page Up     Enter copy mode and scroll one page up.&lt;br/&gt;&lt;/code&gt;&lt;p&gt;&lt;strong&gt;client/session&lt;/strong&gt;&lt;/p&gt;&lt;code&gt;d           Detach the current client.&lt;br/&gt;$           Rename the current session.&lt;br/&gt;D           Choose a client to detach.&lt;br/&gt;s           Select a new session for the attached client interactively.&lt;br/&gt;L           Switch the attached client back to the last session.&lt;br/&gt;r           Force redraw of the attached client.&lt;br/&gt;&lt;/code&gt;&lt;p&gt;&lt;strong&gt;实战演练&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Window&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;tmux的window与firefox/vim的Tab, 本质上是一样的, 只是名字不同而已. 至于叫什么名字, 萝卜青菜各有所爱. 我假设你已经见过firefox/vim了, 我就不费力气解释了.&lt;/p&gt;&lt;code&gt;# 新建一个Tab&lt;br/&gt;tmux new-window (prefix + c)&lt;br/&gt;# 根据索引选择Tab&lt;br/&gt;tmux select-window -t :0-9 (prefix + 0-9)&lt;br/&gt;# 重命名Tab&lt;br/&gt;tmux rename-window (prefix + ,)&lt;br/&gt;    rename the current window&lt;br/&gt;&lt;/code&gt;&lt;p&gt;&lt;strong&gt;Pane&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;pane是tmux的亮点(cool), 如果要向别人推销tmux的话, 我猜pane是最能吸引眼球的. 特别是, 通过鼠标点击的傻瓜方式, 在不同的pane之间进行切换, 不得不让人感到愉悦! 彻底打败了GNU screen.&lt;/p&gt;&lt;code&gt;# 水平分割&lt;br/&gt;tmux split-window (prefix + ")&lt;br/&gt;# 竖直分割&lt;br/&gt;tmux split-window -h (prefix + %)&lt;br/&gt;# 交换pane&lt;br/&gt;tmux swap-pane -[UDLR] (prefix + { or })&lt;br/&gt;# 选择pane&lt;br/&gt;tmux select-pane -[UDLR]&lt;br/&gt;# 选择下一个pane&lt;br/&gt;tmux select-pane -t :.+&lt;br/&gt;&lt;/code&gt;&lt;p&gt;&lt;strong&gt;Session&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;你可以把一组功能类似的window, 组织成是一个session. 这样做的好处是, 可以很明确地知道自己在干嘛(play OR work). 比如, 你可以定义这两个:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;work - 包含几个用vim打开的文件, 一个clock, 也许还有emacs&lt;/li&gt;&lt;li&gt;play - 包含一个mpg321, 一个还未完成的curl命令(准备批量下载图片)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;code&gt;# 创建一个名称为session_name的session&lt;br/&gt;tmux new -s session_name&lt;br/&gt;# 挂载一个已经存在的名称为session_name的session&lt;br/&gt;tmux attach -t session_name&lt;br/&gt;# 切换到一个已经存在的名称为session_name的session&lt;br/&gt;tmux switch -t session_name&lt;br/&gt;# 列出所有已经存在的session&lt;br/&gt;tmux list-sessions&lt;br/&gt;# 卸载当前挂载的session&lt;br/&gt;tmux detach (prefix + d)&lt;br/&gt;&lt;/code&gt;&lt;p&gt;&lt;strong&gt;配置文件&lt;/strong&gt;&lt;/p&gt;&lt;code&gt;# 重新绑定prefix&lt;br/&gt;# xmodmap -e 'keycode 66 = Insert' &amp;amp;&amp;gt; /dev/null # 映射CapsLock为Insert&lt;br/&gt;unbind C-b&lt;br/&gt;set -g prefix IC&lt;br/&gt;bind IC send-prefix&lt;br/&gt;&lt;br/&gt;# 重新加载配置文件&lt;br/&gt;bind F5 source-file ~/.tmux.conf&lt;br/&gt;&lt;br/&gt;# 使用&amp;lt;Tab&amp;gt;快速地切换pane&lt;br/&gt;bind -r Tab select-pane -t :.+&lt;br/&gt;&lt;br/&gt;# 在copy时使用vi快捷键&lt;br/&gt;setw -g mode-keys vi&lt;br/&gt;&lt;br/&gt;# 启用鼠标&lt;br/&gt;set -g mouse-resize-pane on&lt;br/&gt;set -g mouse-select-pane on&lt;br/&gt;set -g mouse-select-window on&lt;br/&gt;&lt;/code&gt;&lt;p&gt;... 未完待续 ...&lt;/p&gt;&lt;p&gt;&lt;strong&gt;参考&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://tmux.sourceforge.net/"&gt;http://tmux.sourceforge.net/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://wiki.archlinux.org/index.php/Tmux"&gt;https://wiki.archlinux.org/index.php/Tmux&lt;/a&gt;&lt;/li&gt;&lt;li&gt;我的配置: &lt;a href="https://raw.github.com/gotovoid/dot/master/.tmux.conf"&gt;~/.tmux.conf&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;视频&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://v.youku.com/v_show/id_XNDA1NTM1MDQ0.html"&gt;优酷&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://ubuntuone.com/7HUPgFOU7kbBPvkSjlsrpd"&gt;下载&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/commons/thumb/5/50/Tmux.png/320px-Tmux.png" alt="img" /&gt; &lt;img src="http://media.pragprog.com/images/cms/bhtmux-cartoon.jpg" alt="cartoon" /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;原文地址: &lt;a&gt;http://hjkl.me/tmux/2012/05/31/tmux-how-to.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #ff0000;"&gt;讲这东西, 会不会太冷门? Who cares!&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/k-sharp/aggbug/2528802.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/k-sharp/archive/2012/05/31/2528802.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/k-sharp/archive/2012/05/30/2525852.html</id><title type="text">【others】谈谈&amp;quot;学习技术&amp;quot;的方法</title><summary type="text">这是我个人学习技术的方法, "阅读帮助文档", 聊聊几个字, 简直是站着讲话不腰疼, 这是最花时间的一步...</summary><published>2012-05-30T02:24:00Z</published><updated>2012-05-30T02:24:00Z</updated><author><name>K++</name><uri>http://www.cnblogs.com/k-sharp/</uri></author><link rel="alternate" href="http://www.cnblogs.com/k-sharp/archive/2012/05/30/2525852.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/k-sharp/archive/2012/05/30/2525852.html"/><content type="html">&lt;p&gt;&lt;strong&gt;学习技术&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;所谓学习技术(如学C++, Linux, jQuery等等), 其实就是学会使用工具, 从而能够完成任务. 学习是为了应用, 对自己没有用的东西, 是没有必要学习的. 对别人有用的东西, 不一定对自己有用. 以前没用的东西, 现在不一定没用. 现在有用的东西, 将来不一定有用. 因此, 一项技术对自己究竟有没有用, 只能主观地判断. 根据自己当前的状态, 跟着直觉走. 从长远看, 学习的东西都是有用的. 但是人的生命是有限的, 要分清轻重缓急, 不要捡了芝麻丢了西瓜.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;检验标准&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;对工具的掌握程度是检验学习效果的唯一标准. 众所周知, &lt;a href="http://hjkl.me/gnuplot/2012/05/24/gnuplot-histogram.html"&gt;编辑器&lt;/a&gt;是写程序的最重要的工具之一. 对编辑器的掌握程度, 直接影响你的编程效率. 如果仅仅是为了查找一个函数名, 就找了大半天, 说明你对编辑器就太不了解了. 当你使用工具做事的时候, 让工具成为你的一部分. 当你走路时, 往往不会注意到腿的存在, 因为它是你的一部分. 在做事过程中, 如果关注的是工具而非事情, 那么你还没掌握工具.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;如何入门&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;从网上搜索技术名称, 打开几个网页(最好有视频演示), 大致了解这项技术的基本用途. 与自己所知道的类似的(已熟练掌握的)工具进行对比, 看看它们能不能互补, 是不是完全相同(如java与C#). 主观判断工具对自己是否有用, 如果用途不大, 则放弃. 到官方网站(必要时, 请&lt;a href="http://hjkl.me/ssh/2012/05/25/ssh-tunnel.html"&gt;翻墙&lt;/a&gt;), 看看该工具的开发是否活跃, 如果已经停止开发/维护, 最好不要学习. 根据入门教程(最新的英文原版)的篇幅, 判断一下能否短期入门; 如果难度大, 决定是否能抽出时间长期学习. 一旦决定有必要学习它, 立刻下载安装所需要的软件, 把实验环境搭起来, 这也是入门的最大障碍. 照着教程, 输出一个&lt;code&gt;hello, world&lt;/code&gt;(即, 最简单的任务). 如果能顺利完成, 你已经50%入门了! 接下来, 完成教程剩余内容(必要时, 跳过难道较大的). 如果很顺利完成, 你已经80%入门了! 主观判断自己是否入门: 未入门, 则继续看入门教程, 并且实际操作; 已入门, 则进行进阶训练.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;如何进阶&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;直接阅读帮助文档, 把它的简单功能用一遍, 然后挑选对自己有用的功能. 再把相对负责的功能用一遍, 再筛选有用的. 如此循环往复进行下去, 适可而止!&lt;/p&gt;&lt;p&gt;&lt;strong&gt;适可而止&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;工具千差万别, 有的简单, 有的复杂. 对于复杂的工具, 是很难完全掌握的. 根据任务的特点, 掌握那些可以完成任务的功能即可. 对于不常用(甚至不用)的功能, 了解即可. 但是, 无法一开始就能知道哪些功能可以完成任务. 所以, 你需要不断的学习, 找到一个, &lt;a href="http://hjkl.me/github/2012/05/29/jekyll.html"&gt;记录&lt;/a&gt;一个. 遇到新的任务, 而目前所学的功能不能满足要求时, 需要继续学习.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;结束语&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;这是我个人学习技术的方法, "阅读帮助文档", 聊聊几个字, 简直是站着讲话不腰疼, 这是最花时间的一步. 没有一个适用所有人的学习方法, 总结出一个适用于自己的, 非常重要!&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;原文地址: &lt;a href="http://hjkl.me/others/2012/05/30/how-to-learn-it.html"&gt;http://hjkl.me/others/2012/05/30/how-to-learn-it.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/k-sharp/aggbug/2525852.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/k-sharp/archive/2012/05/30/2525852.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/k-sharp/archive/2012/05/25/2517685.html</id><title type="text">【screencast】免费SSH上Youtube(含视频)</title><summary type="text">上Youtube, 其实很简单! 免费SSH不好找.</summary><published>2012-05-25T02:58:00Z</published><updated>2012-05-25T02:58:00Z</updated><author><name>K++</name><uri>http://www.cnblogs.com/k-sharp/</uri></author><link rel="alternate" href="http://www.cnblogs.com/k-sharp/archive/2012/05/25/2517685.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/k-sharp/archive/2012/05/25/2517685.html"/><content type="html">&lt;p&gt;&lt;a href="http://hjkl.me/"&gt;返回到首页&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;SSH tunnel&lt;/strong&gt;&lt;/p&gt;&lt;div class="toc"&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://hjkl.me/posts/ssh-tunnel.html#toc_0.1"&gt;1. 工具介绍&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://hjkl.me/posts/ssh-tunnel.html#toc_0.2"&gt;2. 安装plink&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://hjkl.me/posts/ssh-tunnel.html#toc_0.3"&gt;3. 使用plink&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://hjkl.me/posts/ssh-tunnel.html#toc_0.4"&gt;4. bash脚本&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://hjkl.me/posts/ssh-tunnel.html#toc_0.5"&gt;5. 运行脚本&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://hjkl.me/posts/ssh-tunnel.html#toc_0.6"&gt;6. 设置firefox&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://hjkl.me/posts/ssh-tunnel.html#toc_0.7"&gt;7. 视频演示&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2 id="toc_0.1"&gt;1. 工具介绍&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;plink&lt;/code&gt;/&lt;code&gt;ssh&lt;/code&gt; - SSH客户端&lt;/li&gt;&lt;li&gt;&lt;code&gt;firefox&lt;/code&gt; - 网页浏览器&lt;/li&gt;&lt;li&gt;&lt;code&gt;vim&lt;/code&gt; - 高级文本编辑器&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="toc_0.2"&gt;2. 安装plink&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Windows: &lt;a href="http://the.earth.li/%7Esgtatham/putty/latest/x86/plink.exe"&gt;http://the.earth.li/~sgtatham/putty/latest/x86/plink.exe&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Ubuntu:sudo apt-get install putty-tools&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="toc_0.3"&gt;3. 使用plink&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;iframe src="http://ssh.emdao.com/freessh.php" width="320" height="240"&gt;&lt;/iframe&gt;&lt;/p&gt;# 需要手动输入密码&lt;br/&gt;ssh -N -D 8888 freessh@jp.uudaili.com&lt;br/&gt;&lt;br/&gt;# plink的优点: 提供了`-pw`选项&lt;br/&gt;plink -N -D 8888 -pw 84601359 freessh@jp.uudaili.com&lt;br/&gt;&lt;h2 id="toc_0.4"&gt;4. bash脚本&lt;/strong&gt;&lt;/p&gt;#!/usr/bin/env bash&lt;br/&gt;# free ssh&lt;br/&gt;&lt;br/&gt;while :&lt;br/&gt;do&lt;br/&gt;    clear&lt;br/&gt;    echo "Connecting ..."&lt;br/&gt;    arr=($(&lt;br/&gt;            curl -s http://ssh.emdao.com/freessh.php |&lt;br/&gt;                iconv -f gbk -t utf8 |&lt;br/&gt;                    grep -Po '(?&amp;lt;=: ).*(?=&amp;lt;br)'&lt;br/&gt;    ))&lt;br/&gt;    host=${arr[0]}&lt;br/&gt;    user=${arr[1]}&lt;br/&gt;    pass=${arr[2]}&lt;br/&gt;    port=8888&lt;br/&gt;    clear&lt;br/&gt;    echo "HOST: $host"&lt;br/&gt;    echo "USER: $user"&lt;br/&gt;    echo "PASS: $pass"&lt;br/&gt;    echo "PORT: $port"&lt;br/&gt;    echo "TIME: $(date +'%F %T')"&lt;br/&gt;    plink -N -D $port -pw $pass $user@$host &amp;amp;&amp;gt;/dev/null&lt;br/&gt;done&lt;br/&gt;&lt;h2 id="toc_0.5"&gt;5. 运行脚本&lt;/strong&gt;&lt;/p&gt;chmod +x gfw.sh&lt;br/&gt;./gfw.sh&lt;br/&gt;HOST: jp.uudaili.com&lt;br/&gt;USER: freessh&lt;br/&gt;PASS: 24670538&lt;br/&gt;PORT: 8888&lt;br/&gt;TIME: 2012-05-25 08:11:09&lt;br/&gt;&lt;h2 id="toc_0.6"&gt;6. 设置firefox&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt; Edit-&amp;gt;Preferences-&amp;gt;Advanced-&amp;gt;Network-&amp;gt;Settings...&lt;br /&gt;  Manual proxy configuration:&lt;br /&gt;  SOCKS Host: 127.0.0.1     Port: 8888&lt;/li&gt;&lt;li&gt;在地址栏中输入: &lt;em&gt;about:config&lt;/em&gt;&lt;/li&gt;&lt;li&gt;System Settings -&amp;gt; Network -&amp;gt; Network proxy&lt;/li&gt;&lt;li&gt;参考 &lt;a href="http://hjkl.me/posts/firefox-add-context-menu.html"&gt;/posts/firefox-add-context-menu.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="toc_0.7"&gt;7. 视频演示&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;优酷: &lt;a href="http://v.youku.com/v_show/id_XNDAxOTkzNzcy.html"&gt;http://v.youku.com/v_show/id_XNDAxOTkzNzcy.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;下载: &lt;a href="http://ubuntuone.com/4kBLIAdLhlBc0l3PcIUe09"&gt;http://ubuntuone.com/4kBLIAdLhlBc0l3PcIUe09&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;                                Copyright &amp;copy; &lt;a href="http://hjkl.me/"&gt;Kev++&lt;/a&gt;        All rights reserved.        &lt;/p&gt;&lt;img src="http://www.cnblogs.com/k-sharp/aggbug/2517685.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/k-sharp/archive/2012/05/25/2517685.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/k-sharp/archive/2012/05/24/2517173.html</id><title type="text">【screencast】gunplot绘制直方图(含视频)</title><summary type="text">视频演示命令行绘图工具gnuplot</summary><published>2012-05-24T13:57:00Z</published><updated>2012-05-24T13:57:00Z</updated><author><name>K++</name><uri>http://www.cnblogs.com/k-sharp/</uri></author><link rel="alternate" href="http://www.cnblogs.com/k-sharp/archive/2012/05/24/2517173.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/k-sharp/archive/2012/05/24/2517173.html"/><content type="html">&lt;p&gt;&lt;a href="http://hjkl.me/"&gt;返回到首页&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;使用gunplot绘制直方图&lt;/strong&gt;&lt;/p&gt;&lt;div class="toc"&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://hjkl.me/posts/gnuplot-histogram.html#toc_0.1"&gt;1. 获取数据&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://hjkl.me/posts/gnuplot-histogram.html#toc_0.2"&gt;2. 编写脚本&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://hjkl.me/posts/gnuplot-histogram.html#toc_0.3"&gt;3. 运行脚本&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://hjkl.me/posts/gnuplot-histogram.html#toc_0.4"&gt;4. 视频演示&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2 id="toc_0.1"&gt;1. 获取数据&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Google搜索:&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;What's your favorite text editor?&lt;/blockquote&gt;&lt;p&gt;&lt;a href="https://spreadsheets.google.com/spreadsheet/viewanalytics?formkey=dHhwMm9jS1l6RTh4Q3RBZU1GRWE1R0E6MQ"&gt;https://spreadsheets.google.com/spreadsheet/viewanalytics?formkey=dHhwMm9jS1l6RTh4Q3RBZU1GRWE1R0E6MQ&lt;/a&gt;&lt;/p&gt;VIM          1368  48%&lt;br/&gt;EMACS        610   21%&lt;br/&gt;gEdit        307   11%&lt;br/&gt;Geany        66    2%&lt;br/&gt;jEdit        47    2%&lt;br/&gt;Kate         54    2%&lt;br/&gt;Bluefish     12    0%&lt;br/&gt;Notepad++    687   24%&lt;br/&gt;Textpad      77    3%&lt;br/&gt;UltraEdit    54    2%&lt;br/&gt;Coda         74    3%&lt;br/&gt;TextMate     511   18%&lt;br/&gt;SublimeText  10    0%&lt;br/&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;注意: 预处理数据时, 我最后一行中的&lt;del&gt;Sublime Text&lt;/del&gt;中间的空格去掉了.&lt;/blockquote&gt;&lt;h2 id="toc_0.2"&gt;2. 编写脚本&lt;/strong&gt;&lt;/p&gt;#!/usr/bin/env gnuplot&lt;br/&gt;&lt;br/&gt;set terminal png&lt;br/&gt;set output 'editor.png'&lt;br/&gt;set title "What's your favorite text editor?" font 'Ubuntu,16'&lt;br/&gt;set xtics scale 0 rotate by -45&lt;br/&gt;set style fill solid 0.25 noborder&lt;br/&gt;set box 0.5&lt;br/&gt;set rmargin 5&lt;br/&gt;set grid y&lt;br/&gt;&lt;br/&gt;plot 'editor.csv' using 2:xtic(1) with boxes lc rgb 'blue' title 'Votes',\&lt;br/&gt;     '' using 0:($2+50):3 with labels notitle&lt;br/&gt;&lt;h2 id="toc_0.3"&gt;3. 运行脚本&lt;/strong&gt;&lt;/p&gt;chmod +x editor.plt&lt;br/&gt;./editor.plt&lt;br/&gt;display editor.png&lt;br/&gt;&lt;p&gt;&lt;a href="http://hjkl.me/images/editor.png"&gt;&lt;img src="http://hjkl.me/images/editor.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2 id="toc_0.4"&gt;4. 视频演示&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;优酷: &lt;a href="http://v.youku.com/v_show/id_XNDAxNzkxMDY4.html"&gt;http://v.youku.com/v_show/id_XNDAxNzkxMDY4.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;下载: &lt;a href="http://ubuntuone.com/7a4Z0uA7X1DsWrIF9rymiX"&gt;http://ubuntuone.com/7a4Z0uA7X1DsWrIF9rymiX&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Copyright &amp;copy; &lt;a href="http://hjkl.me/"&gt;Kev++&lt;/a&gt; All rights reserved.&lt;/p&gt;&lt;img src="http://www.cnblogs.com/k-sharp/aggbug/2517173.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/k-sharp/archive/2012/05/24/2517173.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/k-sharp/archive/2012/05/11/2495569.html</id><title type="text">【screencast】firefox使用技巧(2)——没有理由再埋怨Youku/Tudou广告太多了(含视频)</title><summary type="text">如果嫌网络上的广告太多，屏蔽之即可，没啥好唠叨的。如果你使用firefox的话，有add-ons助你一臂之力，小菜一碟。</summary><published>2012-05-11T02:49:00Z</published><updated>2012-05-11T02:49:00Z</updated><author><name>K++</name><uri>http://www.cnblogs.com/k-sharp/</uri></author><link rel="alternate" href="http://www.cnblogs.com/k-sharp/archive/2012/05/11/2495569.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/k-sharp/archive/2012/05/11/2495569.html"/><content type="html">&lt;p&gt;如果嫌网络上的广告太多，屏蔽之即可，没啥好唠叨的。&lt;/p&gt;&lt;p&gt;如果你使用firefox的话，有add-ons助你一臂之力，小菜一碟。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;br /&gt;使用&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/stylish/"&gt;stylish&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;object width="320" height="240" data="http://player.opengg.me/td.php/v/d7wntyaX4Og/&amp;amp;rpid=111410223&amp;amp;resourceId=111410223_04_05_99/v.swf" type="application/x-shockwave-flash"&gt;&lt;param name="src" value="http://player.opengg.me/td.php/v/d7wntyaX4Og/&amp;amp;rpid=111410223&amp;amp;resourceId=111410223_04_05_99/v.swf" /&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;使用&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/"&gt;greasemonkey&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;object width="320" height="240" data="http://player.opengg.me/td.php/v/uJvgnMeH8x0/&amp;amp;rpid=111410223&amp;amp;resourceId=111410223_04_05_99/v.swf" type="application/x-shockwave-flash"&gt;&lt;param name="src" value="http://player.opengg.me/td.php/v/uJvgnMeH8x0/&amp;amp;rpid=111410223&amp;amp;resourceId=111410223_04_05_99/v.swf" /&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;OpenGG.Clean.Player下载地址：&lt;a href="http://userscripts.org/scripts/show/120679"&gt;http://userscripts.org/scripts/show/120679&lt;/a&gt;&lt;/p&gt;&lt;p&gt;网页列表排序脚本，请参考：&lt;a&gt;http://www.cnblogs.com/k-sharp/archive/2012/05/09/2491368.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;我计划长期录制关于&amp;ldquo;firefox&amp;rdquo;,"linux","vim","bash"等使用技巧的视频，欢迎大家关注我的微博：&lt;a&gt;http://weibo.com/kevpp&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/k-sharp/aggbug/2495569.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/k-sharp/archive/2012/05/11/2495569.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/k-sharp/archive/2012/05/09/2491368.html</id><title type="text">【screencast】firefox使用技巧(1)——对网页列表排序(含视频)</title><summary type="text">把『顶』得最厉害的排在前面</summary><published>2012-05-09T02:49:00Z</published><updated>2012-05-09T02:49:00Z</updated><author><name>K++</name><uri>http://www.cnblogs.com/k-sharp/</uri></author><link rel="alternate" href="http://www.cnblogs.com/k-sharp/archive/2012/05/09/2491368.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/k-sharp/archive/2012/05/09/2491368.html"/><content type="html">&lt;p&gt;&lt;strong&gt;firefox使用技巧(1)&amp;mdash;&amp;mdash;对网页列表排序&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;div class="toc"&gt;&lt;ul&gt;&lt;li&gt;0. 前言&lt;/li&gt;&lt;li&gt;&lt;a&gt;1. jQuery&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a&gt;2. Examples&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;0. 前言&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;网上的信息太多了，有必要对之进行筛选(&lt;span style="text-decoration: line-through;"&gt;而非审查&lt;/span&gt;)。&lt;/p&gt;&lt;p&gt;作为程序员，既然有工具，为什么不用呢！&lt;/p&gt;&lt;p&gt;如果你有网页编程经验，十有八九听说过firefox/firebug/jQuery了。&lt;/p&gt;&lt;p&gt;如果你还没听说过，了解一下也没坏处。&lt;/p&gt;&lt;p&gt;本视频为了说明一个道理：&lt;strong&gt;学以致用&lt;/strong&gt;。&lt;/p&gt;&lt;/div&gt;&lt;h2 id="toc_0.1"&gt;1. jQuery&lt;/strong&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; sortlist = &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(list, key, asc){&lt;br/&gt;    asc &lt;/span&gt;= &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt; asc !== 'undefined' ? asc : &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;    $(list).html(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; $(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;).children().sort(&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(x, y){&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; [x, y].map(&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(e){&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; parseInt($(key, e).text().replace(/[^-+0-9.]/g, ''&lt;span style="color: #000000;"&gt;))&lt;br/&gt;            }).reduce(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(i, j){&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; asc ? i-j : j-&lt;span style="color: #000000;"&gt;i&lt;br/&gt;            })&lt;br/&gt;        })&lt;br/&gt;    })&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; clicksort = &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(btn, list, key){&lt;br/&gt;    $(btn).unbind(&lt;/span&gt;'click').click(&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; asc = $(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;).attr('asc') == 'true' ? &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt; : &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;        sortlist(list, key, &lt;/span&gt;!&lt;span style="color: #000000;"&gt;asc)&lt;br/&gt;        $(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;).attr('asc', !&lt;span style="color: #000000;"&gt;asc)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    })&lt;br/&gt;}&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 id="toc_0.2"&gt;2. Examples&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cnblogs.com/"&gt;http://www.cnblogs.com/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;code&gt;clicksort("#logo img", "#post_list", ".diggnum")&lt;/code&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://movie.youku.com/top/"&gt;http://movie.youku.com/top/ (需要首先运行一下firequery)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;code&gt;clicksort(".logo img" , "#m13070668983 tbody" , ".pub")&lt;/code&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://stackoverflow.com"&gt;http://stackoverflow.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;code&gt;clicksort('#hlogo', '#question-mini-list', '.votes .mini-counts')&lt;/code&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://stackexchange.com/leagues/1/week/stackoverflow"&gt;http://stackexchange.com/leagues/1/week/stackoverflow&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;code&gt;clicksort('.contentWrapper', '#leagueUserList', '.number:nth(1)')&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3. Screencast&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;object width="320" height="240" data="http://www.tudou.com/v/G5r9rwgnVls/&amp;amp;rpid=111410223&amp;amp;resourceId=111410223_04_05_99/v.swf" type="application/x-shockwave-flash"&gt;&lt;param name="src" value="http://www.tudou.com/v/G5r9rwgnVls/&amp;amp;rpid=111410223&amp;amp;resourceId=111410223_04_05_99/v.swf" /&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;声明：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;2年前搞过网页，仅了解jquery的皮毛，让专业人士见笑了。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;不过，技术是拿来用的，有用就要学，学了就要用。&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;刚申请的微博：&lt;a&gt;http://weibo.com/kevpp&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;使用GreaseMonkey的朋友，点击 &lt;a href="http://userscripts.org/scripts/show/132935"&gt;http://userscripts.org/scripts/show/132935&lt;/a&gt; 下载代码。&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/k-sharp/aggbug/2491368.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/k-sharp/archive/2012/05/09/2491368.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/k-sharp/archive/2012/05/08/2489427.html</id><title type="text">【screencast】用纯命令行发布一条新浪微博(含视频)</title><summary type="text">视频的重点在于说明一个道理: 命令行简约而不简单</summary><published>2012-05-07T16:51:00Z</published><updated>2012-05-07T16:51:00Z</updated><author><name>K++</name><uri>http://www.cnblogs.com/k-sharp/</uri></author><link rel="alternate" href="http://www.cnblogs.com/k-sharp/archive/2012/05/08/2489427.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/k-sharp/archive/2012/05/08/2489427.html"/><content type="html">&lt;p&gt;简要讲述了OAuth2.0的授权认证流程。&lt;/p&gt;&lt;p&gt;没有用到任何新浪提供的SDK，只用到terminal及firefox。&lt;/p&gt;&lt;p&gt;代码总共15行左右。我希望把问题讲清楚了！&lt;/p&gt;&lt;p&gt;视频的重点在于说明一个道理: &lt;strong&gt;命令行简约而不简单&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;object width="320" height="240" data="http://www.tudou.com/v/pPGnDLiAs70/&amp;amp;rpid=111410223&amp;amp;resourceId=111410223_04_05_99/v.swf" type="application/x-shockwave-flash"&gt;&lt;param name="src" value="http://www.tudou.com/v/pPGnDLiAs70/&amp;amp;rpid=111410223&amp;amp;resourceId=111410223_04_05_99/v.swf" /&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #000000;"&gt;{{{&lt;br/&gt;  ___    _         _   _     ____    ___  &lt;br/&gt; &lt;/span&gt;/ _ \  / \  _   _| |_| |__ |___ \  /&lt;span style="color: #000000;"&gt; _ \ &lt;br/&gt;&lt;/span&gt;| | | |/ _ \| | | | __| &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;_ \  __) || | | |&lt;/span&gt;&lt;br/&gt;| |_| / ___ \ |_| | |_| | | |/ __/ | |_| |&lt;span style="color: #000000;"&gt;&lt;br/&gt; \___&lt;/span&gt;/_/   \_\__,_|\__|_| |_|_____(_)___/&lt;span style="color: #000000;"&gt; &lt;br/&gt;                                          &lt;br/&gt;}}}&lt;br/&gt;[http:&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;open.weibo.com/]&lt;/span&gt;&lt;br/&gt;====================================================================================================&lt;span style="color: #000000;"&gt;&lt;br/&gt;&lt;br/&gt;# 请求用户授权Token&lt;br/&gt;AUTHORIZE_URL&lt;/span&gt;=https:&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;api.weibo.com/oauth2/authorize&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #000000;"&gt;# 获取授权过的Access Token&lt;br/&gt;ACCESS_TOKEN_URL&lt;/span&gt;=https:&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;api.weibo.com/oauth2/access_token&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #000000;"&gt;# 发布一条微博信息 &lt;br/&gt;UPDATE_URL&lt;/span&gt;=https:&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;api.weibo.com/2/statuses/update.json&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;====================================================================================================&lt;span style="color: #000000;"&gt;&lt;br/&gt;&lt;br/&gt;# App Key&lt;br/&gt;CLIENT_ID&lt;/span&gt;=__(&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)__&lt;br/&gt;# App Secret&lt;br/&gt;CLIENT_SECRET&lt;/span&gt;=__(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;)__&lt;br/&gt;# 应用实际地址&lt;br/&gt;REDIRECT_URI&lt;/span&gt;=__(&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;)__&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;====================================================================================================&lt;span style="color: #000000;"&gt;&lt;br/&gt;&lt;br/&gt;# 用户在firefox中操作&lt;br/&gt;firefox &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;${AUTHORIZE_URL}?client_id=${CLIENT_ID}&amp;amp;redirect_uri=${REDIRECT_URI}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;&lt;br/&gt;# 用户授权验证码&lt;br/&gt;CODE&lt;/span&gt;=__(&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;)__&lt;br/&gt;&lt;br/&gt;# 获取授权过的Access Token&lt;br/&gt;curl &lt;/span&gt;-sd &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;client_id=${CLIENT_ID}&amp;amp;client_secret=${CLIENT_SECRET}&amp;amp;grant_type=authorization_code&amp;amp;code=${CODE}&amp;amp;redirect_uri=${REDIRECT_URI}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; $ACCESS_TOKEN_URL&lt;br/&gt;&lt;br/&gt;# Access Token&lt;br/&gt;ACCESS_TOKEN&lt;/span&gt;=__(&lt;span style="color: #800080;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt;)__&lt;br/&gt;&lt;br/&gt;# 微博内容&lt;br/&gt;STATUS&lt;/span&gt;=&lt;span style="color: #000000;"&gt;你好:kevpp&lt;br/&gt;&lt;br/&gt;curl &lt;/span&gt;-sd &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;access_token=${ACCESS_TOKEN}&amp;amp;status=${STATUS}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; $UPDATE_URL&lt;br/&gt;&lt;/span&gt;====================================================================================================&lt;/div&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;上述代码不能直接运行，请参考视频进行修改！&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;我是今晚才了解OAuth及新浪微博开放平台的，所有没使用什么专业术语，如果有不妥之处，请谅解。&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/k-sharp/aggbug/2489427.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/k-sharp/archive/2012/05/08/2489427.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/k-sharp/archive/2012/05/06/2486532.html</id><title type="text">【screencast】在Ubuntu12.04中，使用curl/wget批量下载图片(含视频)</title><summary type="text">我今天申请了一个sina微博帐号（http://weibo.com/kevpp），希望喜欢Linux命令行的朋友，可以多多指教。</summary><published>2012-05-06T12:38:00Z</published><updated>2012-05-06T12:38:00Z</updated><author><name>K++</name><uri>http://www.cnblogs.com/k-sharp/</uri></author><link rel="alternate" href="http://www.cnblogs.com/k-sharp/archive/2012/05/06/2486532.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/k-sharp/archive/2012/05/06/2486532.html"/><content type="html">&lt;p&gt;&lt;span style="font-size: 15px;"&gt;5.1那天安装了最新版Ubuntu 12.04，今天录制了两个视频，演示一下怎样使用命令行工具curl/wget，批量下载网页上的图片。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;使用curl&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;object width="320" height="240" data="http://www.tudou.com/v/j_nhsL5qLCE/&amp;amp;rpid=111410223&amp;amp;resourceId=111410223_04_05_99/v.swf" type="application/x-shockwave-flash"&gt;&lt;param name="src" value="http://www.tudou.com/v/j_nhsL5qLCE/&amp;amp;rpid=111410223&amp;amp;resourceId=111410223_04_05_99/v.swf" /&gt;&lt;/object&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;curl -O &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;http://photo1.itbulo.com/animal/dog/[01-20].jpg&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;使用wget&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;object width="320" height="240" data="http://www.tudou.com/v/F28n1x5Bv8E/&amp;amp;rpid=111410223&amp;amp;resourceId=111410223_04_05_99/v.swf" type="application/x-shockwave-flash"&gt;&lt;param name="src" value="http://www.tudou.com/v/F28n1x5Bv8E/&amp;amp;rpid=111410223&amp;amp;resourceId=111410223_04_05_99/v.swf" /&gt;&lt;/object&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;wget -O- http://ilove57diving.blog.163.com/blog/static/1870413402011514105427134/ |&lt;span style="color: #000000;"&gt;&lt;br/&gt;    grep &lt;/span&gt;-o &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;http://img.ph.126.net/.*jpg&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt; |&lt;span style="color: #000000;"&gt;&lt;br/&gt;        wget &lt;/span&gt;-i-&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;使用curl+wget&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;object width="320" height="240" data="http://www.tudou.com/l/jof94uZocUo/&amp;amp;iid=128318033&amp;amp;resourceId=111410223_04_05_99/v.swf" type="application/x-shockwave-flash"&gt;&lt;param name="src" value="http://www.tudou.com/l/jof94uZocUo/&amp;amp;iid=128318033&amp;amp;resourceId=111410223_04_05_99/v.swf" /&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;curl http://www.mn3.net/Fashion/2012/syzt_hqyx_940{,_[2-10]}.html |&lt;span style="color: #000000;"&gt;&lt;br/&gt;    grep &lt;/span&gt;-o http://pic.mn3.net/uploads/allimg/c120401/.*jpg |&lt;span style="color: #000000;"&gt;&lt;br/&gt;        sort &lt;/span&gt;-u |&lt;span style="color: #000000;"&gt;&lt;br/&gt;            wget &lt;/span&gt;-i-&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration: line-through;"&gt;使用xunlei&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;object width="320" height="240" data="http://www.tudou.com/v/REWCe5r3BeI/&amp;amp;rpid=111410223&amp;amp;resourceId=111410223_04_05_99/v.swf" type="application/x-shockwave-flash"&gt;&lt;param name="src" value="http://www.tudou.com/v/REWCe5r3BeI/&amp;amp;rpid=111410223&amp;amp;resourceId=111410223_04_05_99/v.swf" /&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;为了与GUI工具相比较，把xunlei也列出来。&lt;/p&gt;&lt;p&gt;我个人是不用xunlei等下载软件的，最主要的原因是，4年前，我被xunlei骗了。&lt;/p&gt;&lt;p&gt;想当年，xunlei菜单栏下方有一条广告，广告右上角有个"关闭X"按钮。&lt;/p&gt;&lt;p&gt;我以为真的可以关闭，结果点了就上当了，弹出了网页广告。&lt;/p&gt;&lt;p&gt;也就是说，xunlei靠欺诈的方式，引诱用户点击它的广告。&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;目前，我 已经停止使用Windows XP了，就跟当年停用xunlei一样。&lt;/p&gt;&lt;p&gt;Ubuntu用户体验还不算差。5.1至今，没出什么大问题。&lt;/p&gt;&lt;p&gt;我比较喜欢玩linux命令行，打算把一些常用的命令行工具的使用方法，以视频的方式发布到tudou.com上。&lt;/p&gt;&lt;p&gt;我今天申请了一个&lt;a href="http://weibo.com/kevpp"&gt;sina微博帐号&lt;/a&gt;（http://weibo.com/kevpp），希望喜欢Linux命令行的朋友，可以多多指教。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/k-sharp/aggbug/2486532.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/k-sharp/archive/2012/05/06/2486532.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
