<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2894388350089002936</id><updated>2011-11-28T08:00:14.819+08:00</updated><category term='C++'/><category term='Algorithm'/><category term='Nature'/><category term='Vim'/><category term='java'/><category term='UTF-8'/><category term='MetaPost'/><category term='GNU/Linux'/><category term='随笔'/><category term='TeX'/><category term='Perl'/><category term='Asymptote'/><category term='Google'/><title type='text'>redspider's Blog</title><subtitle type='html'>GNU/Linux Perl C++ free_software open_source LaTeX</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>90</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-8840512258136366791</id><published>2011-10-10T20:39:00.001+08:00</published><updated>2011-10-10T20:39:36.329+08:00</updated><title type='text'>Java Primer</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: monospace; font-size: medium; color: rgb(0, 255, 255); "&gt;&lt;pre style="font-family: monospace; color: rgb(0, 255, 255); background-color: rgb(0, 0, 0); "&gt;&lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt;1 &lt;/span&gt;&lt;span class="Type" style="color: rgb(96, 255, 96); font-weight: bold; "&gt;public&lt;/span&gt; &lt;span class="Type" style="color: rgb(96, 255, 96); font-weight: bold; "&gt;class&lt;/span&gt; Primer { &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt; 2 &lt;/span&gt;    &lt;span class="Type" style="color: rgb(96, 255, 96); font-weight: bold; "&gt;public&lt;/span&gt; &lt;span class="Type" style="color: rgb(96, 255, 96); font-weight: bold; "&gt;static&lt;/span&gt; &lt;span class="Type" style="color: rgb(96, 255, 96); font-weight: bold; "&gt;void&lt;/span&gt; main( String[] args ) { &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt; 3 &lt;/span&gt;        &lt;span class="Type" style="color: rgb(96, 255, 96); font-weight: bold; "&gt;boolean&lt;/span&gt; flag = &lt;span class="Constant" style="color: rgb(255, 0, 255); "&gt;true&lt;/span&gt;; &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt; 4 &lt;/span&gt; &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt; 5 &lt;/span&gt;        &lt;span class="Repeat" style="color: rgb(255, 255, 255); "&gt;for&lt;/span&gt; (&lt;span class="Type" style="color: rgb(96, 255, 96); font-weight: bold; "&gt;int&lt;/span&gt; i=&lt;span class="Constant" style="color: rgb(255, 0, 255); "&gt;3&lt;/span&gt;; i&amp;lt;&lt;span class="Constant" style="color: rgb(255, 0, 255); "&gt;10000000&lt;/span&gt;; i+=&lt;span class="Constant" style="color: rgb(255, 0, 255); "&gt;2&lt;/span&gt;) { &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt; 6 &lt;/span&gt;            flag = &lt;span class="Constant" style="color: rgb(255, 0, 255); "&gt;true&lt;/span&gt;; &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt; 7 &lt;/span&gt; &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt; 8 &lt;/span&gt;            &lt;span class="Repeat" style="color: rgb(255, 255, 255); "&gt;for&lt;/span&gt; (&lt;span class="Type" style="color: rgb(96, 255, 96); font-weight: bold; "&gt;int&lt;/span&gt; j=&lt;span class="Constant" style="color: rgb(255, 0, 255); "&gt;3&lt;/span&gt;; (j*j)&amp;lt;=i; j+=&lt;span class="Constant" style="color: rgb(255, 0, 255); "&gt;2&lt;/span&gt;) { &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt; 9 &lt;/span&gt;                &lt;span class="Repeat" style="color: rgb(255, 255, 255); "&gt;if&lt;/span&gt; ( i%j ==&lt;span class="Constant" style="color: rgb(255, 0, 255); "&gt;0&lt;/span&gt; ) { &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt;10 &lt;/span&gt;                    flag = &lt;span class="Constant" style="color: rgb(255, 0, 255); "&gt;false&lt;/span&gt;; &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt;11 &lt;/span&gt;                    &lt;span class="Repeat" style="color: rgb(255, 255, 255); "&gt;break&lt;/span&gt;; &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt;12 &lt;/span&gt;                } &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt;13 &lt;/span&gt;            } &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt;14 &lt;/span&gt;            &lt;span class="Repeat" style="color: rgb(255, 255, 255); "&gt;if&lt;/span&gt; (flag) System.out.println( i ); &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt;15 &lt;/span&gt;        } &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt;16 &lt;/span&gt;    } &lt;span class="lnr" style="color: rgb(255, 255, 0); "&gt;17 &lt;/span&gt;}&lt;/pre&gt;&lt;/span&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-8840512258136366791?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/8840512258136366791/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=8840512258136366791' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8840512258136366791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8840512258136366791'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2011/10/java-primer.html' title='Java Primer'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-1158871464811783008</id><published>2010-04-19T22:42:00.000+08:00</published><updated>2010-04-19T22:43:59.386+08:00</updated><title type='text'>LaTeX diary</title><content type='html'>两面模式时的分页：&lt;br&gt;    当选择了文档选项 twoside 时，还可以用一个分页命令：&lt;br&gt;	\cleardoublepages&lt;br&gt;	它的作用同 \clearpage 一样(当前页被中止，所有未打印的图标输出在&lt;br&gt;	后面的页上)，而且接下来的页应收奇数页。如果必要的话，由此会得到&lt;br&gt;	一个具有偶数页码的空页。&lt;p&gt;控制分页：&lt;br&gt;    LaTeX2e 提供了稍微增加当前页高度的可能性：&lt;br&gt;	\enlargethispage{length}&lt;br&gt;	\enlargethispage*{length}&lt;br&gt;	上面两条命令将定义中的 length 只加到当前页的 \textheight 上。&lt;br&gt;	有时候只需要稍微一点的调整，就可以避免一个糟糕的分页。&lt;br&gt;	命令的 * 形式在当前页上无论如何也要调整行距，以最大化文本高度。&lt;p&gt;&lt;p&gt;-- &lt;br&gt;---- 可移植文档格式 ------------&lt;p&gt;PDF 格式是数字化文档事实上的工业标准，它可以将文字、&lt;br&gt;字型、格式、颜色及独立于设备和分辨率的图形图像等封装在&lt;br&gt;一个文件中。&lt;p&gt;该格式文件还可以包含超文本链接、声音和影像等信息，支持特长&lt;br&gt;文件。PDF 格式使用了工业标准的压缩算法，易于传输与储存。&lt;p&gt;PDF 格式的文档具有纸版书的质感和阅读效果，能&amp;quot;逼真&amp;quot;展现书&lt;br&gt;的原貌，显示大小可任意调节，完全不依赖操作系统的语言和&lt;br&gt;字体及显示设备。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-1158871464811783008?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/1158871464811783008/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=1158871464811783008' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1158871464811783008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1158871464811783008'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2010/04/latex-diary.html' title='LaTeX diary'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-1600775491143980365</id><published>2009-12-25T02:50:00.001+08:00</published><updated>2009-12-25T03:02:21.208+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>spider国际</title><content type='html'>很荣幸我的blogspot也和牛博一样走出 GFW，成了 spider国际，耐心地等了超过一个季度，blogspot还能没能再一次跨进钢铁长城，而 picasaweb 和 docs.google 的 spreadsheets 也跑出了 GFW 。&lt;br /&gt;&lt;br /&gt;fans.googlegroup 上看到 puff，来到地球上还是第一次用翻墙工具。&lt;br /&gt;为 GFW 出卖灵魂的人们，你们的恶行历史会记下，你们的子孙也会为你们的存在而感到羞耻。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-1600775491143980365?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/1600775491143980365/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=1600775491143980365' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1600775491143980365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1600775491143980365'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2009/12/spider.html' title='spider国际'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-7827906396651448318</id><published>2009-08-04T22:03:00.001+08:00</published><updated>2009-08-04T22:03:01.568+08:00</updated><title type='text'>Vim text-Objects</title><content type='html'>下午五点多偶然看到一个 blog 上写到 Vim 的文本对象操作，用了五年多了都没注意到这个用法，多按了多少次键盘......&lt;p&gt;ci( or ci)  修改光标所在的()内的字符&lt;br&gt;ci[ or ci]  修改光标所在的[]内的字符&lt;br&gt;ci{ or ci}  修改光标所在的{}内的字符&lt;br&gt;ci&amp;lt; or ci&amp;gt;  修改光标所在的&amp;lt;&amp;gt;内的字符&lt;br&gt;ci&amp;quot;  修改光标所在的&amp;quot;&amp;quot;内的字符&lt;br&gt;ci&amp;#39;  修改光标所在的&amp;#39;&amp;#39;内的字符&lt;br&gt;ci`  修改光标所在的``内的字符&lt;br&gt;cis  修改光标所在的 inner sentence 的字符&lt;br&gt;cip  修改光标所在的 inner paragraph 的字符&lt;br&gt;cib  修改光标所在的 inner block 的字符&lt;p&gt;上面的命令中 c 是操作命令，也可以是其它操作命令，操作命令后面的部分是文本对象，i 表示 innter，具体可查阅 Vim 手册的&lt;br&gt;text-objects 部分。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-7827906396651448318?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/7827906396651448318/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=7827906396651448318' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7827906396651448318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7827906396651448318'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2009/08/vim-text-objects.html' title='Vim text-Objects'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-3842531845307263000</id><published>2009-06-16T14:26:00.001+08:00</published><updated>2009-06-16T14:26:48.245+08:00</updated><title type='text'>Blogspot block off by gfw</title><content type='html'>Blogspot 又一次被 gfw 挡住了，现在只能用 gmail 来 post， 靠翻墙来浏览。&lt;br&gt;外交部发言人在关于绿坝的记者招待会上称&amp;quot;中国的互联网是开放的&amp;quot;，&lt;br&gt;MLGBD，又一次成功地将大家搞吐了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-3842531845307263000?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/3842531845307263000/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=3842531845307263000' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3842531845307263000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3842531845307263000'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2009/06/blogspot-block-off-by-gfw.html' title='Blogspot block off by gfw'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-5981007158818238713</id><published>2009-05-08T10:18:00.001+08:00</published><updated>2009-05-08T10:22:15.383+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nature'/><title type='text'>Solar System Simulator</title><content type='html'>NASA 做的太阳系模拟器，可以体验在太阳系不同星体上观察宇宙的视角。&lt;br /&gt;&lt;br /&gt;http://space.jpl.nasa.gov/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-5981007158818238713?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/5981007158818238713/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=5981007158818238713' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/5981007158818238713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/5981007158818238713'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2009/05/solar-system-simulator.html' title='Solar System Simulator'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-5444621669848090669</id><published>2009-04-28T10:15:00.002+08:00</published><updated>2009-04-28T11:46:34.120+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vim'/><title type='text'>Vim custom</title><content type='html'>用 Vim 的 imap 提高一点效率，下面是针对 perl 源文件的设置：&lt;br /&gt;autocmd FileType perl imap popen open(FILE, '&lt;++&gt;') or die $!;&lt;br /&gt;&lt;br /&gt;针对所有文件的设置：&lt;br /&gt;" ---------- begin global custom ----------&lt;br /&gt;imap zsj &lt;c-r&gt;=strftime("20%y-%m-%d %H:%M:%S")&lt;cr&gt;&lt;br /&gt;imap zeml redspid@gmail.com&lt;br /&gt;" ------------ end global custom ----------&lt;br /&gt;可以用 zsj 输入当前的日期时间，&lt;br /&gt;用 zeml 插入我的 Gmail 地址  ^^&lt;br /&gt;英文中 z 字母的使用频率低，所以我这里的映射都用 z 开头。&lt;br /&gt;&lt;br /&gt;下面是所有字母使用频率排序： x%&lt;br /&gt;&lt;/cr&gt;&lt;/c-r&gt;A 8.19 B 1.47 C 3.83 D 3.91 E 12.25 F 2.26 G 1.71 &lt;br /&gt;H 4.57 I 7.10 J 0.14 K 0.41 L 3.77 M 3.34 N 7.06 &lt;br /&gt;O 7.26 P 2.89 Q 0.09 R 6.85 S 6.36 T 9.41 &lt;br /&gt;U 2.58 V 1.09 W 1.59 X 0.21 Y 1.58 Z 0.08&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-5444621669848090669?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/5444621669848090669/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=5444621669848090669' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/5444621669848090669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/5444621669848090669'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2009/04/vim-custom.html' title='Vim custom'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-3527922482908325867</id><published>2009-04-23T13:03:00.002+08:00</published><updated>2009-04-28T10:12:40.916+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vim'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>encoding module &amp; wirte config file in XML</title><content type='html'>使用 Unicode 有许多有用的字符属性(\p{})，&lt;br /&gt;&lt;br /&gt;Perl 中使用各种编码也非常方便，只要下面这一行就可以读入 utf-8 编码，向标准输出打印 cp936 编码了。&lt;br /&gt;use encoding 'utf8' OUTPUT=&gt;'cp936';&lt;br /&gt;&lt;br /&gt;XML 炒了挺长时间，我还没用到过，前几天是了一下使用 XML 写数据文件和配置文件，感觉比较方便，省去解析数据文件和配置文件的麻烦。&lt;br /&gt;从 www.vim.org 找了 xml.vim 插件来替代 gvim 自带原来的 xml.vim 和 html.vim 。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-3527922482908325867?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/3527922482908325867/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=3527922482908325867' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3527922482908325867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3527922482908325867'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2009/04/encoding-module-wirte-config-file-in.html' title='encoding module &amp; wirte config file in XML'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-2015691806199732489</id><published>2009-04-22T08:40:00.001+08:00</published><updated>2009-04-22T08:43:22.627+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>在 Perl 中获得微秒级的时间间隔</title><content type='html'>在 Perl 中获得微秒级的时间间隔:&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#808080;"&gt;1 &lt;/span&gt;&lt;span style="color:#a0a0ff;"&gt;use &lt;/span&gt;Time::HiRes &lt;span style="color:#00ffff;"&gt;&lt;b&gt;qw(&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;usleep&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:#808080;"&gt;2 &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#808080;"&gt;3 &lt;/span&gt;{&lt;br /&gt;&lt;span style="color:#808080;"&gt;4 &lt;/span&gt;    &lt;span style="color:#a0a0ff;"&gt;local&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;$|&lt;/span&gt; = &lt;span style="color:#00ffff;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:#808080;"&gt;5 &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#808080;"&gt;6 &lt;/span&gt;    &lt;span style="color:#a0a0ff;"&gt;for&lt;/span&gt; (&lt;span style="color:#00ffff;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt; .. &lt;span style="color:#00ffff;"&gt;&lt;b&gt;9&lt;/b&gt;&lt;/span&gt;)&lt;br /&gt;&lt;span style="color:#808080;"&gt;7 &lt;/span&gt;    { usleep(&lt;span style="color:#00ffff;"&gt;&lt;b&gt;9999&lt;/b&gt;&lt;/span&gt;); &lt;span style="color:#a0a0ff;"&gt;print&lt;/span&gt; &lt;span style="color:#00ffff;"&gt;&lt;b&gt;"&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;Cool LaTeX!&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#ffff00;"&gt;\n&lt;/span&gt;&lt;span style="color:#00ffff;"&gt;&lt;b&gt;"&lt;/b&gt;&lt;/span&gt; }&lt;br /&gt;&lt;span style="color:#808080;"&gt;8 &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-2015691806199732489?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/2015691806199732489/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=2015691806199732489' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2015691806199732489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2015691806199732489'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2009/04/perl.html' title='在 Perl 中获得微秒级的时间间隔'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-7833103894741770867</id><published>2009-04-01T09:47:00.002+08:00</published><updated>2009-04-01T10:12:29.545+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vim'/><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>My Vimperator &amp; 虚拟化 &amp; 云</title><content type='html'>呵呵，现在我的 FireFox 也变成 Vim 了， Cool !&lt;br /&gt;&lt;br /&gt;有的操作还有点不习惯，但总算是不要动鼠标了，我的肩膀和手臂总算得到了全方位的保护。垃圾 BSS 还是不够规范，不能在 FireFox 上使用。&lt;br /&gt;&lt;br /&gt;如果没有什么突破性的创新，Vim 的高效编辑模式已经很难被超越了。&lt;br /&gt;&lt;br /&gt;近来虚拟化应用和云计算都成了所谓 IT 界人士的口头禅了，Google 了一下相关资料，前景确实看好，但是离普及应用还有距离，主要我觉得还是现在的硬件仍然不够强悍，硬件能力起码增长个20倍才有吸引力。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-7833103894741770867?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/7833103894741770867/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=7833103894741770867' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7833103894741770867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7833103894741770867'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2009/04/my-vimperator.html' title='My Vimperator &amp; 虚拟化 &amp; 云'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-308062825170517224</id><published>2009-03-23T12:13:00.001+08:00</published><updated>2009-03-23T12:17:24.357+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><category scheme='http://www.blogger.com/atom/ns#' term='TeX'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>make my code</title><content type='html'>一直以来编辑、管理的文件都比较简单松散，完全靠手工操作也轻松。随着文档越来越复杂，图片、asy代码、导入文件(\input)，手工管理比较麻烦了，于是知道很久前下载的 GNU make 手册仔细看了会，学到够用便 OK :)&lt;br /&gt;&lt;br /&gt;听说现在许多 IDE 也可以实现类似 make 的管理功能，但那些只是在管理程序代码上应用，不能达到 make 这样灵活的应用效果，我现在就用 make 来管理我的 LaTeX 文档，我想，其它的 IDE 工具可能不太容易做到。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-308062825170517224?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/308062825170517224/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=308062825170517224' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/308062825170517224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/308062825170517224'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2009/03/make-my-code.html' title='make my code'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-4029330976938773966</id><published>2009-03-16T17:57:00.002+08:00</published><updated>2009-03-16T18:00:04.585+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vim'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Code comment</title><content type='html'>今天想到了一个注释代码的好办法。譬如在 Perl 里可以使用&lt;br /&gt;# [ Start a function&lt;br /&gt;....&lt;br /&gt;# End the function ]&lt;br /&gt;这样的形式添加注释，这样可以方便地利用 Vim 的折叠功能。 ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-4029330976938773966?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/4029330976938773966/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=4029330976938773966' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4029330976938773966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4029330976938773966'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2009/03/code-comment.html' title='Code comment'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-7394679973803035704</id><published>2009-03-12T14:30:00.001+08:00</published><updated>2009-03-12T14:33:24.629+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Perl Encode</title><content type='html'>为了我那个自动分行的程序，今天仔细研究了一下字符编码，大概搞明白了 perl 对于字符编码的处理。&lt;br /&gt;&lt;br /&gt;perl 内部是用`宽字符(一个整数,在 32位系统上MAX=2^32, 64位系统上MAX=2^64)'来表示字符的，对于(从文件、标准输入或程序源码)读入的字符，perl 把它当作字节流存储，并不进行解码。&lt;br /&gt;&lt;br /&gt;当需要(譬如要split一个字符串)的时候按照内部`宽字符'解码，如果读入的字符是其它(UTF8、cp936、gb2312、Big5 等等)编码方式时，就需要用Encode::decode 告诉 perl 用正确的方式将字符流解码为 perl内部的`宽字符'。&lt;br /&gt;&lt;br /&gt;输出的时候需要将字符流编码。 譬如 windows 中文系统默认为 cp936 编码，这时就需要 Encode::encode("cp936", $str); 告诉 perl 将`宽字符'以 cp936 标准编码，否则在标准输出上将显示乱码。&lt;br /&gt;&lt;br /&gt;如果想转换字符编码方式，只需要以正确的方式先将读入的字符 decode，再以需要的编码方式 encode 就行了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-7394679973803035704?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/7394679973803035704/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=7394679973803035704' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7394679973803035704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7394679973803035704'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2009/03/perl-encode.html' title='Perl Encode'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-712854758079370874</id><published>2009-01-20T11:29:00.005+08:00</published><updated>2009-01-20T11:39:51.264+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Asymptote'/><title type='text'>带边框的文字</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6BrgcXU4a98/SXVG6EiQBnI/AAAAAAAACCw/V5AZYVCgYpk/s1600-h/lable_string.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 63px; height: 67px;" src="http://4.bp.blogspot.com/_6BrgcXU4a98/SXVG6EiQBnI/AAAAAAAACCw/V5AZYVCgYpk/s400/lable_string.png" alt="" id="BLOGGER_PHOTO_ID_5293214900507641458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;span style="color:#804040;"&gt;1 &lt;/span&gt;currentpen = linewidth(bp);&lt;br /&gt;&lt;br /&gt;// draw(string, path, pair, 文字与边界的margin);&lt;br /&gt;&lt;span style="color:#804040;"&gt;2 &lt;/span&gt;draw(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;"Hello"&lt;/span&gt;&lt;/span&gt;, box, (&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;0&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;15&lt;/span&gt;&lt;/span&gt;mm),&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;1&lt;/span&gt;&lt;/span&gt;mm);&lt;br /&gt;&lt;span style="color:#804040;"&gt;3 &lt;/span&gt;draw(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;"World"&lt;/span&gt;&lt;/span&gt;, ellipse, (&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;0&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;0&lt;/span&gt;&lt;/span&gt;),&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;2&lt;/span&gt;&lt;/span&gt;mm);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-712854758079370874?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/712854758079370874/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=712854758079370874' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/712854758079370874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/712854758079370874'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2009/01/blog-post.html' title='带边框的文字'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6BrgcXU4a98/SXVG6EiQBnI/AAAAAAAACCw/V5AZYVCgYpk/s72-c/lable_string.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-690458584705970802</id><published>2009-01-15T11:35:00.003+08:00</published><updated>2009-01-15T11:44:02.694+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Asymptote'/><title type='text'>Map of Florida</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6BrgcXU4a98/SW6wCwIasOI/AAAAAAAACCo/f3aZQ3WQ_Cs/s1600-h/Florida.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 143px; height: 169px;" src="http://2.bp.blogspot.com/_6BrgcXU4a98/SW6wCwIasOI/AAAAAAAACCo/f3aZQ3WQ_Cs/s400/Florida.png" alt="" id="BLOGGER_PHOTO_ID_5291360173533343970" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;size(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;5&lt;/span&gt;&lt;/span&gt;cm, &lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;0&lt;/span&gt;&lt;/span&gt;);&lt;br /&gt;currentpen=linewidth(bp);&lt;br /&gt;&lt;br /&gt;draw((&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;356.406&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;604.316&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;362.262&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;606.129&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;370.055&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;609.113&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;377.555&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;613.383&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;382.598&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;616.355&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;386.996&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;620.234&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;389.969&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;623.469&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;392.297&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;624.762&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;393.332&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;623.859&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;394.367&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;623.211&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;400.316&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;625.539&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;402.645&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;627.867&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;406.914&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;629.938&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;411.57&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;632.781&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;418.164&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;636.402&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;424.242&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;637.438&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;433.812&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;637.824&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;435.234&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;638.344&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;437.953&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;638.082&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;438.984&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;636.145&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;440.539&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;636.402&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;442.09&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;635.887&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;444.031&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;636.145&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;445.582&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;636.531&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;448.168&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;634.332&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;449.332&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;631.875&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;449.461&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;628.773&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;450.754&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;627.609&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;451.531&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;625.668&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;451.145&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;624.633&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;450.367&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;623.727&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;448.039&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;623.469&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;445.324&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;622.824&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;441.184&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;620.105&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;439.375&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;617.262&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;439.117&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;614.156&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;440.148&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;613.512&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;436.66&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;611.055&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;433.812&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;610.535&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;430.578&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;608.469&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;429.676&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;607.043&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;431.355&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;605.75&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;431.098&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;604.328&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;427.09&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;602.648&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;423.984&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;600.32&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;419.715&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;597.992&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;417.258&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;595.922&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;414.285&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;593.078&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;412.344&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;594.758&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;407.949&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;597.344&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;406.652&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;597.215&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;405.879&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;593.594&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;406.395&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;592.301&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;406.914&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;592.559&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;407.688&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;594.629&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;411.309&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;593.465&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;411.699&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;592.82&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;408.465&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;591.395&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;404.586&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;590.363&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;402.387&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;590.102&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;398.637&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;591.266&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;391.004&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;591.266&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;388.031&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;588.809&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;385.574&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;587.773&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;384.539&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;583.637&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;384.023&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;582.086&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;381.953&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;580.793&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;380.66&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;578.074&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;377.941&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;577.172&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;377.168&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;574.973&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;374.191&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;573.031&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;373.027&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;569.668&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;371.863&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;567.34&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;371.863&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;565.273&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;372.512&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;562.039&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;374.062&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;561.91&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;374.84&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;562.555&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;375.746&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;562.168&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;375.613&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;559.711&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;378.461&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;556.734&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;380.012&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;553.891&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;380.012&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;550.785&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;381.047&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;548.199&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;378.848&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;547.941&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;377.297&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;546.648&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;376.391&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;544.32&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;375.227&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;543.027&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;372.125&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;536.562&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;370.699&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;530.484&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;371.219&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;526.992&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;371.605&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;522.207&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;373.289&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;517.422&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;373.777&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;514.637&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;367.336&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;514.445&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;365.785&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;512.379&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;364.363&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;510.953&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;361.906&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;511.215&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;360.871&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;519.359&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;358.543&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;539.797&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;358.027&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;545.227&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;358.25&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;549.574&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;361.355&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;551.645&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;362.52&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;552.809&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;362.93&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;559.289&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;362.414&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;567.941&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;361.379&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;585.152&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;360.84&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;589.508&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;360.859&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;593.172&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;363.188&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;593.301&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;363.836&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;596.359&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;359.992&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;596.617&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;356.367&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;595.324&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;355.781&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;596.09&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;356.148&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;600.18&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--&lt;span style="color:#804040;"&gt;&lt;b&gt;cycle&lt;/b&gt;&lt;/span&gt;^^(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;462.328&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;614.355&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;461.812&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;616.293&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;461.617&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;617.328&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;459.742&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;618.492&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;458.449&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;620.367&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;458.836&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;621.402&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;459.098&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;622.762&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;459.938&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;623.082&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;460.906&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;620.305&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;462.07&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;616.941&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;463.039&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;615.066&lt;/span&gt;&lt;/span&gt;)--&lt;span style="color:#804040;"&gt;&lt;b&gt;cycle&lt;/b&gt;&lt;/span&gt;^^(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;458.32&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;625.152&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;459.16&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;626.125&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;457.48&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;628.32&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;454.117&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;632.59&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;451.012&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;635.562&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;445.711&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;637.57&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;444.352&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;638.344&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;441.637&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;638.473&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;442.023&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;637.891&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;444.289&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;637.117&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;447.973&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;635.953&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;452.176&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;633.367&lt;/span&gt;&lt;/span&gt;)--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;455.539&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;629.875&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;--(&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;457.09&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(242, 242, 242);"&gt;&lt;span style="color:#ff00ff;"&gt;627.156&lt;/span&gt;&lt;/span&gt;)--&lt;span style="color:#804040;"&gt;&lt;b&gt;cycle&lt;/b&gt;&lt;/span&gt;); &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-690458584705970802?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/690458584705970802/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=690458584705970802' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/690458584705970802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/690458584705970802'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2009/01/map-of-florida.html' title='Map of Florida'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6BrgcXU4a98/SW6wCwIasOI/AAAAAAAACCo/f3aZQ3WQ_Cs/s72-c/Florida.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-7151313082806614162</id><published>2008-12-30T09:38:00.003+08:00</published><updated>2008-12-30T09:53:48.327+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>CS University Tip</title><content type='html'>美国计算机专业前20名著名学校点评(转)&lt;br /&gt;&lt;br /&gt;总的来说，前20的CS可以分成三波：&lt;br /&gt;&lt;br /&gt;多以开源起家&lt;br /&gt;一、4个最为优秀的CS Program: Stanford, UC. Berkeley, MIT, CMU&lt;br /&gt;&lt;br /&gt;二、6个其他前10 的： UIUC， Cornell, U. of Washington,Princeton, U. of Texas- Austin 和 U. of Wisconsin-Madison，其中UIUC, Cornell, U. of Washington和UW- Madison几乎从未出过前10。&lt;br /&gt;&lt;br /&gt;三、其他非常非常优秀的CS：CalTech, U. of Maryland at CP, UCLA, Brown, Harvard , Yale, GIT, Purdue, Rice, 和 U. of Michigan.&lt;br /&gt;&lt;br /&gt;Stanford URL: http://www.stanford.edu/ Stanford 的CS是个很大个的CS，拥有40人以上的Faculty成员，其中不乏响当当硬梆梆的图灵奖得主 (Edward A.Feigenbaum, John McCarthy) 和各个学科领域的大腕人物，比如理论方面的权威 Donald E. Knuth； 数据库方面的大牛Jeffrey D. Ullman(他还写过那本著名的编译原理，此人出自 Princeton)；以及 RISC 技术挑头人之一的John Hennessy。相信CS的同学对此并不陌生。该系每年毕业30多名 Ph.D.以及更多的 Master。学生的出路自然是如鱼得水，无论学术界还是工业界，Stanford 的学生倍受青睐。几乎所有前10的CS中都有 Stanford 的毕业生在充当教授。当然同样享有如此地位的还包括其他三头巨牛：UC.Berkeley, MIT 和 CMU. 毕业于U. of Utah的 Jim Clark 曾经在 Stanford CS当教授。后来就是这个人创办了高性能计算机和科学计算可视化方面巨牛的SGI公司。SUN 公司名字的来历是：Stanford UniversityNetwork.。顺便提一下，创办 YAHOO的华人杨致远曾在斯坦福的EE攻读博士，后来中途辍学办了YAHOO。 CS科研方面，斯坦福无论在理论，数据库，软件，硬件，AI 等各个领域都是实力强劲的顶级高手。斯坦福的 RISC 技术后来成为 SGI/MIPS的 Rx000系列微处理器的核心技术； DASH，FLASH 项目更是多处理器并行计算机研究的前沿；SUIF 并行化编译器成为国家资助的重点项目，在国际学术论文中SUIF编译器的提及似乎也为某些平庸的论文平添几分姿色。 Stanford 有学生14000多，其中研究生7000 多。CS有175人攻读博士， 350人攻读硕士，每年招的学生数不详，估计少不了，但不要忘了，每年申请CS的申请学生接近千人。申请费高达 $90.00。 斯坦福大学位于信息世界的心脏地带--硅谷。加州宜人的气候，美丽的风景使得Stanford堪称CS的天堂。33.1平方公里的校园面积怕是够学子们翻江蹈海，叱姹风云的了。申请斯坦福是很难成功的，但也并非不可为之。去斯坦福这样的牛校，运气很重要，牛人的推荐也很重要。&lt;br /&gt;&lt;br /&gt;UC-Berkeley URL: http://www.berkeley.edu/ 同样地处旧金山湾畔，硅谷地带，离 Stanford 只有大约 50公里的加州大学伯克利校区：UC.Berkeley 是美国最激进的学校之一。60年代的嬉皮文化，反越战，东方神秘主义，回归自然文化都起源于此。诗人爱伦金斯堡是当年 Berkeley的代言人。 在当今高科技领域 C. Berkeley 在缔造新的神话，在文学，数学，化学，新闻等20多个大的学科领域中位居前3。 16个诺贝尔奖得主，总数近200的科学院院士、工程院院士，连同众多在硅谷商战中成为亿万富翁的伯克利人撑起了一面汇集天下之英才的大旗。INTEL总裁AndrewGrove 毕业于 UC. Berkeley。 BSD版的UNIX影响了整个OS界，伯克利的 RISC 技术后来成为了SUN公司 SPARC 微处理器的核心技术，巨牛人物 David Patterson 接下了一个6亿美元的项目用于新型计算机体系结构，特别是 IRAM 的研究开发。 UC. Berkeley 有学生 30000多，研究生超过8500。申请费和其他加州大学的分校一样，$40.00。据一项最近的调查，伯克利已经成为美国大学生最向往的研究生院，高居榜首，其申请的难度可想而知。UC.Berkeley的 DEADLINE一般很早，12月中就截至了，其内部 的实际 DEADLINE 其实要迟一些。 Berkeley的CS是个大系，Faculty中有图灵奖得主以及象 Patterson 这样的巨牛。学生的出路同 Stanford，MIT，CMU一样，光辉灿烂，前程锦绣。CS科研方面，Berkeley 也是样样强，门门巨牛。 旧金山湛蓝起伏的海湾，苍翠绵延的山峦，舒心宜人的气候，以及近在咫尺的硅谷…… 这一切的一切不也使得UC.Berkeley 俨然一个CS 学子的世外桃源么？&lt;br /&gt;&lt;br /&gt;MIT URL: http://www.mit.edu/ MIT 招生好象不看GRE成绩。但MIT的CS是巨牛的，99年最新排名上它和斯坦福被打了5.0 的满分，并列第一。MIT的CS曾为CS的发展作出不可磨灭的贡献，数据流计算的思想和数据流计算机、人工智能方面的许多重大成就，以及影响了整个 UNIX 界的 X-Window……MIT和斯坦福，CMU， UC. BERKELEY一样，都是几乎在CS界样样巨牛的学校。 MIT的Media Arts and Sciences其知名度不在 Computer Department下。主要是多媒体技术，信息处理，人工智能……有一大批著名的教授，如 Marvin Minsky (Turing Aw ard)&lt;br /&gt;&lt;br /&gt;CMU URL: http://www.cmu.edu/ CMU 是个位于匹兹堡的不大的学校，学生7000多，校园好象也不大。但这个学校在工程及其他一些领域却是顶尖的学堂。 CMU的 CS 不单单是个系，而是一个学院，其规模之大，可能只有Stanford, UIUC可比。教师学生的情况同前面3个类似，不再赘述。Mach 操作系统，PVM，C.mmp等都有CMU的巨大贡献。 申请CMU的难度很大，因为尽管CMU的 CS Faculty很多，但每年只招不足30人的研究生队伍。&lt;br /&gt;&lt;br /&gt;CORNELL URL: http://www.(cs.)cornell.edu 作为 IVY LEAGUE的成员和一所私立学校，Cornell有其独到的优势。在美国，私立学校一般比公立学校难进，其学生也是经过很严的选拔才录取的，Cornell的CS学生入校后多能享受FELLOW的待遇，其个人经济条件非公立学校可比，加上贵族式校友的提拔，私立学校的出路是很诱人的。 Cornell在理论计算机方面一直是顶级高手，但在其他CS领域并不总能在前10.Cornell学生18000多，研究生过5000。CS每年招攻读Ph.D.的学生25 人左右。&lt;br /&gt;&lt;br /&gt;UIUC URL: http://www.uiuc.edu/ UIUC 的工程院在全美堪称至尊级的巨牛，其 CS，ECE，EE 在历史上都屡建战功。在 CS 方面，从早期的超级计算机ILLIAC I, II, III, IV 到后来的 CEDAR，都是CS发展史上，特别是并行计算机发展史上的重要事件，影响、引导了很长时期的发展。 David Kuck曾是并行处理界的一代先驱。 超级计算机研究开发中心：CSRD，美国国家超级计算及应用中心：NCSA等众多的机构，使得 UIUC 的 CS 常常成为研发的领军头领。大家可能还记得，Netscape-Navigator 的最初开发人员中有个 Marc,Anderssen。这位来自 WISCONSIN 的小伙在 UIUC 读本科，大四的时候在NCSA参与编写了 MOSAIC，后来他去了硅谷，并在那里遇到了前面提到过的大牛: Jim Clark,SGI 的前创始人，两人一见如故，联手创办了著名的网景，并一度在浏览器市场上独霸武林。 随着一代代至尊大师的离去，UIUC 的 Faculty 看上去似乎并不引人注目。但得提醒你，UIUC 的 CS 向来以实干著称。我期待着他们下一个惊世之举。 UIUC是个大学校，学生数过35000，研究生院的近万。UIUC 的 CS 很大个，40余个 Faculty 提供了全面的 CS 教育和科研项目。每年30多个博士的毕业数目似乎只有斯坦福可以匹敌。 UIUC 的 Polaris 并行化编译器是这个领域和斯坦福的 SUIF 直接叫板的拳头产品。清华开发并行编程环境时选用了这个系统。只是代码庞大，运作缓慢的 Polaris 搞的清华有那么一点点瘪西西... UIUC 在计算机硬件，软件，AI，DB，等各个领域都相当巨牛。特别是硬件，前面提到的 ILLIAC，CEDAR.....事实上，UIUC 在超级计算机系统的研究开发方面决不逊于 CS 四大天王中的任何一个，甚至有过之而无不及。NCSA 建立在 UIUC这一事实本身就是佐证。 UIUC-CS 的学生毕业后去学术界的不少，Stanford, Berkeley...都有UIUC 的博士挑大梁。但更多 UIUC-CS 学人还是进入业界，成为业界实干的中坚。&lt;br /&gt;&lt;br /&gt;U. of Washington URL: http://www.washington.edu/ 位于 Seattle的 UW 得天独厚--计算机界的巨牛MS就在西雅图，而且 更为要命的是，Bill Gates 就是那里儿的人。这位 Harvard 的辍学者给了哈福许多 MONEY, 但同给UW的钱财相比，实在是小巫见大巫。 U. of Washington 位于分光秀丽的 WASHINGTON 湖畔，气候四季如春。33000多学生中研究生有8000。Seattle 最令人厌恶的地方可能就是一年有160天会降水。 UW的 CS 较大，30多名 Faculty 成员，每年近20个优质博士毕业，以及大量的Master。估计每年的招生数应该不低，UW的CS在各个方面比较均衡，最强的软件排名第5，而其他领域也一般都能位居前10，好象没有明显弱的地方。 图灵奖得主 Dick Karp 从Berkeley告老还乡后又被返聘到了 UW 的 CS。U. of Washin gton 的 CS 要求很高，Ph.D.学生入学的平均 GPA 高达 3.86, GRE2160+，加上一般较早的 DEADLINE，申请UW是相当有难度的。&lt;br /&gt;&lt;br /&gt;Princeton URL: http://www.princeton.edu/ Princeton 是个令人神往的地方，这里曾经世界的科学中心。Princeton的CS不大， 18个 Faculty 成员，学生数也不算多。科研上除了排名第5的理论，似乎还没注意到其他闪光点。但是，Princeton 无疑培养出了大量计算机界的优秀人物，Jeffrey D. Ullman, John McCarthy 等大名鼎鼎的巨牛人物均出自 Princeton. 在 Princeton 领受的教育是最好的教育熏陶。 Princeton 学校不大。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-7151313082806614162?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/7151313082806614162/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=7151313082806614162' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7151313082806614162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7151313082806614162'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/12/cs-university-tip.html' title='CS University Tip'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-1406193035053779296</id><published>2008-12-17T15:53:00.001+08:00</published><updated>2008-12-17T15:55:49.641+08:00</updated><title type='text'>I am married</title><content type='html'>2008年12月6日，我结婚了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-1406193035053779296?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/1406193035053779296/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=1406193035053779296' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1406193035053779296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1406193035053779296'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/12/i-am-married.html' title='I am married'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-8921706388021724833</id><published>2008-10-20T11:43:00.002+08:00</published><updated>2008-10-20T11:51:06.470+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Algorithm'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Exhaustive Attack method</title><content type='html'>#! /usr/bin/perl&lt;br /&gt;use warnings;&lt;br /&gt;use strict;&lt;br /&gt;&lt;br /&gt;my %dict = ('A'=&gt;'E', 'E'=&gt;'F', 'F'=&gt;'H', 'H'=&gt;'J', 'J'=&gt;'K',&lt;br /&gt;    'K'=&gt;'M', 'M'=&gt;'P', 'P'=&gt;'A', ' '=&gt;'A');&lt;br /&gt;my $max = 'P';&lt;br /&gt;my $str_len = 4;&lt;br /&gt;&lt;br /&gt;my @tmp;&lt;br /&gt;for (my $i=0; $i&lt;$str_len; $i++) { push(@tmp, ' ') }&lt;br /&gt;&lt;br /&gt;sub up {&lt;br /&gt;    my($pos) = @_;&lt;br /&gt;    if (($tmp[$pos] eq $max) and ($pos &lt; $str_len)) {&lt;br /&gt;        $tmp[$pos] = $dict{$tmp[$pos]};&lt;br /&gt;        &lt;br /&gt;        $pos++; up($pos);&lt;br /&gt;    } else {&lt;br /&gt;        $tmp[$pos] = $dict{$tmp[$pos]};&lt;br /&gt;        return 0;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;while (!(($tmp[0] eq $max) and ($tmp[1] eq $max)&lt;br /&gt;        and ($tmp[2] eq $max) and ($tmp[3] eq $max))) {&lt;br /&gt;    up(0);&lt;br /&gt;&lt;br /&gt;    for (@tmp) { print if ($_ ne ' ') }&lt;br /&gt;    print "\n";&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-8921706388021724833?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/8921706388021724833/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=8921706388021724833' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8921706388021724833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8921706388021724833'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/10/exhaustive-attack-method.html' title='Exhaustive Attack method'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-8316744070948767371</id><published>2008-09-12T21:56:00.001+08:00</published><updated>2008-09-12T21:58:39.214+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nature'/><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>Infinity</title><content type='html'>只有两种事物是无穷无尽的--宇宙和人类的愚蠢。但对于前者，我不敢确定。&lt;br /&gt;          -- Albert Einstein&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-8316744070948767371?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/8316744070948767371/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=8316744070948767371' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8316744070948767371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8316744070948767371'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/09/infinity.html' title='Infinity'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-6023300984525158144</id><published>2008-09-08T16:48:00.002+08:00</published><updated>2008-09-08T16:58:33.556+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>卤肉</title><content type='html'>突然想自己做卤菜，星期天下午从联华超市买了包卤料，又从小区外的超市买了斤肉，把紫砂的电炖锅拿出来，按卤料包装上的说明将原料洗吧洗吧就入锅了，嘿嘿。&lt;div&gt;这个炖锅也忒慢，1个多小时才烧开，大约炖两个小时肉就很松了，香气四溢啊。但是开始水放得多了点，于是继续炖2个多小时，一直到晚上9点，终于可以开锅了，哈喇子流得稀里哗啦 ^^&lt;/div&gt;&lt;div&gt;虽然中途加了4次盐，还是淡了点，味道和外面卖的卤肉味道也不太一样，不过还是可以的。继续改进，明天添图&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-6023300984525158144?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/6023300984525158144/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=6023300984525158144' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6023300984525158144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6023300984525158144'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/09/blog-post.html' title='卤肉'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-7734004140129417533</id><published>2008-09-07T14:34:00.003+08:00</published><updated>2008-09-07T15:00:04.201+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UTF-8'/><category scheme='http://www.blogger.com/atom/ns#' term='TeX'/><title type='text'>Using UTF-8</title><content type='html'>使用 UTF-8 编码一个多月了，发现不少问题。首先是普及率，会使用 GNU/Linux 的人太少，即使有人会用，有时受到环境的限制也用不了，而 windows 上默认则是 GB 编码，用 UTF-8 需要设置，这样换其它机器写文档的时候就比较麻烦，每台机器都要设置。最大的问题是 latex-suite 竟然对 UTF-8 的支持也有问题，用 UTF-8 编码时 ALT-I 的键映射就失效了。 ctex 宏包对 UTF-8 支持也不好，哎... 环境问题啊。 暂时先换回 GB 编码了，等等再说。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-7734004140129417533?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/7734004140129417533/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=7734004140129417533' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7734004140129417533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7734004140129417533'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/09/using-utf-8.html' title='Using UTF-8'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-8272021755636007193</id><published>2008-09-04T09:52:00.000+08:00</published><updated>2008-09-04T09:54:27.013+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Chrome hotkey</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Arial; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;h3 style="font-size: 1.05em; color: rgb(49, 49, 49); "&gt;窗口和标签页快捷方式&lt;/h3&gt;&lt;table border="1" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+N&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;打开新窗口&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;按住 &lt;strong&gt;Ctrl&lt;/strong&gt;‎ 键，然后点击链接&lt;/td&gt;&lt;td&gt;在新标签页中打开链接&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;按住 &lt;strong&gt;Shift&lt;/strong&gt; 键，然后点击链接&lt;/td&gt;&lt;td&gt;在新窗口中打开链接&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Alt+F4&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;关闭当前窗口&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+T&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;打开新标签页&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+Shift+T&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;重新打开上次关闭的标签页。 谷歌浏览器可记住您关闭的最后 10 个标签页。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;将链接拖动到标签页内&lt;/td&gt;&lt;td&gt;在指定标签页中打开链接&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;将链接拖动到两个标签页之间&lt;/td&gt;&lt;td&gt;在新标签页横条上的指定位置打开链接&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+1&lt;/strong&gt; 到 &lt;strong&gt;Ctrl+8&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;切换到指定位置编号的标签页。 您按下的数字代表标签页横条上的位置。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+9&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;切换到最后一个标签页&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+Tab&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;切换到下一个标签页&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+Shift+Tab&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;切换到上一个标签页&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+W&lt;/strong&gt; 或 &lt;strong&gt;Ctrl+F4&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;关闭当前标签页或弹出式窗口&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3 style="font-size: 1.05em; color: rgb(49, 49, 49); "&gt;地址栏快捷方式&lt;/h3&gt;在地址栏，进行下列操作之一：&lt;table border="1" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;键入搜索字词&lt;/td&gt;&lt;td&gt;使用默认搜索引擎进行搜索&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;键入网址中"www."和 ".com"之间的部分，然后按&lt;strong&gt;Ctrl+Enter&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;为您在地址栏中输入的内容添加"www."和".com"，然后打开网址&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;键入搜索引擎关键字或网址，按 &lt;strong&gt;Tab&lt;/strong&gt; 键，然后键入搜索字词&lt;/td&gt;&lt;td&gt;使用与关键字或网址相关联的搜索引擎进行搜索 如果谷歌浏览器可以识别您要使用的搜索引擎，将会提示您按 &lt;strong&gt;Tab&lt;/strong&gt;键。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;F6&lt;/strong&gt; 或 &lt;strong&gt;Ctrl+L&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;突出显示网址区域中的内容&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;输入网址，然后按&lt;strong&gt;Alt+Enter&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;在新标签页中打开网址&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3 style="font-size: 1.05em; color: rgb(49, 49, 49); "&gt;打开谷歌浏览器功能的快捷方式&lt;/h3&gt;&lt;table border="1" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+B&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;打开和关闭书签栏&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+H&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;查看历史记录页&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+J&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;查看下载页&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Shift+Escape&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;查看任务管理器&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Shift+Alt+T&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;将键盘焦点设置在谷歌浏览器工具栏上。 使用键盘上的向右和向左箭头，导航至工具栏的不同区域。&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3 style="font-size: 1.05em; color: rgb(49, 49, 49); "&gt;网页快捷方式&lt;/h3&gt;&lt;table border="1" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+P&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;打印当前页&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;F5&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;重新加载当前页&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+F5&lt;/strong&gt; 或 &lt;strong&gt;Shift+F5&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;重新加载当前页，但忽略缓存内容&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;按住&lt;strong&gt; Alt&lt;/strong&gt; 键，然后点击链接&lt;/td&gt;&lt;td&gt;下载链接&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+F&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;打开"在网页上查找"框&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+G&lt;/strong&gt; 或 &lt;strong&gt;F3&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;查找与您在"在网页上查找"框中输入的内容相匹配的下一个匹配项&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+Shift+G&lt;/strong&gt; 或&lt;strong&gt;Shift+F3&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;查找与您在"在网页上查找"框中输入的内容相匹配的上一个匹配项&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+U&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;查看源代码&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;将链接拖动到书签栏&lt;/td&gt;&lt;td&gt;将链接加入书签&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+D&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;将当前网页加入书签&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl++&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;放大文字&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+-&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;缩小文字&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ctrl+0&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;还原到正常文字大小&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3 style="font-size: 1.05em; color: rgb(49, 49, 49); "&gt;文字快捷方式&lt;/h3&gt;&lt;table border="1" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;突出显示内容，然后按 &lt;strong&gt;Ctrl+C&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;将内容复制到剪贴板&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;将光标置于文字字段中，然后按 &lt;strong&gt;Ctrl+V&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;从剪贴板粘贴当前内容&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;将光标置于文字字段中，然后按 &lt;strong&gt;Ctrl+Shift+V&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;从剪贴板粘贴当前内容的纯文字部分&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;突出显示文字字段的内容，然后按 &lt;strong&gt;Ctrl+X&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;删除内容&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-8272021755636007193?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/8272021755636007193/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=8272021755636007193' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8272021755636007193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8272021755636007193'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/09/chrome-hotkey.html' title='Chrome hotkey'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-3744897882097840157</id><published>2008-09-03T18:28:00.003+08:00</published><updated>2008-09-03T18:40:04.946+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>chrome -- Google Browser</title><content type='html'>Goolge 的浏览器 chrome 今天发布了，早上看到消息就开始安装使用，现在就用它来登录 blogger 涂鸦了。Google 出品，必属精品，呵呵。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;总体感觉是，相对于以前用过的其它浏览器，速度是异常的快，界面非常简洁，快捷键大部分和 Firefox 相同，对我来说也容易上手。也有点不太满意的地方：书签功能没有 Firefox 的好用，特别是没有网络书签同步，似乎对自动跳转的支持有问题，中文字体显示不好看，内存和CPU占用偏大。还有个非常高效的问题，用 Firefox 可以正常播放的 Youtube 在线视频竟然在 chrome 中提示“We're sorry, this video is no longer available”，太汗了。&lt;/div&gt;&lt;div&gt;对这个测试版还是比较满意的，希望正式发布版有更好的表现，也希望 for GNU/Linux 的版本尽早出来。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-3744897882097840157?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/3744897882097840157/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=3744897882097840157' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3744897882097840157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3744897882097840157'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/09/chrome-google-browser.html' title='chrome -- Google Browser'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-6752282487624438571</id><published>2008-09-01T10:19:00.004+08:00</published><updated>2008-09-01T10:32:41.177+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Asymptote'/><title type='text'>Asmyptote study 6</title><content type='html'>在 Asymptote 里没有找到 buildin 计算角平分线函数，自己写了一个，也算是第一个自己的 Asymptote 函数了。另外学到了markangle 的用法，不过它不能画直角符号。&lt;br /&gt;&lt;br /&gt;三角函数计算不需要 import math; 看来 Asymptote 的计算功能还是挺强的。&lt;br /&gt;&lt;pre&gt;&lt;span style="color:#ffff00;"&gt; 1 &lt;/span&gt;&lt;span style="color:#ff80ff;"&gt;import&lt;/span&gt; markers;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt; 2 &lt;/span&gt;size(&lt;span style="color:#ffa0a0;"&gt;4&lt;/span&gt;cm, &lt;span style="color:#ffa0a0;"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color:#ffff00;"&gt; 3 &lt;/span&gt;currentpen = linewidth(bp);&lt;br /&gt;&lt;span style="color:#ffff00;"&gt; 4 &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt; 5 &lt;/span&gt;&lt;span style="color:#80a0ff;"&gt;//------- define function -------&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt; 6 &lt;/span&gt;&lt;span style="color:#80a0ff;"&gt;// 返回与 角aob 平行的单位向量&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt; 7 &lt;/span&gt;&lt;span style="color:#60ff60;"&gt;&lt;b&gt;pair&lt;/b&gt;&lt;/span&gt; avg_angle(&lt;span style="color:#60ff60;"&gt;&lt;b&gt;pair&lt;/b&gt;&lt;/span&gt; a, &lt;span style="color:#60ff60;"&gt;&lt;b&gt;pair&lt;/b&gt;&lt;/span&gt; o, &lt;span style="color:#60ff60;"&gt;&lt;b&gt;pair&lt;/b&gt;&lt;/span&gt; b) {&lt;br /&gt;&lt;span style="color:#ffff00;"&gt; 8 &lt;/span&gt;    &lt;span style="color:#60ff60;"&gt;&lt;b&gt;pair&lt;/b&gt;&lt;/span&gt; m=a-o, n=b-o;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt; 9 &lt;/span&gt;    &lt;span style="color:#60ff60;"&gt;&lt;b&gt;real&lt;/b&gt;&lt;/span&gt; m_agl = m.y==&lt;span style="color:#ffa0a0;"&gt;0&lt;/span&gt; ? &lt;span style="color:#ffa0a0;"&gt;0&lt;/span&gt; : atan(m.y/m.x);&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;10 &lt;/span&gt;    &lt;span style="color:#60ff60;"&gt;&lt;b&gt;real&lt;/b&gt;&lt;/span&gt; n_agl = n.y==&lt;span style="color:#ffa0a0;"&gt;0&lt;/span&gt; ? &lt;span style="color:#ffa0a0;"&gt;0&lt;/span&gt; : atan(n.y/n.x);&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;11 &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;12 &lt;/span&gt;    &lt;span style="color:#60ff60;"&gt;&lt;b&gt;real&lt;/b&gt;&lt;/span&gt; agl = (m_agl + n_agl) / &lt;span style="color:#ffa0a0;"&gt;2&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;13 &lt;/span&gt;    &lt;span style="color:#60ff60;"&gt;&lt;b&gt;pair&lt;/b&gt;&lt;/span&gt; avg_unit = (cos(agl), sin(agl));&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;14 &lt;/span&gt;    &lt;span style="color:#ffff60;"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; avg_unit;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;15 &lt;/span&gt;}&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;16 &lt;/span&gt;&lt;span style="color:#80a0ff;"&gt;//-------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;17 &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;18 &lt;/span&gt;&lt;span style="color:#60ff60;"&gt;&lt;b&gt;pair&lt;/b&gt;&lt;/span&gt; A=(&lt;span style="color:#ffa0a0;"&gt;20&lt;/span&gt;,&lt;span style="color:#ffa0a0;"&gt;25&lt;/span&gt;), B=(&lt;span style="color:#ffa0a0;"&gt;100&lt;/span&gt;,&lt;span style="color:#ffa0a0;"&gt;5&lt;/span&gt;), C=(&lt;span style="color:#ffa0a0;"&gt;80&lt;/span&gt;,&lt;span style="color:#ffa0a0;"&gt;106&lt;/span&gt;); &lt;span style="color:#80a0ff;"&gt;// 随意定义的角&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;19 &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;20 &lt;/span&gt;draw(B--A--C);&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;21 &lt;/span&gt;draw(A--(&lt;span style="color:#ffa0a0;"&gt;60&lt;/span&gt;*avg_angle(B, A, C)+A), currentpen+red+dashed);&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;22 &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;23 &lt;/span&gt;&lt;span style="color:#80a0ff;"&gt;//----- label &amp;amp; dot -------------&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6BrgcXU4a98/SLtUIufVdzI/AAAAAAAABGk/BVcR9Z9RsGc/s1600-h/asymptote6.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_6BrgcXU4a98/SLtUIufVdzI/AAAAAAAABGk/BVcR9Z9RsGc/s400/asymptote6.png" alt="" id="BLOGGER_PHOTO_ID_5240875100270851890" border="0" /&gt;&lt;/a&gt;&lt;span style="color:#ffff00;"&gt;24 &lt;/span&gt;label(&lt;span style="color:#ffa0a0;"&gt;"A"&lt;/span&gt;, A, SW);&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;25 &lt;/span&gt;label(&lt;span style="color:#ffa0a0;"&gt;"B"&lt;/span&gt;, B, N);&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;26 &lt;/span&gt;label(&lt;span style="color:#ffa0a0;"&gt;"C"&lt;/span&gt;, C, S);&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;27 &lt;/span&gt;dot(A, linewidth(&lt;span style="color:#ffa0a0;"&gt;3&lt;/span&gt;bp)+red);&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;28 &lt;/span&gt;dot(B, linewidth(&lt;span style="color:#ffa0a0;"&gt;3&lt;/span&gt;bp)+red);&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;29 &lt;/span&gt;dot(C, linewidth(&lt;span style="color:#ffa0a0;"&gt;3&lt;/span&gt;bp)+red);&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;30 &lt;/span&gt;&lt;span style="color:#80a0ff;"&gt;//-------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;31 &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;32 &lt;/span&gt;&lt;span style="color:#80a0ff;"&gt;//--------- markers ------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;33 &lt;/span&gt;markangle(B,A,C);&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;34 &lt;/span&gt;&lt;span style="color:#80a0ff;"&gt;/*&lt;/span&gt;&lt;span style="color:#80a0ff;"&gt; import markers;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;35 &lt;/span&gt;&lt;span style="color:#80a0ff;"&gt;   void markangle(picture pic=currentpicture, Label L="",&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;36 &lt;/span&gt;&lt;span style="color:#80a0ff;"&gt;       int n=1, real radius=0, real space=0,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;37 &lt;/span&gt;&lt;span style="color:#80a0ff;"&gt;       pair A, pair O, pair B, arrowbar arrow=None,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;38 &lt;/span&gt;&lt;span style="color:#80a0ff;"&gt;       pen p=currentpen, margin margin=NoMargin,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;39 &lt;/span&gt;&lt;span style="color:#80a0ff;"&gt;       marker marker=nomarker);&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffff00;"&gt;40 &lt;/span&gt;&lt;span style="color:#80a0ff;"&gt; */&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-6752282487624438571?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/6752282487624438571/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=6752282487624438571' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6752282487624438571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6752282487624438571'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/09/asmyptote-study-6.html' title='Asmyptote study 6'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6BrgcXU4a98/SLtUIufVdzI/AAAAAAAABGk/BVcR9Z9RsGc/s72-c/asymptote6.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-1466130904771700987</id><published>2008-08-25T12:41:00.003+08:00</published><updated>2008-08-25T12:48:37.738+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Asymptote'/><title type='text'>Asmyptote study 5</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6BrgcXU4a98/SLI5Yyqv6vI/AAAAAAAABEs/Ni6r9goTrdI/s1600-h/asymptote5.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_6BrgcXU4a98/SLI5Yyqv6vI/AAAAAAAABEs/Ni6r9goTrdI/s400/asymptote5.png" alt="" id="BLOGGER_PHOTO_ID_5238312414666025714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(205, 0, 0);"&gt; 1 &lt;/span&gt;&lt;span style="color: rgb(205, 0, 205);"&gt;import&lt;/span&gt; graph;&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt; 2 &lt;/span&gt;size(&lt;span style="color: rgb(192, 0, 88);"&gt;5&lt;/span&gt;cm, &lt;span style="color: rgb(192, 0, 88);"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt; 3 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt; 4 &lt;/span&gt;currentpen = linewidth(&lt;span style="color: rgb(192, 0, 88);"&gt;.8&lt;/span&gt;bp);&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt; 5 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt; 6 &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);"&gt;&lt;b&gt;real&lt;/b&gt;&lt;/span&gt; f(&lt;span style="color: rgb(46, 139, 87);"&gt;&lt;b&gt;real&lt;/b&gt;&lt;/span&gt; a) { &lt;span style="color: rgb(128, 64, 64);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; a^&lt;span style="color: rgb(192, 0, 88);"&gt;2&lt;/span&gt;; }&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt; 7 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt; 8 &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);"&gt;&lt;b&gt;pair&lt;/b&gt;&lt;/span&gt;[] pp = { (-&lt;span style="color: rgb(192, 0, 88);"&gt;1&lt;/span&gt;,f(-&lt;span style="color: rgb(192, 0, 88);"&gt;1&lt;/span&gt;)), (&lt;span style="color: rgb(192, 0, 88);"&gt;0&lt;/span&gt;,f(&lt;span style="color: rgb(192, 0, 88);"&gt;0&lt;/span&gt;)), (&lt;span style="color: rgb(192, 0, 88);"&gt;1&lt;/span&gt;,f(&lt;span style="color: rgb(192, 0, 88);"&gt;1&lt;/span&gt;))};&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt; 9 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt;10 &lt;/span&gt;&lt;span style="color: rgb(64, 96, 144);"&gt;// dotfactor = 7; // 定义 dot 大小，只在未定义 currentpen 时有效&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt;11 &lt;/span&gt;dot(pp[&lt;span style="color: rgb(192, 0, 88);"&gt;1&lt;/span&gt;], UnFill); &lt;span style="color: rgb(64, 96, 144);"&gt;// 标记点 pp[1]，空心点&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt;12 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt;13 &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);"&gt;&lt;b&gt;path&lt;/b&gt;&lt;/span&gt; g = graph(pp, &lt;span style="color: rgb(128, 64, 64);"&gt;&lt;b&gt;operator&lt;/b&gt;&lt;/span&gt; ..);  &lt;span style="color: rgb(64, 96, 144);"&gt;// 将 pair[] pp 用 .. 连接&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt;14 &lt;/span&gt;draw(g);&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt;15 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt;16 &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);"&gt;&lt;b&gt;pair&lt;/b&gt;&lt;/span&gt; p=dir(g, &lt;span style="color: rgb(192, 0, 88);"&gt;1&lt;/span&gt;);  &lt;span style="color: rgb(64, 96, 144);"&gt;// path g 第 1 点(从0计数)处向量&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt;17 &lt;/span&gt;draw(&lt;span style="color: rgb(192, 0, 88);"&gt;"dir(g, 1)"&lt;/span&gt;, pp[&lt;span style="color: rgb(192, 0, 88);"&gt;1&lt;/span&gt;] -- pp[&lt;span style="color: rgb(192, 0, 88);"&gt;1&lt;/span&gt;]+p, red, Arrow); &lt;span style="color: rgb(64, 96, 144);"&gt;// 画出上面的向量&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt;18 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt;19 &lt;/span&gt;arrow(&lt;span style="color: rgb(192, 0, 88);"&gt;"path g"&lt;/span&gt;, pp[&lt;span style="color: rgb(192, 0, 88);"&gt;0&lt;/span&gt;], NE, &lt;span style="color: rgb(192, 0, 88);"&gt;.8&lt;/span&gt;cm, blue);  &lt;span style="color: rgb(64, 96, 144);"&gt;// 指示箭头&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(205, 0, 0);"&gt;20 &lt;/span&gt;arrow(&lt;span style="color: rgb(192, 0, 88);"&gt;"pair p[1]"&lt;/span&gt;, pp[&lt;span style="color: rgb(192, 0, 88);"&gt;1&lt;/span&gt;], N, &lt;span style="color: rgb(192, 0, 88);"&gt;.8&lt;/span&gt;cm, blue);&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-1466130904771700987?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/1466130904771700987/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=1466130904771700987' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1466130904771700987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1466130904771700987'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/08/asmyptote-study-5.html' title='Asmyptote study 5'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6BrgcXU4a98/SLI5Yyqv6vI/AAAAAAAABEs/Ni6r9goTrdI/s72-c/asymptote5.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-6245991146372206333</id><published>2008-08-20T12:11:00.001+08:00</published><updated>2008-08-20T12:17:14.211+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Asymptote'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>show perl rand() with Asymptote</title><content type='html'>&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt; 1 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 164, 27);"&gt;#! /usr/bin/perl&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt; 2 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 164, 27);"&gt;use warnings&lt;/span&gt;;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt; 3 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 164, 27);"&gt;use strict&lt;/span&gt;;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt; 4 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt; 5 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;=comment&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt; 6 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt; 7 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;    用 Asymptote 来观察 perl 中 rand() 函数的随机性。&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt; 8 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;    需要安装配置好 Asymptote&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt; 9 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;10 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;    从观察结果看，还是令人满意的，分布比较均匀&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;11 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;12 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;=cut&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;13 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;14 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 98, 98);"&gt;open&lt;/span&gt;(&lt;span style="color: rgb(126, 250, 255);"&gt;TT&lt;/span&gt;, &lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;'&lt;/span&gt;&lt;/span&gt;, &lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;__t.asy&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;'&lt;/span&gt;&lt;/span&gt;) &lt;span style="color: rgb(255, 98, 98);"&gt;or&lt;/span&gt; &lt;span style="color: rgb(255, 98, 98);"&gt;die&lt;/span&gt; &lt;span style="color: rgb(126, 250, 255);"&gt;$!&lt;/span&gt;;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;15 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 98, 98);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(126, 250, 255);"&gt;TT&lt;/span&gt; &lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;size(10cm, 0);&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;'&lt;/span&gt;&lt;/span&gt;, &lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(70, 110, 255);"&gt;\n\n&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;"&lt;/span&gt;&lt;/span&gt;;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;16 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;17 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 98, 98);"&gt;for&lt;/span&gt; (&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;1&lt;/span&gt;&lt;/span&gt; .. &lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;1000&lt;/span&gt;&lt;/span&gt;) {&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;18 &lt;/span&gt;&lt;/span&gt;    &lt;span style="color: rgb(255, 98, 98);"&gt;my&lt;/span&gt; &lt;span style="color: rgb(126, 250, 255);"&gt;$x&lt;/span&gt; = &lt;span style="color: rgb(255, 98, 98);"&gt;sprintf&lt;/span&gt;(&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;%.2f&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;"&lt;/span&gt;&lt;/span&gt;, &lt;span style="color: rgb(255, 98, 98);"&gt;rand&lt;/span&gt;(&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;200&lt;/span&gt;&lt;/span&gt;));&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;19 &lt;/span&gt;&lt;/span&gt;    &lt;span style="color: rgb(255, 98, 98);"&gt;my&lt;/span&gt; &lt;span style="color: rgb(126, 250, 255);"&gt;$y&lt;/span&gt; = &lt;span style="color: rgb(255, 98, 98);"&gt;sprintf&lt;/span&gt;(&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;%.2f&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;"&lt;/span&gt;&lt;/span&gt;, &lt;span style="color: rgb(255, 98, 98);"&gt;rand&lt;/span&gt;(&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;200&lt;/span&gt;&lt;/span&gt;));&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;20 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;21 &lt;/span&gt;&lt;/span&gt;    &lt;span style="color: rgb(255, 98, 98);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(126, 250, 255);"&gt;TT&lt;/span&gt; &lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;dot((&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(126, 250, 255);"&gt;$x&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(126, 250, 255);"&gt;$y&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;));&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(70, 110, 255);"&gt;\n&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;"&lt;/span&gt;&lt;/span&gt;;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;22 &lt;/span&gt;&lt;/span&gt;}&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;23 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;24 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 98, 98);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(126, 250, 255);"&gt;TT&lt;/span&gt; &lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;draw(box((0,0), (200,200)));&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;'&lt;/span&gt;&lt;/span&gt;, &lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(70, 110, 255);"&gt;\n&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;"&lt;/span&gt;&lt;/span&gt;;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;25 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 98, 98);"&gt;close&lt;/span&gt; &lt;span style="color: rgb(126, 250, 255);"&gt;TT&lt;/span&gt;;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;26 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(55, 55, 55);"&gt;&lt;span style="color: rgb(184, 184, 184);"&gt;27 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 98, 98);"&gt;system&lt;/span&gt;(&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;asy __t.asy&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: rgb(20, 20, 20);"&gt;&lt;span style="color: rgb(218, 197, 255);"&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-6245991146372206333?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/6245991146372206333/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=6245991146372206333' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6245991146372206333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6245991146372206333'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/08/show-perl-rand-with-asymptote.html' title='show perl rand() with Asymptote'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-8837381351871227548</id><published>2008-08-10T13:37:00.003+08:00</published><updated>2008-08-10T13:49:50.177+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Asymptote'/><title type='text'>Asmyptote study 4 - midpoint</title><content type='html'>&lt;pre&gt;三种计算线段中点的方法，和另一种计算 pair 的方法。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 1 &lt;/span&gt;size(&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;4&lt;/span&gt;&lt;/span&gt;cm,&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;0&lt;/span&gt;&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 2 &lt;/span&gt;currentpen=linewidth(&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;1&lt;/span&gt;&lt;/span&gt;bp);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 3 &lt;/span&gt;&lt;span style="color: rgb(96, 255, 96);"&gt;&lt;b&gt;pen&lt;/b&gt;&lt;/span&gt; dpen=linewidth(&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;3&lt;/span&gt;&lt;/span&gt;bp)+red;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6BrgcXU4a98/SJ6BcK0k8II/AAAAAAAABD8/O9eugmRGn4w/s1600-h/midpoint.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_6BrgcXU4a98/SJ6BcK0k8II/AAAAAAAABD8/O9eugmRGn4w/s320/midpoint.png" alt="" id="BLOGGER_PHOTO_ID_5232762137992294530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 4 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 5 &lt;/span&gt;&lt;span style="color: rgb(96, 255, 96);"&gt;&lt;b&gt;pair&lt;/b&gt;&lt;/span&gt; A, B, C;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 6 &lt;/span&gt;A=(&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;0&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;0&lt;/span&gt;&lt;/span&gt;); B=(&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;1&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;0&lt;/span&gt;&lt;/span&gt;); C=(&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;0&lt;/span&gt;&lt;/span&gt;,&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;1&lt;/span&gt;&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 7 &lt;/span&gt;draw(A--B--C--&lt;span style="color: rgb(255, 255, 96);"&gt;&lt;b&gt;cycle&lt;/b&gt;&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 8 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 9 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;// 第一种&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;10 &lt;/span&gt;draw (midpoint(A--B) -- C);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;11 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;// 第二种&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;12 &lt;/span&gt;draw (B+&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;0.5&lt;/span&gt;&lt;/span&gt;*(C-B) -- A);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;13 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;// 第三种&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;14 &lt;/span&gt;draw (interp(A,C,&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;0.5&lt;/span&gt;&lt;/span&gt;) -- B);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;15 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;16 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;// 另一种计算 pair 的方法&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;17 &lt;/span&gt;dot(A/&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;3&lt;/span&gt;&lt;/span&gt; + B/&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;3&lt;/span&gt;&lt;/span&gt; + C/&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;3&lt;/span&gt;&lt;/span&gt;, dpen);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;18 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;19 &lt;/span&gt;dot((A--B--C), dpen);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;20 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;21 &lt;/span&gt;label(&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;"A"&lt;/span&gt;&lt;/span&gt;, A, SW);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;22 &lt;/span&gt;label(&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;"B"&lt;/span&gt;&lt;/span&gt;, B, SE);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;23 &lt;/span&gt;label(&lt;span style="background-color: rgb(13, 13, 13);"&gt;&lt;span style="color: rgb(255, 160, 160);"&gt;"C"&lt;/span&gt;&lt;/span&gt;, C, E);&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-8837381351871227548?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/8837381351871227548/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=8837381351871227548' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8837381351871227548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8837381351871227548'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/08/asmyptote-study-4-midpoint.html' title='Asmyptote study 4 - midpoint'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6BrgcXU4a98/SJ6BcK0k8II/AAAAAAAABD8/O9eugmRGn4w/s72-c/midpoint.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-8725936432278001663</id><published>2008-08-05T08:57:00.005+08:00</published><updated>2008-08-05T11:19:23.129+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Asymptote'/><title type='text'>Asmyptote study 3</title><content type='html'>Day day up ^^&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 1 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 2 &lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;real&lt;/span&gt; r=&lt;span style="color: rgb(255, 255, 255);"&gt;100&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 3 &lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;real&lt;/span&gt; x=&lt;span style="color: rgb(255, 255, 255);"&gt;65&lt;/span&gt;*pi/&lt;span style="color: rgb(255, 255, 255);"&gt;180&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 4 &lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;pair&lt;/span&gt; O=(&lt;span style="color: rgb(255, 255, 255);"&gt;0&lt;/span&gt;,&lt;span style="color: rgb(255, 255, 255);"&gt;0&lt;/span&gt;), D=(&lt;span style="color: rgb(255, 255, 255);"&gt;250&lt;/span&gt;,&lt;span style="color: rgb(255, 255, 255);"&gt;0&lt;/span&gt;), B=(r,&lt;span style="color: rgb(255, 255, 255);"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 5 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 6 &lt;/span&gt;&lt;span style="color: rgb(255, 165, 0);"&gt;// 三角函数的参数是弧度值&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 7 &lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;pair&lt;/span&gt; A=(r*cos(x), r*sin(x)), C=(r*cos(x), &lt;span style="color: rgb(255, 255, 255);"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 8 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 9 &lt;/span&gt;currentpen = linewidth(&lt;span style="color: rgb(255, 255, 255);"&gt;1&lt;/span&gt;bp)+red;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;10 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;11 &lt;/span&gt;draw(circle(O,r), linewidth(&lt;span style="color: rgb(255, 255, 255);"&gt;1.5&lt;/span&gt;bp)+red);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;12 &lt;/span&gt;draw(O--A--D--&lt;span style="color: rgb(255, 255, 0);"&gt;cycle&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;13 &lt;/span&gt;draw(A--C--B--&lt;span style="color: rgb(255, 255, 0);"&gt;cycle&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;14 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;15 &lt;/span&gt;&lt;span style="color: rgb(255, 165, 0);"&gt;// 画圆弧的函数 arc() 的参数是 度数值&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;16 &lt;/span&gt;draw(arc(O,&lt;span style="color: rgb(255, 255, 255);"&gt;10&lt;/span&gt;,&lt;span style="color: rgb(255, 255, 255);"&gt;0&lt;/span&gt;,x*&lt;span style="color: rgb(255, 255, 255);"&gt;180&lt;/span&gt;/pi));&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;17 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;18 &lt;/span&gt;label(&lt;span style="color: rgb(255, 255, 255);"&gt;"$x$"&lt;/span&gt;, arc(O,&lt;span style="color: rgb(255, 255, 255);"&gt;10&lt;/span&gt;,&lt;span style="color: rgb(255, 255, 255);"&gt;0&lt;/span&gt;,x*&lt;span style="color: rgb(255, 255, 255);"&gt;180&lt;/span&gt;/pi));&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;19 &lt;/span&gt;label(&lt;span style="color: rgb(255, 255, 255);"&gt;"1"&lt;/span&gt;, A--O, NW);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;20 &lt;/span&gt;label(&lt;span style="color: rgb(255, 255, 255);"&gt;"C"&lt;/span&gt;, C, S);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;21 &lt;/span&gt;label(&lt;span style="color: rgb(255, 255, 255);"&gt;"B"&lt;/span&gt;, B, SW);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;22 &lt;/span&gt;label(&lt;span style="color: rgb(255, 255, 255);"&gt;"D"&lt;/span&gt;, D, S);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;23 &lt;/span&gt;label(&lt;span style="color: rgb(255, 255, 255);"&gt;"A"&lt;/span&gt;, A, NE);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;24 &lt;/span&gt;label(&lt;span style="color: rgb(255, 255, 255);"&gt;"O"&lt;/span&gt;, O, SW);&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_6BrgcXU4a98/SJfGOWHGGkI/AAAAAAAABDs/9OhyEEeBmws/s1600-h/cir.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer;" src="http://bp0.blogger.com/_6BrgcXU4a98/SJfGOWHGGkI/AAAAAAAABDs/9OhyEEeBmws/s320/cir.png" alt="" id="BLOGGER_PHOTO_ID_5230867441969928770" border="0" /&gt;&lt;/a&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-8725936432278001663?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/8725936432278001663/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=8725936432278001663' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8725936432278001663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8725936432278001663'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/08/asmyptote-study-3.html' title='Asmyptote study 3'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_6BrgcXU4a98/SJfGOWHGGkI/AAAAAAAABDs/9OhyEEeBmws/s72-c/cir.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-7977413728643276190</id><published>2008-08-01T18:49:00.001+08:00</published><updated>2008-08-01T18:51:07.214+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>set hotkey in GNU/Linux</title><content type='html'>可以指定功能键来实现的, 可以这样试一试&lt;br /&gt;#as root&lt;br /&gt;&lt;br /&gt;1. 复制键盘转换表,将功能键的定义复制一份&lt;br /&gt;cd /lib/kbd/keymaps/i386&lt;br /&gt;dumpkeys --funcs-only&gt;keyfile&lt;br /&gt;&lt;br /&gt;2. 编辑此文件&lt;br /&gt;vi keyfile&lt;br /&gt;在vi里,设置要定义的功能键的函数,如:&lt;br /&gt;...&lt;br /&gt;string F5 = "/sbin/shutdown -h now\012"  #\012是必须的&lt;br /&gt;...&lt;br /&gt;#可指定多个功能键&lt;br /&gt;&lt;br /&gt;3. 加载这个键盘影射文件keyfile&lt;br /&gt;loadkeys keyfile&lt;br /&gt;&lt;br /&gt;4. 为了每次启动就可以使用这些功能键,可以在/etc/rc.local中加入:&lt;br /&gt;loadkeys /lib/kdb/mapkeys/i386/keyfile&lt;br /&gt;&lt;br /&gt;测试环境: redhat 9 GNU/Linux , 此方法使用文本方式&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-7977413728643276190?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/7977413728643276190/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=7977413728643276190' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7977413728643276190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7977413728643276190'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/08/set-hotkey-in-gnulinux.html' title='set hotkey in GNU/Linux'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-4949504204104671879</id><published>2008-07-31T18:23:00.003+08:00</published><updated>2008-08-01T18:54:56.972+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UTF-8'/><category scheme='http://www.blogger.com/atom/ns#' term='Vim'/><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><category scheme='http://www.blogger.com/atom/ns#' term='TeX'/><title type='text'>UTF-8</title><content type='html'>昨天装 Fedora 想起了文字编码问题，为了一劳永逸，决定从现在开始改用 UTF-8 编码。&lt;br /&gt;&lt;br /&gt;一切都还顺利，刚发现 LaTeX 编译出来的 dvi 文件中文部分是乱码，原来是导言区的编码写错了，改成 \begin{CJK}{UTF8}{fs} 就 OK 。&lt;br /&gt;现在把 LaTeX 模板都改成了 UTF8 编码。 vim 的配置文件增加了 UTF-8 编码设置，把 vim 消息改成了英文的，右键弹出菜单是乱码，不过基本上不用右键菜单。&lt;br /&gt;&lt;br /&gt;google sites 和 blogspot 默认的就是 UTF-8&lt;br /&gt;&lt;br /&gt;（2008年8月1日17:52:28)UTF-8 的使用有点小障碍， windows 默认编码都是国标码，cmd 窗口都是 gb 编码的，这样在 utf-8 编码文件中用 sort 工具的排序输出就可能有乱码。还有就是写程序时如果用 utf-8 的话，在标准输出上显示的内容就是乱码。暂时在 vim 中做了设置，编辑 pl 和 cpp 文件时还用 cp936 编码。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-4949504204104671879?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/4949504204104671879/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=4949504204104671879' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4949504204104671879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4949504204104671879'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/07/utf-8.html' title='UTF-8'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-1802017579372716467</id><published>2008-07-25T14:37:00.001+08:00</published><updated>2008-07-25T14:37:38.436+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vim'/><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>What is Vim</title><content type='html'>What Is Vim?&lt;br /&gt;&lt;br /&gt;Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems.&lt;br /&gt;&lt;br /&gt;Vim is often called a "programmer's editor," and so useful for programming that many consider it an entire IDE. It's not just for programmers, though. Vim is perfect for all kinds of text editing, from composing email to editing configuration files.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What Vim Is Not?&lt;br /&gt;&lt;br /&gt;Vim isn't an editor designed to hold its users' hands. It is a tool, the use of which must be learned.&lt;br /&gt;&lt;br /&gt;Vim isn't a word processor. Although it can display text with various forms of highlighting and formatting, it isn't there to provide WYSIWYG editing of typeset documents. (It is great for editing TeX, though.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-1802017579372716467?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/1802017579372716467/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=1802017579372716467' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1802017579372716467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1802017579372716467'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/07/what-is-vim.html' title='What is Vim'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-7850524411047903456</id><published>2008-07-18T20:50:00.002+08:00</published><updated>2008-07-24T22:48:04.019+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>My google site and ...</title><content type='html'>现在改用 google sites 做主页了，和 box.net 配合用可以挂10M的文件 ^^&lt;br /&gt;&lt;a href="http://sites.google.com/site/redspid"&gt;http://sites.google.com/site/redspid&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;今天在帮管敬做远程教育计算机课程的作业，做得一头恼火，全是 ms word、excel 和 windows 操作这些无聊的垃圾题目。中国的计算机教育简直是太畸形了，恐怕100年内能抓住 U.S.A. 的尾巴也只能是痴人说梦了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-7850524411047903456?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/7850524411047903456/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=7850524411047903456' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7850524411047903456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7850524411047903456'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/07/my-google-site-and.html' title='My google site and ...'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-6247837595485669316</id><published>2008-07-18T00:31:00.005+08:00</published><updated>2008-07-24T14:32:25.824+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vim'/><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><category scheme='http://www.blogger.com/atom/ns#' term='TeX'/><title type='text'>make LaTeX template</title><content type='html'>今天别人问我使用 word 制作文档模板的问题，自己还从没想过用这个功能呐。突然想起利用 latex-suite 也可以很容易地制作 LaTeX 模板，在需要修改的地方插入 &lt;+待修改的内容+&gt; 就 OK 了。 HOHO~ 爽啊&lt;br /&gt;&lt;br /&gt;(2008年7月18日1:26:58)看了一下 latex-suite 文档，原来里面已经定义了模板存放目录($VIM/ftplugin/latex-suite/templates/)和读取模板的命令 :TTemplate&lt;br /&gt;&lt;br /&gt;(2008年7月22日8:41:53)仔细翻了下 Vim 手册，用 autocmd 解决了 latex-suite 导入模板时自动缩进导致的格式错乱问题。&lt;br /&gt;&lt;br /&gt;(2008年7月24日14:31:49)模板导入还是有问题。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-6247837595485669316?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/6247837595485669316/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=6247837595485669316' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6247837595485669316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6247837595485669316'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/07/make-latex-template.html' title='make LaTeX template'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-3615766283476376130</id><published>2008-07-15T16:26:00.001+08:00</published><updated>2008-07-15T16:30:59.712+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Asymptote'/><title type='text'>Asmyptote study 2</title><content type='html'>&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 1 &lt;/span&gt;size(&lt;span style="color: rgb(255, 0, 255);"&gt;5&lt;/span&gt;cm,&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 2 &lt;/span&gt;&lt;span style="color: rgb(255, 128, 255);"&gt;import&lt;/span&gt; graph;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 3 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 4 &lt;/span&gt;draw((-&lt;span style="color: rgb(255, 0, 255);"&gt;1&lt;/span&gt;,-&lt;span style="color: rgb(255, 0, 255);"&gt;1&lt;/span&gt;)--(&lt;span style="color: rgb(255, 0, 255);"&gt;1&lt;/span&gt;,&lt;span style="color: rgb(255, 0, 255);"&gt;1&lt;/span&gt;));&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 5 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 6 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;// 画带箭头的 x 轴；以 0.6 为单位画刻度，不显示刻度值&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 7 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;// 标记 "x" 字样&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 8 &lt;/span&gt;xaxis(&lt;span style="color: rgb(255, 0, 255);"&gt;"$x$"&lt;/span&gt;, Ticks(&lt;span style="color: rgb(255, 0, 255);"&gt;"%"&lt;/span&gt;,&lt;span style="color: rgb(255, 0, 255);"&gt;0.6&lt;/span&gt;), Arrow);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 9 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;10 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;// 画带箭头的 x 轴，标记 "y" 字样&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;11 &lt;/span&gt;yaxis(&lt;span style="color: rgb(255, 0, 255);"&gt;"$y$"&lt;/span&gt;, Arrow);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;12 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;13 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;// 在 x 轴 0.6 位置标记 "a"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;14 &lt;/span&gt;labelx(&lt;span style="color: rgb(255, 0, 255);"&gt;"a"&lt;/span&gt;,&lt;span style="color: rgb(255, 0, 255);"&gt;0.6&lt;/span&gt;, S);&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-3615766283476376130?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/3615766283476376130/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=3615766283476376130' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3615766283476376130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3615766283476376130'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/07/asmyptote-study-2.html' title='Asmyptote study 2'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-3577125937489101423</id><published>2008-07-07T09:47:00.004+08:00</published><updated>2008-07-07T10:08:38.627+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Asymptote'/><category scheme='http://www.blogger.com/atom/ns#' term='MetaPost'/><title type='text'>Asmyptote study 1</title><content type='html'>MetaPost 看得有点晕，而且搞定在 GSview 中预览加了 label 的图形还得配置参数。还好，在搜索解决方案的过程中发现了 Asymptote，嘿嘿，模仿 MetaPost 的原理和 C++ 语法，这个我喜欢。用 C++ 的语法绘出和 MetaPost 一样酷的图形，想想都能得意地笑出来。&lt;br /&gt;&lt;br /&gt;不过似乎 Asymptote 的中文资料比较少，只有 bbs.ctex.org 上一位网友翻译了一部分文档，而且还没译完，看来还得啃英文的了。&lt;br /&gt;&lt;br /&gt;下面是我研究了2个小时的部分成果：&lt;pre&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 1 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;//导入 math 模块，里面包含下面要用到的 extension 函数&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 2 &lt;/span&gt;&lt;span style="color: rgb(255, 128, 255);"&gt;import&lt;/span&gt; math;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 3 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 4 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;//将 cm 长度缩到 50%&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 5 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;//real cm = 0.5cm;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 6 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 7 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;//线条宽度 1bp(我理解相当于 MetaPost 里的 pen 为直径 1bp 的圆点)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 8 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;//灰度 50%&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt; 9 &lt;/span&gt;&lt;span style="color: rgb(96, 255, 96);"&gt;&lt;b&gt;pen&lt;/b&gt;&lt;/span&gt; grid = linewidth(&lt;span style="color: rgb(255, 0, 255);"&gt;1&lt;/span&gt;bp) + gray(&lt;span style="color: rgb(255, 0, 255);"&gt;0.5&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;10 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;11 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;//画出坐标。将 Arrow 换成 Arrows 则画出双箭头&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;12 &lt;/span&gt;draw((&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;,&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;)--(&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;,&lt;span style="color: rgb(255, 0, 255);"&gt;7.5&lt;/span&gt;cm), grid, Arrow);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;13 &lt;/span&gt;draw((&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;,&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;)--(&lt;span style="color: rgb(255, 0, 255);"&gt;7.5&lt;/span&gt;cm,&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;), grid, Arrow);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;14 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;15 &lt;/span&gt;&lt;span style="color: rgb(96, 255, 96);"&gt;&lt;b&gt;pair&lt;/b&gt;&lt;/span&gt; a=(&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;,&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;), b=(&lt;span style="color: rgb(255, 0, 255);"&gt;5&lt;/span&gt;cm,&lt;span style="color: rgb(255, 0, 255);"&gt;5&lt;/span&gt;cm), c=(&lt;span style="color: rgb(255, 0, 255);"&gt;5&lt;/span&gt;cm,&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;), d=(&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;,&lt;span style="color: rgb(255, 0, 255);"&gt;5&lt;/span&gt;cm);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;16 &lt;/span&gt;draw(a--b);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;17 &lt;/span&gt;draw(c--d);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;18 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;19 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;//计算 a--b 和 c--d 的交点，要用到 math 模块&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;20 &lt;/span&gt;&lt;span style="color: rgb(96, 255, 96);"&gt;&lt;b&gt;pair&lt;/b&gt;&lt;/span&gt; e = extension(a,b,c,d);&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_6BrgcXU4a98/SHF5ZRSpfBI/AAAAAAAABAU/jmF_2dGPp-c/s1600-h/Nodal.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_6BrgcXU4a98/SHF5ZRSpfBI/AAAAAAAABAU/jmF_2dGPp-c/s320/Nodal.jpg" alt="" id="BLOGGER_PHOTO_ID_5220086918144424978" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;21 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;22 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;//用红色标记出点 c&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;23 &lt;/span&gt;dot(e, red);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;24 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;25 &lt;/span&gt;&lt;span style="color: rgb(128, 160, 255);"&gt;//文字标签&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;26 &lt;/span&gt;label(&lt;span style="color: rgb(255, 0, 255);"&gt;"$x$"&lt;/span&gt;, (&lt;span style="color: rgb(255, 0, 255);"&gt;7.5&lt;/span&gt;cm,&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;), S);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;27 &lt;/span&gt;label(&lt;span style="color: rgb(255, 0, 255);"&gt;"$y$"&lt;/span&gt;, (&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;,&lt;span style="color: rgb(255, 0, 255);"&gt;7.5&lt;/span&gt;cm), W);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;28 &lt;/span&gt;label(&lt;span style="color: rgb(255, 0, 255);"&gt;"$Nodal$"&lt;/span&gt;, e, E);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;29 &lt;/span&gt;label(&lt;span style="color: rgb(255, 0, 255);"&gt;"$A$"&lt;/span&gt;, a, S);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;30 &lt;/span&gt;label(&lt;span style="color: rgb(255, 0, 255);"&gt;"$B$"&lt;/span&gt;, b, E);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;31 &lt;/span&gt;label(&lt;span style="color: rgb(255, 0, 255);"&gt;"$C$"&lt;/span&gt;, c, S);&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;32 &lt;/span&gt;label(&lt;span style="color: rgb(255, 0, 255);"&gt;"$D$"&lt;/span&gt;, d, W);&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-3577125937489101423?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/3577125937489101423/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=3577125937489101423' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3577125937489101423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3577125937489101423'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/07/asmyptote-study-1.html' title='Asmyptote study 1'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_6BrgcXU4a98/SHF5ZRSpfBI/AAAAAAAABAU/jmF_2dGPp-c/s72-c/Nodal.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-4101659045045625859</id><published>2008-07-03T11:32:00.001+08:00</published><updated>2008-07-03T11:35:22.965+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><category scheme='http://www.blogger.com/atom/ns#' term='TeX'/><title type='text'>Knuth said</title><content type='html'>“[T]he TEX research project that I embarked on was driven by two major goals. The first goal was quality: we wanted to produce documents that were not just nice, but actually the best.”&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;“I never intended to have a system that would be universal and used by everybody. I always  wanted to write a system that would be used for just the finest books.”&lt;br /&gt;&lt;br /&gt;“The current version number for TEX is 3.1, and for METAFONT it is 2.7. If corrections are necessary, the next versions of TEX will be 3.14, 3.141, then 3.14159, . . . , converging to the ratio of a circle’s circumference to its diameter; for METAFONT the sequence will be 2.71, 2.718, . . . , converging to the base of natural logarithms. I intend to be fully responsible for all changes to these systems for the rest of my life.”&lt;br /&gt;&lt;div style="text-align: right;"&gt;Donald E. Knuth&lt;br /&gt;Digital Typography (1999)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-4101659045045625859?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/4101659045045625859/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=4101659045045625859' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4101659045045625859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4101659045045625859'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/07/knuth-said.html' title='Knuth said'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-8633905050009300466</id><published>2008-06-22T17:18:00.001+08:00</published><updated>2008-06-22T17:24:22.131+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>in a nutshell</title><content type='html'>Oh yeah，踏破铁鞋无觅处，得来全不费工夫，今天看一个帖子终于弄清楚 "in a nutshell" 的意思了。哎，还是没有好好利用搜索引擎，搜了一下立马就出来了。&lt;br /&gt;&lt;br /&gt;in a nutshell 是一个短语，意思是：To explain in a few words; to be capable of easy solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-8633905050009300466?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/8633905050009300466/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=8633905050009300466' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8633905050009300466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8633905050009300466'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/06/in-nutshell.html' title='in a nutshell'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-8070870221341647053</id><published>2008-06-16T14:13:00.002+08:00</published><updated>2008-06-16T14:16:19.642+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><category scheme='http://www.blogger.com/atom/ns#' term='TeX'/><title type='text'>To new LaTeXer</title><content type='html'>下面是水木 bbs TeX 版上面轰动一时的笔记后面的“跋”，我觉得写得非常好，放到这记一下。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;首先向一路披荆斩棘看到这里的读者表示祝贺，至少在精神上你已经成为一名合格的LaTeXer。从此你生是LaTeX 的人，死是LaTeX 的鬼。Once black, never back。没有坚持到这里的同学自然已经重新投向“邪恶”的MS Word，毕竟那里点个按钮就可以插入图形，点个下拉框就可以选择字体。当然LaTeXer也有简单的出路，就是只使用缺省设置，尽量少用插图；不必理会点阵、矢量，也不必理会Type 1、Type 3、TrueType、OpenType。因为内容高于形式，你把文章的版面、字体搞得再漂亮，它也不会因此成为《红楼梦》；而《红楼梦》即使是手抄本，也依然是不朽的名著。&lt;br /&gt;&lt;br /&gt;包老师曾经以为LaTeX 和Word 的关系就好象是《笑傲江湖》中华山的气宗和剑宗，头十年剑宗进步快，中间十年打个平手，再往后气宗就遥遥领先。至于令狐冲的无招胜有招，风清扬的神龙见首不见尾又是另一重境界，普通人恐怕只能望其颈背。等到费劲九牛二虎之力熬到本文杀青的时候，才发现从前的想法很傻很天真。让我们挥一挥手，不带走一片云，卧薪尝胆忍辱负重，耐心等待XeTeX 和LuaTeX。&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-8070870221341647053?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/8070870221341647053/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=8070870221341647053' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8070870221341647053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8070870221341647053'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/06/to-new-latexer.html' title='To new LaTeXer'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-2281421501902169796</id><published>2008-05-27T18:08:00.003+08:00</published><updated>2008-05-27T18:15:14.309+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>TV-wire</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6BrgcXU4a98/SDvearCPkKI/AAAAAAAAA_E/FTQn7PRGVIQ/s1600-h/DSC03706.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 133px; height: 178px;" src="http://3.bp.blogspot.com/_6BrgcXU4a98/SDvearCPkKI/AAAAAAAAA_E/FTQn7PRGVIQ/s320/DSC03706.JPG" alt="" id="BLOGGER_PHOTO_ID_5204998344166838434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;19 May 找 Changhong 的人来调试了，看来还是视频线的问题，便宜没好货，5元一条的线接分量输入端口颜色就是不行，即使换到 AV 端口有时画面也有波纹。五星电器卖的"秋叶原"分量视频线太不靠谱，竟然要 85元。&lt;br /&gt;&lt;br /&gt;鉴于上次网上淘来的金士顿 2G SD卡质量、价格比较满意，决定再去淘一把。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-2281421501902169796?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/2281421501902169796/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=2281421501902169796' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2281421501902169796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2281421501902169796'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/05/19-may-changhong-5-av-85-2g-sd.html' title='TV-wire'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6BrgcXU4a98/SDvearCPkKI/AAAAAAAAA_E/FTQn7PRGVIQ/s72-c/DSC03706.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-7806045842092562542</id><published>2008-04-29T14:39:00.002+08:00</published><updated>2008-04-29T14:43:04.809+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>Hans Reiser</title><content type='html'>Linux操作系统的ReiserFS文件系统开发者Hans Reiser近日被陪审团裁定有罪，陪审团认为他在2006年残忍枪杀其妻子，但是她的尸体一直没有被发现。&lt;br /&gt;&lt;br /&gt;由Reiser开发的ReiserFS文件系统是一种性能不错的Linux文件系统。它通过一种与众不同的方式--完全平衡树结构来容纳数据，包括文件数 据，文件名以及日志支持，并能在上面继续保持很快的搜索速度和很高的效率。ReiserFS文件系统一直以来被用在高端Unix系统上如，SGI。高性能 文件系统Reiserfs向来都是Linux fans眼中的挚爱。&lt;br /&gt;&lt;br /&gt;目前经过为期6个月的审判和为期3天的陪审团审议，虽然尸体并未找到，但是约有60名证人证实了Reiser和他的妻子不合。另外检察官举证的主要事实是，Reiser谋杀后拆除和丢弃了他的本田CRX的乘客座位，然后对车子进行清洗，在地面上留下了足有一英尺的水迹。&lt;br /&gt;&lt;br /&gt;而Reiser则解释说他只是想清理车子的内部，并且忘了关水龙头。另外，Reiser扬言要删除了他电脑硬盘的所有内容，以发泄对政府没收他所有财产的不满。&lt;br /&gt;&lt;br /&gt;Reiser的妻子Nina最后一次露面是在2006年9月3日，警察在6天后发行了她的面包车，并且找到了失踪的本田车座椅及两本书。警察也发现睡袋上沾满了血迹。目前Reiser将面临判决，罪名一级谋杀罪，可能获得25年的监禁。&lt;br /&gt;&lt;br /&gt;出处： &lt;a href="http://news.mydrivers.com/1/104/104832.htm" target="_blank"&gt;http://news.mydrivers.com/1/104/104832.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;建议给他台电脑在监狱里用，继续完善 ReiserFS  :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-7806045842092562542?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/7806045842092562542/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=7806045842092562542' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7806045842092562542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7806045842092562542'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/hans-reiser.html' title='Hans Reiser'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-1646125763320294735</id><published>2008-04-28T19:27:00.004+08:00</published><updated>2009-04-06T11:36:20.224+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>FireFox iMacros</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6BrgcXU4a98/SBW1F23fKNI/AAAAAAAAA-8/EA989VorBAA/s1600-h/iMacros.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_6BrgcXU4a98/SBW1F23fKNI/AAAAAAAAA-8/EA989VorBAA/s320/iMacros.png" alt="" id="BLOGGER_PHOTO_ID_5194256857473951954" border="0" /&gt;&lt;/a&gt;iMacros 是 FireFox 的一个扩展插件，和其它的地方应用的宏一样，它可以记录你在用 FireFox 浏览网页时所做的操作(打开链接、登录账号、填写表单……)，然后自动执行。非常酷的功能。&lt;br /&gt;&lt;br /&gt;公司的 CRM 和 MSS 做得确实糟糕，不仅慢，而且离开 ie6 就转不起来了。如果 CRM 和 MSS 能在 FireFox 下使用的话，有了这个 iMacros ，每天的工作量要减少 60% 。&lt;br /&gt;&lt;br /&gt;国内的用户界面设计太依赖微软平台了，盖子的商业头脑没的说，当计算机刚开始在世界范围内普及的时候，准确地抓住了市场机遇。有些人总是说 MS windows 占领市场是因为它的易用性。完全不是这回事！说到易用性，Mac OS 和 Linux 绝不比 windows 差。 MS windows 是借了 IBM x86 的东风，才能迅速传播开，在这一点上 Apple 就比较死脑筋，抓着自己的硬件平台不放，给了 MS 可乘之机，不过这也正体现了 Apple 对品质和理想的追求。而 Linux 则是一方面没赶上计算机普及的黄金时期，第二也是受了用户素质的影响，在中国体现得尤为明显。中国计算机水平比起发达国家有很大差距，绝大部分用户主观地认为 GUI 比 CUI 易用，当然 GUI 也更吸引人的眼球，再者国内 99% 以上的用户是把计算机当作 VCD、DVD、游戏机来使用的，从这一点上来说 GUI 是理所当然的选择。还有一个我认为就是人的畏难情绪，就像年纪比较大的人学打字，几乎都会选择学习笔画输入法，大部分的原因并不是因为五笔输入法的速度，而是因为这些人大都没有学过拼音，并且畏惧学习一个新的技能。写字大家都会，笔画输入说起来都能理解。&lt;br /&gt;&lt;br /&gt;想到输入法这个问题，我是极力推荐新手学习拼音输入法的，虽然从速度上五笔字型仍然更快一些。拼音输入法经过多年的改进，输入速度也有了大幅度的提高，超过 100字/min 不是什么难事，与五笔字型的差距并不大。在下面几个方面有很大的优势：对于会拼音的人，拼音输入不需要学习即可使用；对于不会拼音的人，学习拼音的好处是显而易见的，现代社会中处处都用得上，且不说网络域名、纠正读音，就连商铺的招牌也有很多是拼音写的，查字典的速度都要快很多。学习拼音可谓是一劳多得，事半功倍，也正是拼音的广泛使用，在日常生活中不知不觉的就在逐渐学习巩固，永远不会忘。而五笔字型除了在计算机中做汉字输入外，其它没有任何用处，学习起来还需要记忆大量的字根分布，拆字规则，个别的特殊编码，对于不经常使用计算机的人来说，很容易忘记。&lt;br /&gt;&lt;br /&gt;其实拼音学起来并不困难，连幼儿园的小朋友都能学会，成年人还能学不会？就算是上了年纪记忆力差点，比起记五笔字根不知道要容易多少。&lt;br /&gt;&lt;br /&gt;……从 iMacros 扯到输入法上来了， ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-1646125763320294735?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/1646125763320294735/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=1646125763320294735' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1646125763320294735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1646125763320294735'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/firefox-imacros.html' title='FireFox iMacros'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6BrgcXU4a98/SBW1F23fKNI/AAAAAAAAA-8/EA989VorBAA/s72-c/iMacros.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-827664651585612276</id><published>2008-04-26T18:06:00.001+08:00</published><updated>2008-07-18T00:42:00.457+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>about TDCDMA</title><content type='html'>晚上在 bbs.chinaunix.net 上看到个帖子：&amp;quot;中移动一季度盈利241.02亿元 超联通10倍&amp;quot;，想到一些东西，下面是我的回帖：&lt;p&gt;呵呵，移动现在开始上 TD 了，它即将遇到联通曾经遇到过的和现在仍然没有解决的所有困难。双网造成的业务复杂性、用户对TD终端的接受程度、两个网络的定位。以前移动发明的用来抨击联通CDMA2000手机的名词&amp;quot;专机专卡&amp;quot;，TD也同样面临。&lt;br&gt;比起已经运营了几年的 CDMA2000，TD有更多的BUG、网络建设更不完善，需要投入更大的人力物力，可能这也是把TD给移动运营的原因吧。&lt;p&gt;TD 现在唯一的优势是：它是国内仅有的3G网络，有最高的无线带宽。要建设好TD网络只有充分发挥这个优势。但是它受i到几方面的威胁：CDMA2000、&lt;br&gt;WiFiMax，而且相对于TD， CDMA2000 和&lt;br&gt;WiFiMax更廉价。所以综上所述，TD建设的怎么样、移动的辉煌和沉沦完全取决于信产部(现在的工信部)怎么发牌照、什么时候发牌照。&lt;p&gt;还有TD这个畸形网络的漫游问题，这个我还闹不太清楚。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-827664651585612276?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/827664651585612276/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=827664651585612276' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/827664651585612276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/827664651585612276'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/about-tdcdma.html' title='about TDCDMA'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-688158810206941749</id><published>2008-04-25T09:23:00.003+08:00</published><updated>2008-04-25T09:57:06.218+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google:德鲁克式的理想</title><content type='html'>&lt;p&gt;&lt;span style="font-weight: bold;"&gt;转下面这篇文章是因为我喜欢 Google，它的产品非常酷。我最常用的有 Gmail、picasaweb、blogger、igoogle、calendar&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;原文作者:Rick Wartzman 译者:ilovesnoopy&lt;/span&gt;&lt;br /&gt;Google近期发布了异常亮眼的第三季度财务数字:利润增长46%,收入增幅高达57%.消息发布后,其每股股价大涨6.14美元,已超过639美元. 但是,还有另外一组数字令我印象更加深刻:Google在加州山景城的工作区有17个咖啡馆,员工可在这些咖啡馆免费享用三餐和茶点,鼓励工程师将每周 20%的工作时间从事一些他们感兴趣但并非其核心工作内容的公司内部项目.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; Google建立了一种比我所了解的任何一家企业都更加德鲁克式的工作环境——更准确地说,是早期德鲁克式的.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;   杰克•贝蒂曾为这位已逝的管理学大师作传,他将德鲁克式解释为,“工作应当体现人的社会价值,如机会、社交、认同以及个人满足,而非仅仅反映成本、效率一类的商业价值”,这些观点,彼得•德鲁克在他1940年代的一些早期主要著作中就已提出.&lt;br /&gt;&lt;br /&gt;当然,很多公司(也包括其它类型的组织)都赞同这些原则,并在不同的程度上奉行他们.&lt;br /&gt;&lt;br /&gt;Google 的不同之处在于,它将这些原则发挥到了最大限度,并且不仅简单体现在它所自诩的福利名单上,这个名单包括——除了提供免费美食以及鼓励梦想外——现场理发 和加油(非免费),医药健康检查,有补贴的健身课程,电影专辑和讲座,各式各样的兴趣小组,遍及湾区的班车服务,社交和家庭聚会,拉里•佩奇、谢尔盖•布 林和埃里克•施密特等高管经常会参加的每周五的"市政厅"和闲聊聚会,为某人对公司做出的贡献以及对购买混合型车的丰厚现金奖励.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;一个自我管理的"村落"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;实际上,在以上提及的所有事情之外,最使Google符合早年德鲁克所奉行的"公司不仅仅是一个经济工具也是一种社会制度"的信条的,是这个互联网公司所营造出来的那种涵盖一切的工作气氛.&lt;br /&gt;&lt;br /&gt;更 具体地讲,德鲁克对于工业时代的愿景中包括建立一个流水线工人能够自我管理多方面事务并且因此获取大大超出薪酬的回报的"工厂社会".他在1949年出版 的著作《新社会》中写到,工人们需要"与同事建立良好而紧密的群体联系,与主管建立良好的关系,进一步的,也是最重要的,作为一个人,获得认同、社会威望 和满足感、建立社会地位和职能".&lt;br /&gt;&lt;br /&gt;Google在本质上讲并不是一个"工厂",但是员工们在描述他们的高科技公司的时候所进行的描述与德鲁克的惊人地相似.在大约两年前加入公司的机械工程师丹•莱特纳说:"它就像个村落."&lt;br /&gt;&lt;br /&gt;虽然Cafe Pintxo提供的午餐和晚餐、小菜组合,亚洲风味的Pacific Cafe和Googleplex(总部所在地)的任何其它小餐馆都非常棒,但最能刺激莱特纳胃口的还是同事之间同志般的友谊以及创造性的讨论.&lt;br /&gt;&lt;br /&gt;莱 特纳说,这种情况并不少见,进餐时的谈话中会发展出非常重要的合作,并帮助他认识一些之前从来都没有见过的同事.每当有这样的情况发生,他会开始积极奔 走,用他那20%的时间与家得宝联系(费用由Google偿付,这是一项基础政策,不须管理层的批准),根据他和一些同事的创意生产样品,并检测这个创意 的有效性.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;一种能够创造额外收益文化&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;最好的创意总是能够被推送到管理者那里,如果他们被批准实施,就能够变成正式的项目并获得资金支持.而那些不足以应用的创意通常很快也就被遗忘了."这是非常有竞争性的地方"拉特纳说,"并不总是富有同情心."&lt;br /&gt;&lt;br /&gt;Google 不会透露它为众多的员工福利所支付的代价,一位女性发言人指出,尽管公司在计算方面有非常突出的优势,但是也无法对生产力效用进行量化.然而,这种文化显 然为公司带来了额外的收益.Gmail、Google News、Google Earth上Sky的应用,都是从那些员工在20%工作时间里进行的项目中脱颖而出的.&lt;br /&gt;&lt;br /&gt;然而,对拉特纳来说,即使是那些最终没有被采纳的创意也有极大的价值.他表示,仅仅是推行创意实施的过程,就证明了在Google的15000多位雇员中,有许多人的身上同时兼备了"企业家和艺术家"的双重特质.他补充到,它满足了"每个人创造的需要".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;文化增强可能带来的效果&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;需 要注意的是,提供所有的这些福利在一切正常运转以及财务前景非常乐观的情况下是相对容易的.相对于自矜于现有的成就,Google更应该对未来的可能的挫 折作足够的准备——就像无数曾经看起来在商场上无往不利的公司所经历过的一样——它在所有这些方面的承诺是经得起考验的.&lt;br /&gt;&lt;br /&gt;随着时间过去, 德鲁克自己放弃了"工厂社会"的构想,悲观地认为,大多数公司会满足于维持底线而不做更多改进.想要在美国或其它地方寻找一个有劳动保障的工厂社会的范本 也越来越困难.在1980年代后期,德鲁克开始在非盈利组织中寻找一个"象社会一样能够给人目标和方向"的范本.&lt;br /&gt;&lt;br /&gt;也许德鲁克过早地放弃了工厂社会模型,但谁又能想到在他在半个多世纪前所提出的一个概念会在2007年才被一个世界上最有超前意识的公司大胆地实现了呢?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-688158810206941749?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/688158810206941749/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=688158810206941749' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/688158810206941749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/688158810206941749'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/google.html' title='Google:德鲁克式的理想'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-6689697747874428214</id><published>2008-04-24T21:07:00.001+08:00</published><updated>2008-04-24T21:11:54.087+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>sogo skin</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6BrgcXU4a98/SBCGMm3fKMI/AAAAAAAAA-0/HgY3FE8x3wg/s1600-h/sogo_skin.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_6BrgcXU4a98/SBCGMm3fKMI/AAAAAAAAA-0/HgY3FE8x3wg/s320/sogo_skin.JPG" alt="" id="BLOGGER_PHOTO_ID_5192797921508010178" border="0" /&gt;&lt;/a&gt;给搜狗拼音换了个皮肤，非常酷吧。搜狗拼音的词库、网络账户同步、皮肤、输入统计都是非常酷的功能，看来在拼音输入法上谷歌是暂时赶不上搜狗了。什么时候 Linux 上也有这么好的拼音输入法就帅呆了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-6689697747874428214?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/6689697747874428214/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=6689697747874428214' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6689697747874428214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6689697747874428214'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/sogo-skin.html' title='sogo skin'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6BrgcXU4a98/SBCGMm3fKMI/AAAAAAAAA-0/HgY3FE8x3wg/s72-c/sogo_skin.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-9085616208292968528</id><published>2008-04-24T17:11:00.000+08:00</published><updated>2008-07-18T00:41:45.400+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>size_t and ptrdiff_t</title><content type='html'>size_t 在 cstddef 头文件中定义的机器相关的无符号整型。该类型足以保存最大数组的长度。我发现 g++ 3.4.2 中不用&lt;br&gt;#include &amp;lt;cstddef&amp;gt; 也可以使用 size_t 类型。&lt;p&gt;&lt;br&gt;两个指针减法操作的结果是标准库类型(library type) ptrdiff_t 的数据。与 size_t 类型一样， ptrdiff_t&lt;br&gt;也是一种与机器相关的类型， 在 cstddef 头文件中定义。 size_t 是 unsigned 类型，而 ptrdiff_t 则是&lt;br&gt;signed 整型。&lt;p&gt;&lt;br&gt;这两种类型的差别体现了它们各自的用途：size_t 类型用于指明数组长度，它必须是一个正数；ptrdiff_t&lt;br&gt;类型则应保证足以存放同一数组中两个指针之间的差距，它有可能是负数。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-9085616208292968528?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/9085616208292968528/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=9085616208292968528' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/9085616208292968528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/9085616208292968528'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/sizet-and-ptrdifft.html' title='size_t and ptrdiff_t'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-6727702710629576427</id><published>2008-04-23T12:40:00.003+08:00</published><updated>2008-04-24T14:53:59.915+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeX'/><title type='text'>LaTeX-Suite</title><content type='html'>==== 20071119 22:08 发布于 redspid.blog.163.com ====&lt;br /&gt;又发现了一个好东西：LaTeX-Suite ，编辑 LaTeX 的 VIM 插件( Homepage:&lt;br /&gt;&lt;a href="http://vim-latex.sourceforge.net/"&gt;http://vim-latex.sourceforge.net/&lt;/a&gt; )。真是 欲善其事，必先利其器，有个这个插件，以后写 LaTeX 便如虎添翼了。&lt;p&gt;---------------------------------&lt;br /&gt;\include {filename} 处理大型文档时可将源文件分成几个部分，这个命令可将名为 filename.tex 的文件包含进当前文档。并在新页上排版包含进来的文本。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;\includeonly{filename, filename...} 用在导言区，用来指定仅仅读入某些 \include 文件。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;\input{filename} 此命令只是简单地将指定的文件包含进来，没有其它的限制。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;LaTeX 支持三种预定的页眉、页脚(header/footer)格式，称为页面式样(page styles)。命令 \pagestyle{style} 中的参数定义了所使用页面式样。下面是预定义的页面式样：&lt;br /&gt;----------------------&lt;br /&gt;plain 页眉为空，页脚由居中的页码组成。这是默认式样&lt;br /&gt;headings 页眉由当前的章节和页码组成，页脚为空&lt;br /&gt;empty 页眉、页脚均为空&lt;br /&gt;---------------------&lt;br /&gt;可用命令 \thispagestyle{style} 改变当前页的页面式样。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-6727702710629576427?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/6727702710629576427/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=6727702710629576427' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6727702710629576427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6727702710629576427'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/latex-suite.html' title='LaTeX-Suite'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-6231945157652163573</id><published>2008-04-22T22:14:00.002+08:00</published><updated>2008-04-23T12:26:07.935+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>C++ Default Parameter Values</title><content type='html'>==== 20071107 21:10 发布于 redspid.blog.163.com ====&lt;br /&gt;C++ 函数默认参数两条规则:&lt;p&gt;1. 默认值的决议(resolve)操作由最右边开始进行。若为某个参数提供了默认值，那么这个参数右侧的所以参数都必须也具有默认值。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. 默认值只能指定一次。可在函数声明处，亦可在函数定义处，但不能在两个地方都指定。函数声明通常置于头文件中，头文件可为函数带来更高的可见度(visibility)，通常将默认值至于函数声明处。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-6231945157652163573?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/6231945157652163573/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=6231945157652163573' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6231945157652163573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6231945157652163573'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/c-default-parameter-values.html' title='C++ Default Parameter Values'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-3837742993909245618</id><published>2008-04-21T22:38:00.001+08:00</published><updated>2008-04-23T12:31:06.644+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Header file: limits</title><content type='html'>&lt;pre&gt;&lt;font color="#ffff00"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;==== 2007年10月31日11:38 发布于 &lt;a href="http://redspid.blog.163.com"&gt;redspid.blog.163.com&lt;/a&gt; ====&lt;br&gt;C++ 内建类型取值范围:&lt;/span&gt;&lt;br&gt;&lt;br&gt; 1 &lt;/font&gt;&lt;font color="#ff80ff"&gt;# include &lt;/font&gt;&lt;font color="#ffa0a0"&gt;&amp;lt;iostream&amp;gt;&lt;/font&gt;&lt;br&gt; &lt;font color="#ffff00"&gt; 2 &lt;/font&gt;&lt;font color="#ff80ff"&gt;# include &lt;/font&gt;&lt;font color="#ffa0a0"&gt;&amp;lt;limits&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt; 3 &lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt; 4 &lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; &lt;font color="#60ff60"&gt;&lt;b&gt;namespace&lt;/b&gt;&lt;/font&gt; std;&lt;br&gt; &lt;font color="#ffff00"&gt; 5 &lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt; 6 &lt;/font&gt;&lt;font color="#60ff60"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt; main() {&lt;br&gt;&lt;font color="#ffff00"&gt; 7 &lt;/font&gt;    &lt;font color="#80a0ff"&gt;// C++ 内建类型的 最大、最小 值&lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt; 8 &lt;/font&gt;    &lt;font color="#60ff60"&gt;&lt;b&gt;long&lt;/b&gt;&lt;/font&gt; &lt;font color="#60ff60"&gt;&lt;b&gt;unsigned&lt;/b&gt;&lt;/font&gt; &lt;font color="#60ff60"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt; i = numeric_limits&amp;lt;&lt;font color="#60ff60"&gt;&lt;b&gt;unsigned&lt;/b&gt;&lt;/font&gt; &lt;font color="#60ff60"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;gt;::max();&lt;br&gt; &lt;font color="#ffff00"&gt; 9 &lt;/font&gt;    &lt;font color="#60ff60"&gt;&lt;b&gt;long&lt;/b&gt;&lt;/font&gt; &lt;font color="#60ff60"&gt;&lt;b&gt;double&lt;/b&gt;&lt;/font&gt; j = numeric_limits&amp;lt;&lt;font color="#60ff60"&gt;&lt;b&gt;double&lt;/b&gt;&lt;/font&gt;&amp;gt;::min();&lt;br&gt;&lt;font color="#ffff00"&gt;10 &lt;/font&gt;&lt;br&gt; &lt;font color="#ffff00"&gt;11 &lt;/font&gt;    cout&amp;lt;&amp;lt;i&amp;lt;&amp;lt;endl;&lt;br&gt;&lt;font color="#ffff00"&gt;12 &lt;/font&gt;    cout&amp;lt;&amp;lt;j&amp;lt;&amp;lt;endl;&lt;br&gt;&lt;font color="#ffff00"&gt;13 &lt;/font&gt;}&lt;/pre&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-3837742993909245618?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/3837742993909245618/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=3837742993909245618' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3837742993909245618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3837742993909245618'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/header-file-limits.html' title='Header file: limits'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-1295936699895924924</id><published>2008-04-20T12:15:00.001+08:00</published><updated>2008-04-23T12:31:20.588+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>Thunder's cache</title><content type='html'>迅雷的在线收看视频资源不错，速度也很快。开始不知道迅雷的缓冲文件放在哪，配置界面也没有相关的设置选项，google 了一下才找到，&lt;br&gt;原来还设了 DOS 隐藏属性，真是恶搞，这样用户都弄不清硬盘怎么就满了。&lt;br&gt;可以修改注册表自动清除 cache 文件，不过我对注册表不感冒，用 perl 搞定它。&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;use&lt;/span&gt; File::Find;&lt;br&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;my&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;$directory&lt;/span&gt; = &lt;span style="color: rgb(204, 0, 0);"&gt;&amp;#39;d:\vod_cache_data&amp;#39;&lt;/span&gt;;&lt;br&gt;&lt;br&gt;find(&lt;span style="color: rgb(255, 204, 0);"&gt;sub&lt;/span&gt; {&lt;span style="color: rgb(255, 204, 0);"&gt;unlink if&lt;/span&gt; (&lt;span style="color: rgb(255, 204, 0);"&gt;-f&lt;/span&gt;)}, &lt;span style="color: rgb(51, 51, 153);"&gt;$directory&lt;/span&gt;);&lt;br&gt; &lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-1295936699895924924?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/1295936699895924924/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=1295936699895924924' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1295936699895924924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1295936699895924924'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/thunders-cache.html' title='Thunder&apos;s cache'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-3232436020059594936</id><published>2008-04-14T20:59:00.001+08:00</published><updated>2008-04-23T12:31:44.139+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Algorithm'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>C++ sort</title><content type='html'>&lt;pre&gt;&lt;font color="#ffff00"&gt; 1 &lt;/font&gt;&lt;font color="#ff80ff"&gt;# include &lt;/font&gt;&lt;font color="#ffa0a0"&gt;&amp;lt;iostream&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt; 2 &lt;/font&gt;&lt;font color="#ff80ff"&gt;# include &lt;/font&gt;&lt;font color="#ffa0a0"&gt;&amp;lt;string&amp;gt;&lt;/font&gt;&lt;br&gt; &lt;font color="#ffff00"&gt; 3 &lt;/font&gt;&lt;font color="#ff80ff"&gt;# include &lt;/font&gt;&lt;font color="#ffa0a0"&gt;&amp;lt;vector&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt; 4 &lt;/font&gt;&lt;font color="#ff80ff"&gt;# include &lt;/font&gt;&lt;font color="#ffa0a0"&gt;&amp;lt;fstream&amp;gt;&lt;/font&gt;&lt;br&gt; &lt;font color="#ffff00"&gt; 5 &lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt; 6 &lt;/font&gt;&lt;font color="#ff80ff"&gt;# include &lt;/font&gt;&lt;font color="#ffa0a0"&gt;&amp;lt;algorithm&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt; 7 &lt;/font&gt;&lt;font color="#80a0ff"&gt;// 泛型算法 sort(container.begin(), container.end());&lt;/font&gt;&lt;br&gt; &lt;font color="#ffff00"&gt; 8 &lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt; 9 &lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; &lt;font color="#60ff60"&gt;&lt;b&gt;namespace&lt;/b&gt;&lt;/font&gt; std;&lt;br&gt;&lt;font color="#ffff00"&gt;10 &lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt;11 &lt;/font&gt;&lt;font color="#60ff60"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt; main() {&lt;br&gt; &lt;font color="#ffff00"&gt;12 &lt;/font&gt;    vector&amp;lt;string&amp;gt; ctn(&lt;font color="#ffa0a0"&gt;6&lt;/font&gt;);&lt;br&gt;&lt;font color="#ffff00"&gt;13 &lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt;14 &lt;/font&gt;    &lt;font color="#80a0ff"&gt;// 打开待读取的文件 并测试&lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt;15 &lt;/font&gt;    ifstream ifile(&lt;font color="#ffa0a0"&gt;&amp;quot;d:/res.txt&amp;quot;&lt;/font&gt;);&lt;br&gt; &lt;font color="#ffff00"&gt;16 &lt;/font&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt; (! ifile) &lt;font color="#ffff60"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;1&lt;/font&gt;;&lt;br&gt;&lt;font color="#ffff00"&gt;17 &lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt;18 &lt;/font&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt; (&lt;font color="#60ff60"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt; i=&lt;font color="#ffa0a0"&gt;0&lt;/font&gt;; i&amp;lt;&lt;font color="#ffa0a0"&gt;6&lt;/font&gt;; i++)&lt;br&gt; &lt;font color="#ffff00"&gt;19 &lt;/font&gt;        ifile&amp;gt;&amp;gt;ctn[i];&lt;br&gt;&lt;font color="#ffff00"&gt;20 &lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt;21 &lt;/font&gt;    &lt;font color="#80a0ff"&gt;// 排序&lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt;22 &lt;/font&gt;    sort(ctn.begin(), ctn.end());&lt;br&gt; &lt;font color="#ffff00"&gt;23 &lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt;24 &lt;/font&gt;    &lt;font color="#80a0ff"&gt;// 输出排序后结果&lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt;25 &lt;/font&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt; (&lt;font color="#60ff60"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt; i=&lt;font color="#ffa0a0"&gt;0&lt;/font&gt;; i&amp;lt;&lt;font color="#ffa0a0"&gt;6&lt;/font&gt;; i++)&lt;br&gt; &lt;font color="#ffff00"&gt;26 &lt;/font&gt;        cout&amp;lt;&amp;lt;ctn[i]&amp;lt;&amp;lt;endl;&lt;br&gt;&lt;font color="#ffff00"&gt;27 &lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt;28 &lt;/font&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;0&lt;/font&gt;;&lt;br&gt; &lt;font color="#ffff00"&gt;29 &lt;/font&gt;}&lt;/pre&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-3232436020059594936?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/3232436020059594936/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=3232436020059594936' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3232436020059594936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3232436020059594936'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/c-sort.html' title='C++ sort'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-4854547083088530905</id><published>2008-04-12T18:15:00.001+08:00</published><updated>2008-04-23T12:31:31.988+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>cctype Header</title><content type='html'>cctype 头文件中定义的函数：&lt;p&gt;isalnum(c)		如果 c 是字母或数字，则为 true。&lt;br&gt;isalpha(c)		如果 c 是字母，则为 true。&lt;br&gt;iscntrl(c)		如果 c 是控制字符，则为 true。&lt;br&gt;isdigit(c)		如果 c 是数字，则为 true。&lt;br&gt;isgraph(c)		如果 c 不是空格，但可打印，则为 true。&lt;br&gt;islower(c)		如果 c 是小写字母，则为 true。&lt;br&gt;isprint(c)		如果 c 是可打印的字符，则为 true。&lt;br&gt;ispunct(c)		如果 c 是标点符号，则为 true。&lt;br&gt;isspace(c)		如果 c 是空白字符，则为 true。&lt;br&gt;isupper(c)		如果 c 是大写字母，则为 true。&lt;br&gt;isxdigit(c)		如果 c 是十六进制数，则为 true。&lt;br&gt;tolower(c)		如果 c 是大写字母，则返回其小写字母的形式，否则直接返回 c 。&lt;br&gt;toupper(c)		如果 c 是小写字母，则返回其大写字母的形式，否则直接返回 c 。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-4854547083088530905?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/4854547083088530905/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=4854547083088530905' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4854547083088530905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4854547083088530905'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/cctype-header.html' title='cctype Header'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-3152442953066082020</id><published>2008-04-11T19:52:00.005+08:00</published><updated>2008-04-11T21:29:41.376+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>Shuang Mian Jiao</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6BrgcXU4a98/R_9ZaETIkQI/AAAAAAAAA8o/Dtj77udaPns/s1600-h/hlj.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_6BrgcXU4a98/R_9ZaETIkQI/AAAAAAAAA8o/Dtj77udaPns/s320/hlj.jpg" alt="" id="BLOGGER_PHOTO_ID_5187963600119566594" border="0" /&gt;&lt;/a&gt;前两天在电视上看到在放一部电视剧“双面胶”。呵呵，里面女主角叽里呱啦的上海话听起来好玩得很，于是用驴子拖下来看看。&lt;br /&gt;&lt;br /&gt;片中主要叙述的两家婆媳关系都是剑拔弩张啊，说清官难判家务事，其实判家务事难就难在弄不清事情来龙去脉，各说各的理。家里的事又没旁观者，又不可能大动干戈地去查，自然就判不明白，但小说/电视里的故事读者/观众可都清清楚楚地看着，谁是谁非基本上也容易统一意见。&lt;br /&gt;&lt;br /&gt;“双面胶”里的故事，责任当然在两个母亲身上，遇上两个孱头儿子，李亚平和王启东，家庭矛盾大也是顺理成章的。&lt;br /&gt;&lt;br /&gt;胡丽娟倒是蛮可爱，笑嘻嘻的表情和叽叽呱呱的上海话 ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-3152442953066082020?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/3152442953066082020/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=3152442953066082020' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3152442953066082020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3152442953066082020'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/shuang-mian-jiao.html' title='Shuang Mian Jiao'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6BrgcXU4a98/R_9ZaETIkQI/AAAAAAAAA8o/Dtj77udaPns/s72-c/hlj.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-7848246228898872809</id><published>2008-04-09T11:56:00.004+08:00</published><updated>2008-04-09T12:29:21.481+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>"Ruminations on C++"</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6BrgcXU4a98/R_xB-QhiGxI/AAAAAAAAA8M/XEpXM_qtVjQ/s1600-h/DSC03111.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_6BrgcXU4a98/R_xB-QhiGxI/AAAAAAAAA8M/XEpXM_qtVjQ/s320/DSC03111.JPG" alt="" id="BLOGGER_PHOTO_ID_5187093408667278098" border="0" /&gt;&lt;/a&gt;近两天看到一本好书， "Ruminations on C++"，中文版叫"C++ 沉思录"，是 Andrew Koenig(前贝尔实验室成员、ISO/ANSI C++ 委员会委员。他的另一部著作很多人比较熟悉："C Traps and Pitfalls")和他夫人 Barbara Moo 著的书。&lt;br /&gt;&lt;br /&gt;这不是介绍 C++ 语法的教程，而是大师关于 C++ 设计和编程思想的论述。作者对 C++ 有着居高临下的见识，对于 C++ 的设计理念和实际应用有非常清晰的观点。&lt;br /&gt;&lt;br /&gt;刚看了前三章，让我对 C++ 的现在和未来更加信心百倍！&lt;br /&gt;&lt;br /&gt;Let us Learn From The Masters. ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-7848246228898872809?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/7848246228898872809/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=7848246228898872809' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7848246228898872809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/7848246228898872809'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/rumination-on-c.html' title='&quot;Ruminations on C++&quot;'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6BrgcXU4a98/R_xB-QhiGxI/AAAAAAAAA8M/XEpXM_qtVjQ/s72-c/DSC03111.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-1609188607381288102</id><published>2008-04-08T17:05:00.002+08:00</published><updated>2008-04-08T17:08:25.860+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>Red Hat package manager</title><content type='html'>==== 20071029 16:34 发布于 redspid.blog.163.com ====&lt;br /&gt;1. 安装、升级和更新&lt;br /&gt;   rpm -i 安装一个新的软件包。&lt;br /&gt;   rpm -U 升级一个系统中已有的软件包，如果软件包不存在就不进行安装。&lt;br /&gt;   rpm -F 更新一个软件包，如果软件包不存在就不执行安装。&lt;p&gt;    上面几个参数往往和其它一些参数配合使用，例如显示安装过程中的信息及显示安装进度等：&lt;/p&gt;&lt;p&gt;    -v 表示安装时显示各种信息，如安装路径及安装了什么内容。&lt;br /&gt;   -h 会在 rpm 包安装时显示安装的进度条，这可以监视系统安装进程。&lt;/p&gt;&lt;p&gt;    因此，一般想要安装软件包，最常用的命令形式就是 -Uvh 三个参数。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt; 2. 删除&lt;br /&gt;   删除软件包的命令是： rpm -e example&lt;br /&gt;   这个命令中使用的是软件名，而非软件包全名。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt; 3. 查询&lt;br /&gt;   不仅可以查询系统中已经安装的 rpm 软件包，还可以查询某个 rpm 软件包安装文件中包含的文件清单。&lt;/p&gt;&lt;p&gt;    rpm -qa(query all) 查询已安装的软件包列表。&lt;br /&gt;   rpm -q example 查询某个已安装的软件包(example)的信息。&lt;br /&gt;   rpm -qlp example-1.2.3.i686.rpm 查询未安装的软件包的信息。&lt;br /&gt;   rpm -pl example 查询已安装的软件包的信息。&lt;br /&gt;   rpm -qf filename 查询 filename 文件属于哪个包(filename为完整路径文件名)。&lt;br /&gt;   rpm -qip example-1.2.3.i686.rpm 查询软件包附加信息。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt; 4. 验证&lt;br /&gt;   验证一个软件包，就是比较原始包和已安装包中文件的信息。即：每个文件的大小、MD5 校验码、访问权限、类型等信息。常用命令有：&lt;/p&gt;&lt;p&gt;    rpm -Vf example 验证包含某个特殊文件的软件包&lt;br /&gt;   rpm -Va 验证所有已安装的软件&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-1609188607381288102?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/1609188607381288102/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=1609188607381288102' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1609188607381288102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1609188607381288102'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/red-hat-package-manager_08.html' title='Red Hat package manager'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-576878438231068852</id><published>2008-04-07T13:40:00.001+08:00</published><updated>2008-04-07T13:40:12.864+08:00</updated><title type='text'>Applications of Modulus computing 1</title><content type='html'>&lt;pre&gt;&lt;font color="#ffff00"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;==== 20071028 21:11 发布于 &lt;a href="http://redspid.blog.163.com"&gt;redspid.blog.163.com&lt;/a&gt; ====&lt;/span&gt;&lt;br&gt; 1 &lt;/font&gt;&lt;font color="#ff80ff"&gt;# include &lt;/font&gt;&lt;font color="#ffa0a0"&gt;&amp;lt;iostream&amp;gt;&lt;/font&gt;&lt;br&gt; &lt;font color="#ffff00"&gt; 2 &lt;/font&gt;&lt;font color="#ff80ff"&gt;# include &lt;/font&gt;&lt;font color="#ffa0a0"&gt;&amp;lt;string&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt; 3 &lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; &lt;font color="#60ff60"&gt;&lt;b&gt;namespace&lt;/b&gt;&lt;/font&gt; std;&lt;br&gt; &lt;font color="#ffff00"&gt; 4 &lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt; 5 &lt;/font&gt;&lt;font color="#60ff60"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt; main() {&lt;br&gt;&lt;font color="#ffff00"&gt; 6 &lt;/font&gt;    &lt;font color="#60ff60"&gt;&lt;b&gt;const&lt;/b&gt;&lt;/font&gt; &lt;font color="#60ff60"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt; line_size = &lt;font color="#ffa0a0"&gt;4&lt;/font&gt;;&lt;br&gt; &lt;font color="#ffff00"&gt; 7 &lt;/font&gt;    &lt;font color="#60ff60"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt; counter = &lt;font color="#ffa0a0"&gt;1&lt;/font&gt;;&lt;br&gt;&lt;font color="#ffff00"&gt; 8 &lt;/font&gt;    string array[] = {&lt;font color="#ffa0a0"&gt;&amp;quot;compiler&amp;quot;&lt;/font&gt;, &lt;font color="#ffa0a0"&gt;&amp;quot;C++&amp;quot;&lt;/font&gt;, &lt;font color="#ffa0a0"&gt;&amp;quot;Perl&amp;quot;&lt;/font&gt;, &lt;font color="#ffa0a0"&gt;&amp;quot;GNU&amp;quot;&lt;/font&gt;, &lt;font color="#ffa0a0"&gt;&amp;quot;Linux&amp;quot;&lt;/font&gt;,&lt;br&gt;                          &lt;font color="#ffa0a0"&gt;&amp;quot;free&amp;quot;&lt;/font&gt;, &lt;font color="#ffa0a0"&gt;&amp;quot;OpenSource&amp;quot;&lt;/font&gt;, &lt;font color="#ffa0a0"&gt;&amp;quot;software&amp;quot;&lt;/font&gt;, &lt;font color="#ffa0a0"&gt;&amp;quot;Debian&amp;quot;&lt;/font&gt;,&lt;br&gt;                          &lt;font color="#ffa0a0"&gt;&amp;quot;hurd&amp;quot;&lt;/font&gt;, &lt;font color="#ffa0a0"&gt;&amp;quot;kernel&amp;quot;&lt;/font&gt;};&lt;br&gt;&lt;font color="#ffff00"&gt; 9 &lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt;10 &lt;/font&gt;    &lt;font color="#60ff60"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt; out_time = &lt;font color="#ffff60"&gt;&lt;b&gt;sizeof&lt;/b&gt;&lt;/font&gt;(array) / &lt;font color="#ffff60"&gt;&lt;b&gt;sizeof&lt;/b&gt;&lt;/font&gt;(array[&lt;font color="#ffa0a0"&gt;0&lt;/font&gt;]);&lt;br&gt; &lt;font color="#ffff00"&gt;11 &lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt;12 &lt;/font&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt; (&lt;font color="#60ff60"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt; i=&lt;font color="#ffa0a0"&gt;0&lt;/font&gt;; i&amp;lt;out_time; i++) {&lt;br&gt;&lt;font color="#ffff00"&gt;13 &lt;/font&gt;        &lt;font color="#80a0ff"&gt;// 输出一个字符串后判断当前行是否输出了 line_size 个字符串&lt;/font&gt;&lt;br&gt; &lt;font color="#ffff00"&gt;14 &lt;/font&gt;        &lt;font color="#80a0ff"&gt;// 否，则输出一个空格；是，则换行&lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt;15 &lt;/font&gt;        cout&amp;lt;&amp;lt;array[i]&amp;lt;&amp;lt;(counter % line_size ? &lt;font color="#ffa0a0"&gt;&amp;#39; &amp;#39;&lt;/font&gt; : &lt;font color="#ffa500"&gt;&amp;#39;\n&amp;#39;&lt;/font&gt;);&lt;br&gt; &lt;font color="#ffff00"&gt;16 &lt;/font&gt;        counter++;&lt;br&gt;&lt;font color="#ffff00"&gt;17 &lt;/font&gt;    }&lt;br&gt;&lt;font color="#ffff00"&gt;18 &lt;/font&gt;&lt;br&gt;&lt;font color="#ffff00"&gt;19 &lt;/font&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;0&lt;/font&gt;;&lt;br&gt; &lt;font color="#ffff00"&gt;20 &lt;/font&gt;}&lt;br&gt;&lt;/pre&gt; o(∩_∩)o...&amp;nbsp; 看看上面用 vim 生成的语法高亮代码，怎一个酷字了得！ &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-576878438231068852?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/576878438231068852/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=576878438231068852' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/576878438231068852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/576878438231068852'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/applications-of-modulus-computing-1.html' title='Applications of Modulus computing 1'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-348842158634155974</id><published>2008-04-06T18:19:00.002+08:00</published><updated>2008-04-06T18:26:04.887+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vim'/><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>CUI v.s. GUI</title><content type='html'>==== 10071027 22:42 发布于 redspid.blog.163.com ====&lt;br /&gt;整天在网页上用鼠标点来点去，受够了垃圾软件的困扰。如果现在公司的程序能提供 CUI 的话，每天的工作恐怕只需要 10 分钟就能搞定了。&lt;p&gt;GUI 与 CUI 的争论由来已久。从最近的市场来看，GUI 似乎胜出了，其实两者各有利弊，程序开发者选择不好真是作孽啊。&lt;/p&gt;&lt;p&gt;GUI 更有利于使用者(人类)获取丰富的信息。不同的色彩、字体、各种各样的图片、动画的组合相对于一行行的文字来说毫无疑问更能吸引人的目光，也表达了更加丰富的信息。同时，GUI&lt;br /&gt;在一部分领域有着不可替代的作用，例如图形图像制作、视频等。但是，它也有着与生俱来的缺陷：可操作性、移植性、灵活性、兼容性 都远远差于 CUI 。&lt;br /&gt;在我看来，对于绝大部分软件来说，更好的选择应该是 CUI ，而非当今流行的GUI 。但是随着 windows 的流行，日常应用的 CUI 软件少之又少，我是深受其苦。&lt;/p&gt;&lt;p&gt;表明看来 CUI 软件比 GUI 上的操作要繁琐一些，需要记忆一些命令、参数，输入的时候也容易出错。其实不然，对于日常使用的程序来说，应该着眼于长期的效率。就像使用文本编辑器，你说是 windows 的记事本好用，还是 vim 好用？也许初学者需要花上一、两个小时才能顺利在 vim&lt;br /&gt;中操作文本，但是，当你花上几小时、几天、甚至几个星期把 vim 用熟练了以后，产生的效率是远远不能用几个星期来估量的。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-348842158634155974?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/348842158634155974/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=348842158634155974' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/348842158634155974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/348842158634155974'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/cui-vs-gui.html' title='CUI v.s. GUI'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-3908275677873240399</id><published>2008-04-05T22:15:00.001+08:00</published><updated>2008-04-06T18:27:15.597+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>I came back</title><content type='html'>阔别 blogspot 超过半年之久，终于又回来了，而且这次不用通过 ftp 转发了，估计是受 2008北京奥运会的影响。&lt;br&gt;还是blogspot 看起来比较爽，虽然界面看起来要比 blog.163.com 简单一些，我喜欢这种简洁的设计。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-3908275677873240399?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/3908275677873240399/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=3908275677873240399' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3908275677873240399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3908275677873240399'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2008/04/i-came-back.html' title='I came back'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-2896675118078174446</id><published>2007-10-19T11:56:00.001+08:00</published><updated>2008-04-06T18:27:27.335+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>File operation</title><content type='html'>可移植的文件系统操作&lt;br&gt;File::Find&lt;br&gt;find(subref, dirlist);&lt;p&gt;File::Copy&lt;br&gt;copy(&amp;quot;sourcefile&amp;quot;, &amp;quot;destinationfile&amp;quot;)&lt;p&gt;诊断信息&lt;br&gt;use diagnostics;&lt;p&gt;终于看不下去 Java 了，重新拾起我的 C++ ―― 最强大的计算机语言 ^^&lt;p&gt;2007年8月21日的草稿，现在才发。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-2896675118078174446?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/2896675118078174446/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=2896675118078174446' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2896675118078174446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2896675118078174446'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/10/file-operation.html' title='File operation'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-9209738942519573193</id><published>2007-09-14T22:08:00.001+08:00</published><updated>2008-04-06T18:27:41.635+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Doctor Bjarne.Stroustrup</title><content type='html'>C++ 之父 B.Stroustrup言论（译者：孟岩，来自侯捷老师主页）节选，转载至此作为备份&lt;br&gt;&lt;br&gt;&lt;font size="3"&gt;&lt;font color="#000000"&gt;以下&lt;/font&gt;&lt;font color="#0000ff"&gt;蓝色&lt;/font&gt;&lt;font color="#000000"&gt;为提问，黑色为回答。&lt;/font&gt;&lt;font color="#ff0000"&gt;红色&lt;/font&gt;&lt;font color="#000000"&gt; 为译注，&lt;/font&gt;&lt;font color="#ff00ff"&gt;紫色&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font color="#000000"&gt;为侯捷个人认为宜再斟酌之处。&lt;br&gt;&lt;/font&gt;&lt;font color="#8080ff"&gt;浅蓝色&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="3"&gt;是侯捷个人阅读时的神秘标记。&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;h3&gt;&lt;font color="#0000ff" size="3"&gt; 1. 我如何开始学习C++？&lt;/font&gt;&lt;/h3&gt; &lt;font size="3"&gt;这取决于你的基础和学习动机。如果你是个初学者，我想你最好找个有经验的程序员来帮助你，要不然你在学习和实践中不 可避免的犯下的种种错误会大大地打击你的积极性。另外，即使你的编译器配备了充足的文档资料，一本C++书籍也永远是必不可少的，毕竟文档资料不是学习编 程思想的好教材。&lt;br&gt;&lt;br&gt;&lt;font color="#8080ff"&gt;选择书籍时，务必注意该书是不是从一开始就讲授标准C++&lt;/font&gt;，&lt;font color="#8080ff"&gt;并且矢志不渝地使用标准库机制。&lt;/font&gt;例如，从输入中读取一个字符串应该是这样的：&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string s;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Standard C++ style&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cin &amp;gt;&amp;gt; s;&lt;br&gt;&lt;br&gt;而不是这样的： &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char s[MAX];&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Standard C style */&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; scanf(&amp;quot;%s&amp;quot;,s);&lt;br&gt;&lt;br&gt;去看看那些扎实的C++程序员们推荐的书吧。记住，没有哪本书对所有人来说都是最好的。另外，要写地道的C++程序，而避免用C++的语法写传统风格的程序，新瓶装旧酒没多大意义。&lt;font color="#ff0000"&gt;（遗憾的是，目前在市面上的中文C++教材中，符合B. S的这个标准的可以说一本都没有，大家只好到网上找一些英文的资料来学习了。--译者） &lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;h3&gt;&lt;font color="#0000ff" size="3"&gt;2. 怎样改进我的C++程序？&lt;/font&gt;&lt;/h3&gt; &lt;font size="3"&gt;不好说。这取决于你是怎麽使用该语言的。&lt;font color="#8080ff"&gt;大多数人低估了抽象类和模板的价值，反过来却肆无忌惮地使用造型机制(cast)和宏&lt;/font&gt;。这方面可以看看我的文章和书。抽象类和和模板的作用当然是提供一种方便的手段建构单根的类层次或者重用函数，但更重要的是，它们作为接口提供了简洁的 逻辑性的服务表示机制。&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;h3&gt;&lt;font color="#0000ff" size="3"&gt; 3. 如果不必和C兼容，你所创造的语言是不是就会是Java?&lt;/font&gt;&lt;/h3&gt; &lt;p&gt;&lt;font size="3"&gt;不是，差得远。如果人们非要拿C++和Java来作比较，我建议他们去阅读The Design and Evolution of C++，看看C++为什麽是今天这个样子，用我在设计C++时遵从的原则来检验这两种语言。这些原则与SUN的Java开发小组所持的理念显然是不同的。 除了表面语法的相似性之外，C++与Java是截然不同的语言。在很多方面，Java更像Smalltalk&lt;font color="#ff0000"&gt;（译者按：我学习Java时用的是Sun的培训教材，里面清楚地写道：Java在设计上采用了与C++相似的语法，与Smalltalk相似的语义。所以可以说Java与C++是貌合神离，与Smalltalk才是心有灵犀）&lt;/font&gt;。Java语言相对简单，这部分是一种错觉，部份是因为这种语言还不完整。 &lt;font color="#8080ff"&gt;随 时间的推移，Java在体积和复杂程度上都会大大增长。在体积上它会增长两到三倍，而且会出现一些实现相关的扩展或者库。这是一条每个成功的商业语言都必须走过的发展之路。&lt;/font&gt;随便分析一种你认为在很大范围内取得了成功的语言，我知道肯定是无有例外者，而且实际上这非常有道理。&lt;br&gt;&lt;br&gt;上边这段话是在Java 1.1推出之前写的。&lt;font color="#8080ff"&gt;我确信Java需要类似模板的机制，并且需要增强对於固有类型的支持。 &lt;/font&gt;简单地说，就是为了基本的完整性也应该做这些工作。另外还需要做很多小的改动，大部份是扩展。1998年秋，我从James Gosling&lt;font color="#ff0000"&gt;（Java语言的创始人--译者）&lt;/font&gt;那 里得到一份建议书，说是要在Java中增加固有类型 操作符重载以及数学计算支持。还有一篇论文，是数学分析领域的世界级大师，伯克利大学的W. Kahan教授所写的How Java&amp;#39;s Floating-Point Hurts Everyone Everywhere&lt;font color="#ff0000"&gt;（&amp;quot;且看Java的浮点运算如何危害了普天下的芸芸众生&amp;quot;--译者）&lt;/font&gt;，揭露了Java的一些秘密。&lt;br&gt;&lt;br&gt;我 发现在电视和出版物中关於Java的鼓吹是不准确的，而且气势汹汹，让人讨厌。大肆叫嚣凡是非Java的代码都是垃圾，这是对程序员的侮辱；建议把所有的 保留代码都用Java重写，这是丧心病狂，既不现实也不负责任。Sun和他的追随者似乎觉得为了对付微软罪恶的&amp;quot;帝国时代&amp;quot;，就必须如此自吹自擂。但是侮 辱和欺诈只会把那些喜欢使用不同编程语言的程序员逼到微软阵营里去。&lt;br&gt;&lt;br&gt;&lt;font color="#8080ff"&gt;Java并非平台无关，它本身就是平台&lt;/font&gt;。跟Windows一样，它也是一个专有的商业平台。也就是说，你可以为Windows/Intel编写代码，也可以为Java/JVM编写代码，&lt;font color="#8080ff"&gt;在任何一种情况下，你都是在为一个属於某个公司的平台写代码，这些代码都是与该公司的商业利益扯在一起的。 &lt;/font&gt;当然你可以使用任何一种语言，结合操作系统的机制来编写可供JVM执行的程序，但是JVM之类的东西是强烈地偏向于Java语言的。它一点也不像是通用的 公平的 语言中立的VM/OS。&lt;br&gt;&lt;br&gt;私下里，我会坚持使用可移植的C++作大部份工作，用不同的语言作余下的工作。&lt;br&gt;&lt;font color="#ff0000"&gt;（&amp;quot;Java is not platform-independent, it is the platform&amp;quot;，B. S的这句评语对於C++用户有 很大的影响，译者在国外的几个新闻组里看到，有些C++高手甚至把这句话作为自己的签名档，以表明对Java的态度和誓死捍卫C++的决心。实际上有很多 程序员不光是把自己喜爱的语言当成一种工具，更当成一种信仰。--译者）&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;h3&gt;&lt;font color="#0000ff" size="3"&gt;4. 您怎麽看待C#语言？&lt;/font&gt;&lt;/h3&gt; &lt;p&gt;&lt;font size="3"&gt;就C#语言本身我没什麽好说的。想让我相信这个世界还需要另外一个专有的语言可不是一件容易的事，而且这个语言还是专门针对某一个专有操作系统的，这就更让我难以接受。直截了当地说，我不是一个专有语言的痴迷者，而是一个开放的正式标准的拥护者。&lt;/font&gt;&lt;/p&gt;&lt;br&gt;&lt;h3&gt;&lt;font color="#0000ff" size="3"&gt;5. 在做小项目时，C优于C++吗？&lt;/font&gt;&lt;/h3&gt; &lt;p&gt;&lt;font size="3"&gt;我认为非也。除了由於缺乏好的C++编译器而导致的问题之外，我从没有看到哪个项目用C会比用C++更合适。&lt;font color="#ff0000"&gt;（不过现在C++编译器导致的问题还是不可忽略的，当你看到同样功能的C++程序可执行代码体积比C大一倍而且速度慢得多时，会对此有所感触的。--译者）&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;h3&gt;&lt;font color="#0000ff" size="3"&gt; 6. 您预期C++做哪些增强，会不会删掉一些东西？&lt;/font&gt;&lt;/h3&gt; &lt;p&gt;&lt;font size="3"&gt;很不幸，虽然有一些东西很应该扔掉，但恐怕很难真的删掉任何东西。&lt;font color="#8080ff"&gt;第一个应该抛弃的东西就是C风格的造型机制和类型截断转换。就算不禁止，编译器的作者们至少也应该对这种行为给与强烈的警告。&lt;/font&gt;我希望能用类似vector的东西彻底取代数组，但这显然是不可能的。不过如果程序员们能主动使用vector来代替数组，就会立刻受益匪浅。关键是你不必再使用C++中最复杂难缠的技巧了，现在有优秀得多的替代方案。 &lt;br&gt;&lt;br&gt;至於主要的特性，&lt;font color="#8080ff"&gt;我没想去掉任何东西&lt;/font&gt;。特别是那些把C++与C区别开来的主要特性恐怕没法风平浪静的被抛掉。&lt;font color="#8080ff"&gt;通常问这些问题的人是希望我挑出诸如多继承 异常 模板等机制来接受批判。&lt;/font&gt;所以在这我想大声讲清楚，我认为&lt;font color="#8080ff"&gt;多继承机制对於静态类型语言实现继承性来说是必需的，异常机制是在大系统中对付错误的正确方法，模板机制是进行类型安全的 精致的和高效的程序设计的灵丹妙药 &lt;/font&gt;。我们可以在小的细节上对於这些机制挑挑刺，但在大的方面，这些基本的概念都必须坚持。&lt;br&gt;现在我们仍在学习标准C++，也正在标准所提供的特性基础上发展出更新的 更有趣的编程技术。特别是人们刚刚开始使用STL和异常机制，还有很多高效强大的技术鲜为人知，所以大可不必急匆匆的跑去增加什麽新的机制。&lt;br&gt;&lt;br&gt;我认为当前的重点是提供很多新的 比以前更加精致的 更有用的库，这方面潜力巨大。例如，如果有一个能被广泛使用的 更精致的支持 &lt;font color="#ff00ff"&gt;并发程序设计&lt;/font&gt;的库，那将是一大福音--C风格的线程库&lt;font color="#ff0000"&gt;（例如Pthread--译者）&lt;/font&gt;实在不够好。我们也就可以与各种其他的系统，例如SQL以及不同的组件模型更好地契合起来。数值计算领域的人们在这方面好像已经走在了前面，类似像Blitz++ POOMA MTL之类的高效而精致的库的开发已经取得了非凡的成就。&lt;font color="#ff0000"&gt; （译 者在Internet上造访了Blitz++和POOMA的主页，前者是一个高性能数学库，据称其性能与Fortran 77不相上下，同时又支持大量的C++特性。我想凡是对於数值计算领域有所了解的人都知道这有多麽伟大的意义。POOMA则是一个专门研究C++并行数学 算法的项目，它的前景更加不可限量。译者非常认同B. S的这个观念。--译者）&lt;/font&gt;&lt;br&gt;&lt;br&gt;有了足够的经验之後，我们就能更好的决定应该对标准做些什麽调整。&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;h3&gt;&lt;font color="#0000ff" size="3"&gt;7. 有没有计划往标准C++里增加一些新的特性以支持分布式计算？&lt;/font&gt;&lt;/h3&gt; &lt;p&gt;&lt;font size="3"&gt;没有，我也不认为有这个必要。用更好的库就差不多能解决问题了。最多，为了支持这类的库，我们可能会增加一些低级的原操作和规则&lt;br&gt;&lt;/font&gt;&lt;/p&gt; &lt;h3&gt;&lt;font color="#0000ff" size="3"&gt;8. 未来C++有没有可能定一个可移植的二进制接口？&lt;/font&gt;&lt;/h3&gt; &lt;p&gt;&lt;font size="3"&gt;如果你说的&amp;quot;可移植&amp;quot;是指跨硬件和块操作系统的可移植，我想回答是不会。我们当然可以设计一个解释器或者虚拟机&lt;font color="#ff0000"&gt;（如同Java的做法--译者）&lt;/font&gt;，但这样一来，由於无法以最优的方式访问系统资源，C++的能力就会受到削弱，。我真正希望在不远的将来能够看见的东西是&lt;font color="#8080ff"&gt;platform ABIs&lt;/font&gt; （ABI， Application Binary Interface） 。例如，&lt;font color="#8080ff"&gt;有人正在努力为Intel新的IA64体系定义C++ ABI，我想这些努力会得到用户们的巨大支持。能够把不同编译器产生的代码编译在一起将会是一项十分有意义的事情。&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;h3&gt;&lt;font color="#0000ff" size="3"&gt;9. 在不少流行领域，C++正在渐渐失去光芒，因为它要求人们花很大的精力去对付一些很基本的工作，比如管理内存（因为没有垃圾收集机制），管理模块之间的依 赖性（因为没有包机制），管理组件的版本。C++缺乏一些现代语言已经视为标准的特性。比如传言中最酷的Java语言就特别重视这些问题。那麽在解决这些 问题是否会导致C++的发展背离其根本宗旨呢？C++应该怎样发展以保证我们在这种语言上的投资能有合理的回报，而不是被迫去重新使用另一种语言？&lt;/font&gt;&lt;/h3&gt; &lt;p&gt;&lt;font size="3"&gt;我倒还没有注意到C++比以前用的少了。相反，我看到的指标表明C+的使用还在稳定地增长 。&lt;font color="#8080ff"&gt;只不过这种基数很大的稳定增长以及在标准性 移植性和库方面的不断提高并没有造成什麽具有欺骗性的新闻效应而已&lt;/font&gt;。我认为你所说的&amp;quot;失去光芒&amp;quot;只不过是市场推销和新闻意义上的现象。&lt;br&gt;&lt;br&gt;如果你需要垃圾收集机制的话，你可以在C++应用程序中插入一个垃圾收集器。有不少自由的和商业的垃圾收集器已经在重要的实践中被证明是很出色的。 &lt;br&gt;&lt;br&gt;&lt;font color="#8080ff"&gt;如果你不想使用垃圾收集机制，也没关系。你可以使用标准容器类，它们大大减少了对於显式分配和回收内存的需要&lt;/font&gt;。这样，使用现代的库和现代的编程风格，你能够避免大部份的内存管理问题。&lt;br&gt;&lt;br&gt;同样的技术还能够用来避免一般资源的管理问题。并不是只有内存才会泄漏，线程句柄 文件 互斥锁 网络连接等都是重要的资源，为了建立可靠的系统，这些资源必须被正确的管理。&lt;font color="#8080ff"&gt; 如果你觉得有了垃圾收集机制就可以解决所有的资源管理问题，那麽你最好赶快从美梦中醒来。&lt;/font&gt;&lt;br&gt;&lt;br&gt;C++提供了很多机制来管理一般性的资源。关键的手段--&amp;quot;Resource Acquisition is Initialization&amp;quot;&lt;font color="#ff0000"&gt;(这是著名的RAII惯用法，阅读原文时会经常遇到，其意义是说将所有的资源分配申请放在对象初始化过程中进行，而将资源释放动作放在对象销毁过程中――译者) &lt;/font&gt;可以使用函数对象来管理生存期问题。语言中关於对象的局部构造和异常机制对这项技术提供了支持。&lt;br&gt;&lt;br&gt;某些语言的狂热支持者总是用讽刺漫画的笔法描述C++，然而C++实际上要好得多。特别是我觉得很多其他的特性已经泛滥不堪了，在C++中，通常这些特性能够很容易的被模拟出来。相反的，新的语言在推广的过程中总是不断地增加新的特性，&lt;font color="#8080ff"&gt;这就是为什麽从一种语言诞生到被广泛使用，其体积通常会增加个两三倍。 &lt;/font&gt;&lt;br&gt;&lt;br&gt;目前，最为个人和组织，对於C++的最好投资就是去更好地理解标准C++和现代的C++设计编程技术。大多数人使用C++的方式实际上停留80年代中期的水平，甚至比那更陈旧。&lt;br&gt;&lt;br&gt;至於模块依赖性问题，我的观点是，在编程语言的工作和系统的工作之间应该有一个明显的界线，依赖关系应该尽可能地与编程语言分开，而由系统来支持。&lt;br&gt;&lt;br&gt;我不认为组建版本的问题应该由编程语言来解决，这是一个系统范畴里的问题，在语言里应该通过提供相应的库来解决。C++有这样的机制。 &lt;br&gt;&lt;br&gt;解决这样的问题不会使C++偏离轨道。但是给C++增加很多特殊的特性就会使C++偏离轨道，而且在保持可移植性和平台独立性方面也会是一个倒退。&lt;br&gt;&lt;/font&gt;&lt;/p&gt; &lt;h3&gt;&lt;font color="#0000ff" size="3"&gt;10. 标准C++推出有段时间了，Java也大踏步地往前走而且取得了显着的进步，您现在怎麽比较Java与C++？您觉得Java想要变成像C++一样&amp;quot;好&amp;quot; 的语言还需要做些什麽？您举的C++从Java身上学到了什麽经验吗？有没有什麽Java的特性您认为是可以被C++吸纳的？&lt;/font&gt;&lt;/h3&gt; &lt;p&gt;&lt;font size="3"&gt;我不比较语言。做好这项工作是十分困难的，而且很少具有专业水准。&lt;br&gt;&lt;br&gt;我认为C++的进步会是主要以它的用户在使用中遇到的问题以及其自身逻辑为基础。当然，其他语言中的某些思想也会被考虑，但不能被简单的移花接木过来。你必须审视那些机制在技术上和思想上的背景，并且找到在C++中支持这些技术的最佳方案。&lt;br&gt;&lt;br&gt;有 时最好的选择是综合使用几种语言。毕竟没有任何一种语言是放之四海而皆优的。C++现在是，将来也继续会是在广泛应用领域中最好的语言之一。但是，我们不 能被拉下水，不能把所有可能的特性都加到C++里面来向大众献媚。我认为Java和C++现在和将来都会是十分不同的语言，语法相似，但背後的对象模型明 显不同。&lt;br&gt;&lt;br&gt;&lt;font color="#8080ff"&gt;对於我来说，一个很重要的区别是C++有一个ISO标准，而Java则是一个专有语言。&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;h3&gt;&lt;font color="#0000ff" size="3"&gt;11. 在Java刚刚出现的那几年，有很多欺骗性的言论说它将会是终极语言，会取代C++。您觉得在过去两三年里Java对C++的追随者们有什麽影响？&lt;/font&gt;&lt;/h3&gt; &lt;p&gt;&lt;font size="3"&gt;到现在关於Java的不实之辞也还随处可见。暂且不提Java在过去5年间的创纪录的发展，狂热的大众似乎认为 Java将最终取代的不仅仅是C++，而且还有所有其他的编程语言。但在另一方面，C++的使用仍在继续增长。我不认为Java对於C++的影响已经使得 人们转而把本来打算用来创造更好的C++工具库的资源调过去开发Java工具库。Java对於学习编程的人来说没有太多的新东西，所以对於C++的定义也 没什麽影响。在那个领域，Java还得努力追赶。例如，&lt;font color="#8080ff"&gt;我认为为Sun迟早会往Java里加入类似模板的机制&lt;/font&gt;。&lt;/font&gt;&lt;/p&gt; &lt;font size="3"&gt;人们应该认识到C++和Java的目标是何等的不同。 以C++的设计理念来衡量Java，或是以Java的设计理念来衡量C++，得出的结论都不会很好。&lt;br&gt;&lt;br&gt;在访谈即将结束时，或许我该再次表明态度：C++仍然是我喜爱的语言，在写代码时你会发现没有那种语言能像它那样在如此广泛的应用领域和平台上同时达成如此的高效与精致。&lt;/font&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-9209738942519573193?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/9209738942519573193/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=9209738942519573193' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/9209738942519573193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/9209738942519573193'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/09/doctor-bjarnestroustrup.html' title='Doctor Bjarne.Stroustrup'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-6350395235634755282</id><published>2007-08-21T22:40:00.001+08:00</published><updated>2008-04-06T18:27:55.987+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>Difference between Java versions. etc.</title><content type='html'>学校的课本介绍的是 1.3版本的 JDK，现在用的是 1.6版本的 JDK，发现一些区别(不知道是不是课本上写错了)。&lt;br&gt;// version 1.3&lt;br&gt;String str = new String(&amp;quot;Java string&amp;quot;);&lt;br&gt;str.concat(&amp;quot;-test&amp;quot;);&lt;br&gt;// str 现在的值是 Java string-test&lt;br&gt;&lt;br&gt;// version 1.6&lt;br&gt;   String str = new String(&amp;quot;Java string&amp;quot;); &lt;br&gt; str.concat(&amp;quot;-test&amp;quot;);&lt;br&gt; // str 现在的值是 Java string&lt;br&gt;&lt;br&gt;在 BBS 上又发现了 Tie::File 模块，可以像操作 array 一样操作文件，真的很方便 :)&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;#! /usr/bin/perl&lt;/span&gt;&lt;br style="color: rgb(255, 102, 0);"&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;  use warnings;&lt;/span&gt;&lt;br style="color: rgb(255, 102, 0);"&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;use strict;&lt;/span&gt;&lt;br&gt;&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(255, 102, 0);"&gt;no strict&lt;/span&gt;; &lt;span style="color: rgb(51, 51, 255);"&gt;  # Tie::File 需取消 strict&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(255, 102, 0);"&gt;use Tie::File&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt; @msc;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;tie&lt;/span&gt; @msc, Tie::File, &amp;#39; &lt;span style="color: rgb(255, 0, 0);"&gt;MSC&lt;/span&gt;&amp;#39; &lt;span style="color: rgb(153, 51, 0);"&gt;or die&lt;/span&gt; $!;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(51, 51, 255);"&gt;# ---- 删除以 = 开头的行 ----&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;  my&lt;/span&gt; $line_counter = &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;for&lt;/span&gt; (@msc) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;if&lt;/span&gt; (&lt;span style="color: rgb(153, 51, 0);"&gt;  /&lt;/span&gt;^=&lt;span style="color: rgb(153, 51, 0);"&gt;/&lt;/span&gt;) { &lt;span style="color: rgb(153, 51, 0);"&gt;splice&lt;/span&gt;(@msc, $line_counter, 1) }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $line_counter++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;  untie&lt;/span&gt; @msc;&lt;br&gt;}&lt;br&gt;&lt;br&gt;又发掘了 vim 的一项强大功能，文档查找。shift+k 可以在指定的文档中查找当前关键字，而且可以设定编辑不同类型的文件时查找不同的文档。 Cool&lt;br&gt;autocmd FileType perl set keywordprg=perldoc\ -f &lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-6350395235634755282?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/6350395235634755282/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=6350395235634755282' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6350395235634755282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6350395235634755282'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/08/difference-between-java-versions-etc.html' title='Difference between Java versions. etc.'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-1861223095114318703</id><published>2007-08-07T21:59:00.001+08:00</published><updated>2007-08-08T10:27:06.973+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Big Prime number</title><content type='html'>HOHO~ 大数版本的 big_prime_judge ，使用了 Math::BigInt 模块。办公室的计算机 CPU 是 Celeron D 3G Hz ，计算超过 14 位的数就非常慢。文档中说使用&amp;nbsp; Math::BigInt::GMP 会快一些，但是我喜欢用标准库和纯 perl 的东西 ^^ ，何况如果需要计算更大的数值就要用 C++ 写了。&lt;br&gt;&lt;br&gt;用 big_prime_judge 判断 100个 16位十进制数在 PIII 上耗时 9小时56分钟， 判断 100个 17位十进制数算了 20个小时，还没算出来的时候停电了 m( _ _ )m&amp;nbsp; 下次没事的时候看看 java 的速度怎么样。&lt;br&gt;&lt;br&gt;PIII 机器：&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pentium III(Coppermine 864.793Hz&amp;nbsp;&amp;nbsp; cache size: 256KB)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM: 192 MB&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS: Fedora Core 4 (kernel 2.6.11)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;  use Math::BigInt &lt;/span&gt;;&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;sub&lt;/span&gt; big_prime_judge {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt; &lt;span style="color: rgb(153, 102, 51);"&gt;$n&lt;/span&gt; = &lt;span style="color: rgb(153, 102, 51);"&gt;    $_[&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(153, 102, 51);"&gt;]&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;    if&lt;/span&gt; (&lt;span style="color: rgb(153, 102, 51);"&gt;$n&lt;/span&gt; == &lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;    if&lt;/span&gt; (&lt;span style="color: rgb(153, 102, 51);"&gt;$n&lt;/span&gt; == &lt;span style="color: rgb(255, 0, 0);"&gt;3&lt;/span&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;    if&lt;/span&gt; (&lt;span style="color: rgb(153, 102, 51);"&gt;$n&lt;/span&gt; == &lt;span style="color: rgb(255, 0, 0);"&gt;5&lt;/span&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;    if&lt;/span&gt; (&lt;span style="color: rgb(153, 102, 51);"&gt;$n&lt;/span&gt; == &lt;span style="color: rgb(255, 0, 0);"&gt;7&lt;/span&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;    if&lt;/span&gt; (&lt;span style="color: rgb(153, 102, 51);"&gt;$n&lt;/span&gt; == &lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;    if&lt;/span&gt; (&lt;span style="color: rgb(153, 102, 51);"&gt;$n-&amp;gt;copy-&amp;gt;is_even()&lt;/span&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;    if&lt;/span&gt; (&lt;span style="color: rgb(153, 102, 51);"&gt;$n-&amp;gt;copy-&amp;gt;bmod(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;5&lt;/span&gt;&lt;span style="color: rgb(153, 102, 51);"&gt;)&lt;/span&gt; == &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;    );&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt; &lt;span style="color: rgb(153, 102, 51);"&gt;$factor&lt;/span&gt; = &lt;span style="color: rgb(153, 102, 51);"&gt;$n-&amp;gt;copy-&amp;gt;bsqrt()&lt;/span&gt; + &lt;span style="color: rgb(255, 0, 0);"&gt;    1&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt; &lt;span style="color: rgb(153, 102, 51);"&gt;$i&lt;/span&gt; = &lt;span style="color: rgb(153, 102, 51);"&gt;Math::BigInt-&amp;gt;new(&lt;/span&gt;&amp;#39;&lt;span style="color: rgb(255, 0, 0);"&gt;    3&lt;/span&gt;&amp;#39;&lt;span style="color: rgb(153, 102, 51);"&gt;)&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;for&lt;/span&gt; (; &lt;span style="color: rgb(153, 102, 51);"&gt;$i&lt;/span&gt;&amp;lt;=&lt;span style="color: rgb(153, 102, 51);"&gt;$factor &lt;/span&gt;; &lt;span style="color: rgb(153, 102, 51);"&gt;$i&lt;/span&gt;+=&lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;span style="color: rgb(153, 51, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;    if&lt;/span&gt; (&lt;span style="color: rgb(153, 102, 51);"&gt;$n-&amp;gt;copy-&amp;gt;bmod($i-&amp;gt;copy())&lt;/span&gt; == &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;) }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;    1&lt;/span&gt;;&lt;br&gt;}&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-1861223095114318703?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/1861223095114318703/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=1861223095114318703' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1861223095114318703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1861223095114318703'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/08/big-prime-number.html' title='Big Prime number'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-5905383347734054089</id><published>2007-08-06T22:12:00.001+08:00</published><updated>2007-08-08T10:27:06.973+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Perl Java</title><content type='html'>javascript 看着有点晕，把大学时候的 java 课本翻来出来，还是用 java 吧。还好，总算是学过的，语法用起来还挺轻松。通过两年前的 C++ 学习，我已经深得 OO 之精华 ^_^ 。&lt;br&gt;&lt;br&gt;晚上把 java 书上的一个例子用 perl 写了一遍，竟然提示编译错误，上下看几遍才发现漏了几个 perl 的变量前缀。汗，看来头脑里已经出现语言混乱的情况了。&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-5905383347734054089?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/5905383347734054089/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=5905383347734054089' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/5905383347734054089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/5905383347734054089'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/08/perl-java.html' title='Perl Java'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-4734728288828442935</id><published>2007-08-02T14:55:00.000+08:00</published><updated>2007-08-02T22:05:15.854+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>IBM Power6</title><content type='html'>IBM 公布了 Power6 处理器详细的信息。IBM Power6 的频率高达 4.7GHz！而且是64位的双核心产品，速度远高过前辈Power5一倍左右，但是依然只损耗相同的电量。&lt;br /&gt;&lt;br /&gt;IBM 利用先进的65nm制程技术打造出这颗Power6处理器，并由7.9亿晶体管所搭成，拥有8MB L2 Cache，为了能跟上处理器速度，还拥有300GB/s的频宽。&lt;br /&gt;&lt;br /&gt;家里现在的计算机是 AMD 3800+ 64bit 双核，2GHz 主频，比起 Power6 来还差远了。HOHo 什么时候 PC 上的处理器能像 Power6 这么强劲就爽了，不过应该不用太长时间，也就是 1、2 年的事。&lt;br /&gt;&lt;br /&gt;下面这幅图是 IBM  的工程师在检查  Power6 处理器&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://redspid.bloggerspaces.com/uploaded_images/20070522_power6-701660.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://redspid.bloggerspaces.com/uploaded_images/20070522_power6-701654.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-4734728288828442935?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/4734728288828442935/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=4734728288828442935' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4734728288828442935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4734728288828442935'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/08/ibm-power6.html' title='IBM Power6'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-6658223926270854492</id><published>2007-07-30T19:45:00.001+08:00</published><updated>2007-07-30T20:17:04.640+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Algorithm'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Goldbach Conjecture</title><content type='html'>验证哥德巴赫猜想：&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;$n&lt;/span&gt;;&lt;br&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;for&lt;/span&gt; (&lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt; $k&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;9999999000&lt;/span&gt;; &lt;span style="color: rgb(51, 102, 255);"&gt;$k&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(255, 0, 0);"&gt;9999999999&lt;/span&gt;; &lt;span style="color: rgb(51, 102, 255);"&gt;$k&lt;/span&gt; +=&lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(51, 102, 255);"&gt;$n&lt;/span&gt; = goldbach(&lt;span style="color: rgb(51, 102, 255);"&gt;$k&lt;/span&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;print &lt;/span&gt; &amp;quot;&lt;span style="color: rgb(51, 102, 255);"&gt;$k&lt;/span&gt; -&amp;gt; &lt;span style="color: rgb(51, 102, 255);"&gt;$n&lt;/span&gt; &amp;quot;, &lt;span style="color: rgb(51, 102, 255);"&gt;$k&lt;/span&gt; - &lt;span style="color: rgb(51, 102, 255);"&gt;$n &lt;/span&gt;, &amp;quot;&lt;span style="color: rgb(204, 0, 0);"&gt;\n&lt;/span&gt;&amp;quot;;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;# 由外部代码负责校验传给函数的参数正确：不小于6的偶数。&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;sub&lt;/span&gt; goldbach {&lt;br&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;$number&lt;/span&gt; = &lt;span style="color: rgb(51, 102, 255);"&gt;$_[&lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;]&lt;/span&gt;;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt; for&lt;/span&gt; (&lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;$i&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;3&lt;/span&gt;; $i&amp;lt;=($number/&lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;); $i+= &lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;next unless&lt;/span&gt; (prime_judge(&lt;span style="color: rgb(51, 102, 255);"&gt;$i&lt;/span&gt;));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt; return&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;$i&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;if&lt;/span&gt; (prime_judge(&lt;span style="color: rgb(51, 102, 255);"&gt;$number&lt;/span&gt; - &lt;span style="color: rgb(51, 102, 255);"&gt; $i&lt;/span&gt;));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;sub&lt;/span&gt; prime_judge {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt; my&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;$n&lt;/span&gt; = &lt;span style="color: rgb(51, 102, 255);"&gt;$_[&lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;]&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt; 1&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;if&lt;/span&gt; (&lt;span style="color: rgb(51, 102, 255);"&gt;$n&lt;/span&gt; == &lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt; 0&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;unless&lt;/span&gt; (&lt;span style="color: rgb(51, 102, 255);"&gt;$n&lt;/span&gt; % &lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt;  &lt;span style="color: rgb(51, 102, 255);"&gt;$factor&lt;/span&gt; = &lt;span style="color: rgb(153, 51, 0);"&gt;int&lt;/span&gt;(&lt;span style="color: rgb(153, 51, 0);"&gt;sqrt&lt;/span&gt;(&lt;span style="color: rgb(51, 102, 255);"&gt;$n&lt;/span&gt;)) + &lt;span style="color: rgb(255, 0, 0);"&gt; 1&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt;for&lt;/span&gt; (&lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;$i&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;3&lt;/span&gt;; &lt;span style="color: rgb(51, 102, 255);"&gt; $i&lt;/span&gt;&amp;lt;=&lt;span style="color: rgb(51, 102, 255);"&gt;$factor&lt;/span&gt;; &lt;span style="color: rgb(51, 102, 255);"&gt;$i&lt;/span&gt;+=&lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;span style="color: rgb(153, 51, 0);"&gt;return &lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;unless&lt;/span&gt; (&lt;span style="color: rgb(51, 102, 255);"&gt;$n&lt;/span&gt; % &lt;span style="color: rgb(51, 102, 255);"&gt;$i&lt;/span&gt;) }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(153, 51, 0);"&gt; return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;;&lt;br&gt;}&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-6658223926270854492?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/6658223926270854492/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=6658223926270854492' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6658223926270854492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6658223926270854492'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/07/goldbach-conjecture.html' title='Goldbach Conjecture'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-8250100142139348607</id><published>2007-07-30T19:03:00.001+08:00</published><updated>2007-07-30T20:17:04.640+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Algorithm'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Max common divisor</title><content type='html'>两个正整数最大公约数的欧几里德算法：&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;sub&lt;/span&gt; max_common_divisor {&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt;($m, $n) = @_;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt; $residue =  &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(153, 51, 0);"&gt;while&lt;/span&gt; (&lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;) {&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$residue = $m % $n;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(153, 51, 0);"&gt;    return&lt;/span&gt; $n &lt;span style="color: rgb(153, 51, 0);"&gt;unless&lt;/span&gt; ($residue);&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$m = $n;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$n = $residue;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br&gt;} &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-8250100142139348607?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/8250100142139348607/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=8250100142139348607' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8250100142139348607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8250100142139348607'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/07/max-common-divisor.html' title='Max common divisor'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-4647559129302361586</id><published>2007-07-29T19:31:00.001+08:00</published><updated>2007-07-30T20:17:04.641+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Algorithm'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Prime number</title><content type='html'>判断一个整数是否素数。刚才在网上搜了一下，竟然发现有人在到处找什么一百万以内、一亿以内的素数表，纳闷ing...，几行代码不就出来了么？还找个什么劲。&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;sub&lt;/span&gt; prime_judge {&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt; $n = $_[0];&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(153, 102, 51);"&gt; return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;  1&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;if&lt;/span&gt; ($n == &lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;); &lt;span style="color: rgb(51, 51, 255);"&gt;# 2 是唯一的偶数素数&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(153, 102, 51);"&gt;return &lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;unless&lt;/span&gt; ($n % &lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;); &lt;span style="color: rgb(51, 51, 255);"&gt;# 其它偶数为非素数&lt;/span&gt;&lt;br&gt;  &amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt; $factor = &lt;span style="color: rgb(153, 51, 0);"&gt;int&lt;/span&gt;(&lt;span style="color: rgb(153, 51, 0);"&gt;sqrt&lt;/span&gt;($n)) + &lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;;&lt;br&gt;   &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(153, 51, 0);"&gt;for&lt;/span&gt; (&lt;span style="color: rgb(153, 51, 0);"&gt;my&lt;/span&gt; $i=&lt;span style="color: rgb(255, 0, 0);"&gt;3&lt;/span&gt;; $i&amp;lt;=$factor; $i+=&lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;)&lt;br&gt;   &amp;nbsp;&amp;nbsp; &amp;nbsp;{ &lt;span style="color: rgb(153, 51, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;unless&lt;/span&gt; ($n % $i) }&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(153, 51, 0);"&gt;return&lt;/span&gt;    &lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;;&lt;br&gt;} &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-4647559129302361586?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/4647559129302361586/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=4647559129302361586' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4647559129302361586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4647559129302361586'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/07/prime-number.html' title='Prime number'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-6737287592928148655</id><published>2007-07-28T16:43:00.001+08:00</published><updated>2007-07-28T17:33:26.583+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeX'/><title type='text'>LaTeX note</title><content type='html'>看了 CTeX 的 LaTeX 入门视频教程，复习一下 LaTeX 最基本的知识。原来我的文档标题、作者、日期信息都是写在导言区的，现在才知道也可以写在文档环境中(\begin{document} 后面)，而且写在文档环境中应该在语法上更符合逻辑。&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\makebox[&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: rgb(255, 0, 0);"&gt; width&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;][&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: rgb(255, 0, 0);"&gt;pos&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;]{&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: rgb(255, 0, 0);"&gt; text&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;} TEXT&lt;/span&gt;&lt;span style="font-family: courier new,monospace;"&gt;&lt;br&gt;参数 width 是指盒子的宽度，参数 pos 接受一个字符，决定 text 的排列：c-居中、l-靠左、r-靠右、s-将文本均匀分布到整个盒子中。若盒子的宽度小于 text 的宽度，则 text 多出的部分就会与后继的文字 TEXT 重叠。 &lt;br&gt;for example: \makebox[1cm][c]{测试 makebox 指令} 重叠部分&lt;br&gt;\framebox 和 \makebox 完成同样的功能，只是 \framebox 将在包含的文字周围画一个矩形框。&lt;br&gt;&lt;br&gt;若文档中有中文字符，需要引用 color 宏包时，应将 color 宏包的引用指令写在 \begin{CJK}{GBK}{fs}后面，否则可能造成编译错误。即：&lt;br&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; \begin{CJK}{GBK}{fs}&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\usepackage{color}&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;指令&lt;/span&gt; \textcolor{color}{text} &lt;span style="color: rgb(0, 0, 0);"&gt; 为text着色，&lt;br&gt;指令 &lt;/span&gt;\colorbox{color}{text}&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new,monospace;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; 为text加底色&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-6737287592928148655?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/6737287592928148655/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=6737287592928148655' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6737287592928148655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6737287592928148655'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/07/latex-note.html' title='LaTeX note'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-1816405555379368599</id><published>2007-07-24T18:43:00.001+08:00</published><updated>2007-07-28T17:33:26.584+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeX'/><title type='text'>Customize LaTeX</title><content type='html'>创建新的命令：&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;\newcommand{&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: rgb(255, 102, 102);"&gt;name&lt;/span&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;}[num]{&lt;/span&gt;  &lt;span style="font-family: courier new,monospace; color: rgb(255, 102, 102);"&gt;definition&lt;/span&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;}&lt;/span&gt; 第一个参数 name 是想要创建的命令名称，参数 definition 是命令的定义，参数 num 是可选的，用于指定命令所需的参数数目，最多可有 9 个参数，若省略此项，则不接受参数。创建的新命令不能与已有的命令重名 &lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;\renewcommand&lt;/span&gt; 与上个命令语法相同，但可用于更改已有命令的定义。&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;\providecommand&lt;/span&gt; 与上面的语法相同，当创建的新命令与已有命令重名时，新命令被忽略&lt;/li&gt;&lt;/ul&gt;创建新的环境：&lt;br&gt;  &lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;\newenvironment{&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: rgb(255, 102, 102);"&gt;name&lt;/span&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;}[num]{&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: rgb(255, 102, 102);"&gt;  before&lt;/span&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;}{&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: rgb(255, 102, 102);"&gt;after&lt;/span&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;}&lt;/span&gt; 在参数 before 中提供的内容将在被命令包含的文本之前处理，而在参数 after 中提供的内容将恰好在 \end{name} 的前面处理。 &lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;\renewenvironment{&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: rgb(255, 102, 102);"&gt;name&lt;/span&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;}[num]{&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: rgb(255, 102, 102);"&gt;  before&lt;/span&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;}{&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: rgb(255, 102, 102);"&gt;after&lt;/span&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;}&lt;/span&gt; 与上面语法相同，但允许重新定义已有的环境。 &lt;/li&gt;&lt;/ul&gt;&lt;br&gt;自定义宏包：&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 写一个宏包的基本工作就是把原本很长的文档导言写入一个分离的文件中，这个文件的扩展名是 .sty ，并且在这个文件的开头要使用一个特殊命令 &lt;span style="color: rgb(255, 102, 102);"&gt;\Providespackage{&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: rgb(255, 102, 102);"&gt;  package name&lt;/span&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;}&lt;/span&gt; ，它用于告诉 LaTeX 宏包的名称，从而允许 LaTeX 在你尝试重复引入同一个宏包的时候给出错误提示。&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-1816405555379368599?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/1816405555379368599/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=1816405555379368599' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1816405555379368599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1816405555379368599'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/07/customize-latex.html' title='Customize LaTeX'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-4749275373745910434</id><published>2007-07-17T01:27:00.001+08:00</published><updated>2008-04-06T18:28:05.811+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>Google vs. China</title><content type='html'>这篇 blog 的标题本来是 &amp;quot;Google vs. baidu&amp;quot; ，想了想改成现在的名字，因为 Google 在中国市场面对的不仅仅是 baidu 。&lt;br&gt;近几天在 ChinaUnix bbs 和国内几个网站的新闻上攻击 Goolge 的评论和新闻突然多了起来，说 Google 的中文搜索质量不好、服务不好、做流氓软件搞软件捆绑等等。&lt;br&gt;Google 作为一个成功的企业到中国开拓市场，虽然有着强大的资金、技术支持，但也遇到了特殊的困难： &lt;br&gt;&lt;ol&gt;&lt;li&gt;本土化人才，虽然 Google在美国和其它国家获得了巨大的成功，但基本上它以前的搜索主要是面向英语和其它一些西方语言的，做中文搜索，还需要有好的了解中文和中国文化的技术专家；&lt;/li&gt;&lt;li&gt;中国特色，Google 本来坚守的&amp;quot;Don&amp;#39;t be evil&amp;quot;信条在进军中国市场的途中受到严峻的挑战。Googlepages 被封了，blogger 被封了，搜索结果被过滤了&lt;/li&gt;&lt;/ol&gt;     尤其是第二个问题，不是仅仅靠钱和技术能解决的。在这样的情况下和国内互联网企业竞争，压力自然不小。 &lt;br&gt;&lt;br&gt;我现在常用的 Google 服务： 搜索引擎(几乎离不开的)、picasaweb(网络图册)、blogger(blog服务)、Gmail(邮件)、igoogle(个性化主页)、Google 日历、Google 工具条、Google 桌面，另外 Google 实验室还提供了许多实用有趣的工具，例如 Google 趋势、机器翻译等。&lt;br&gt;&lt;br&gt;一个电视节目把 Google 搜索引擎出现之前的互联网时期称为&amp;quot;互联网的黑暗时代&amp;quot;，一点都不过分。Google 模式的搜索引擎在互联网上起到的作用，每一个使用 Internet 的人都应该有深切体会。 &lt;br&gt;blogger 提供了强大的 blog 服务，自由的、可完全定制的模板，可以方便地通过 email 发布日志(同时起到了备份的效果) 。可惜 blogspot 在国内登录不了，只能通过 ftp 转发。&lt;br&gt;加上 Gmail 我用过 8个(有7个是国内的)免费邮件服务，Gmail 是唯一不在邮件内容中添加广告的。&lt;br&gt;igoogle 可以在简洁的 Google 搜索首页添加各种个性化的、有趣实用的工具。我在上面添加了收藏夹，嘿嘿，再也不用为重装系统丢了收藏夹郁闷了，而且在任何一台机器上都可以用。 &lt;br&gt;&lt;br&gt;现在许多软件中都捆绑了 Google 工具条，但是把 Google 工具条定义为流氓软件纯属恶意攻击。首先，Google 工具条在安装前有明确的提示和选项，用户可以选择不安装它，而且不会对捆绑了 Google 工具条的软件造成任何影响。其次，在需要卸载 Google 工具条的时候，可以方便地彻底卸载它。更何况对于使用 Google 搜索的用户来说，它确实是一个非常方面实用的小工具。这样的软件能称为流氓软件么？ &lt;br&gt;为什么像 IE 那样流氓的捆绑方式、像中文网址那样流氓的强制安装都没多少人质疑，却有人不遗余力地攻击 Google 工具条，是不是另有隐情？&lt;br&gt;&lt;br&gt;还有非常重要的一点就是：Google 对于不同操作系统，尤其是 Unix-like 的系统兼容性非常好。指望国内公司开发 Linux 应用看来是够呛。Google DeskTop 已经出了 for Linux 版本，希望 Linux 下的 Google 应用越来越丰富，越来越好。  &lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-4749275373745910434?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/4749275373745910434/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=4749275373745910434' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4749275373745910434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4749275373745910434'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/07/google-vs-china.html' title='Google vs. China'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-2466022322105095191</id><published>2007-07-16T09:19:00.001+08:00</published><updated>2007-07-16T23:38:17.354+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>emule_Perl_JavaScript_etc.</title><content type='html'>公司封了 bt 的端口，现在改用 emule 了，HOHO~&amp;nbsp;&amp;nbsp;从软件授权来看我还是比较喜欢 emule ，但似乎在国内从资源方面来说，还是 bt 要丰富一些。&lt;br&gt;&lt;br&gt;Perl 现在对我来说有几个问题：&lt;br&gt;&lt;ul&gt;&lt;li&gt;	发布不方便，尤其需要用到标准发布版以外的模块时。在 windows 上用 PPM 安装，需要连接 Internet ，如果编译安装，windows 本身又没有 C/C++ 编译器，要另外安装(windows垃圾点之一)。 &lt;/li&gt;&lt;li&gt;	编写图形界面的程序不方便&lt;/li&gt;&lt;li&gt;	操作 windows 系统不太方便，这也是 windows 造成的问题。&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;论坛上看到有人用 javascript 写程序，挺好玩，一直对 java 没有好感，感觉 java 太复杂了(主要是 JVM 安装太麻烦，资源占用也比较大)，所以也没有认真看 javascript，虽然知道它们不是一回事，但名字也看着不爽。为了考虑改进我的 blog 模板，弥补一下 Perl 的部分空白，从网上下载了一部&amp;quot;JavaScript权威指南第四版&amp;quot;，是扫描版的，代码部分很模糊。 &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-2466022322105095191?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/2466022322105095191/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=2466022322105095191' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2466022322105095191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2466022322105095191'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/07/emuleperljavascriptetc.html' title='emule_Perl_JavaScript_etc.'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-4499890743357599488</id><published>2007-07-10T08:56:00.001+08:00</published><updated>2007-07-11T10:24:50.982+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Multi-processes</title><content type='html'>使用 fork() 时需要注意的问题：&lt;br&gt;&lt;br&gt;1. 记录 fork 出的子进程 id，收割进程时验证&lt;br&gt;2. parent process 和 child process 有各自独立的进程空间&lt;br&gt;3. 使用 exit 结束 child process&lt;br&gt;4. 已没有需要回收的 child process 时 wait() 返回 -1&lt;br&gt;&lt;br&gt;下面是测试局域网中机器联网状态的程序(使用 icmp 扫描，可接收到反馈则认为已联网)。 &lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(255, 153, 255);"&gt; #! /usr/bin/perl&lt;/span&gt;&lt;br style="color: rgb(255, 153, 255);"&gt;&lt;span style="color: rgb(255, 153, 255);"&gt;use warnings;&lt;/span&gt;&lt;br style="color: rgb(255, 153, 255);"&gt;&lt;span style="color: rgb(255, 153, 255);"&gt;use strict;&lt;/span&gt;  &lt;br&gt;&lt;br&gt;my &lt;span style="color: rgb(255, 153, 255);"&gt;$host_prefix&lt;/span&gt; = &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;#39;192.168.0.&amp;#39;&lt;/span&gt;;&lt;br&gt;my &lt;span style="color: rgb(255, 153, 255);"&gt;@hosts&lt;/span&gt;;&lt;br&gt;for (&lt;span style="color: rgb(255, 0, 0);"&gt;  80&lt;/span&gt; .. &lt;span style="color: rgb(255, 0, 0);"&gt;200&lt;/span&gt;) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my &lt;span style="color: rgb(255, 153, 255);"&gt;$host&lt;/span&gt; = &lt;span style="color: rgb(255, 153, 255);"&gt;$host_prefix&lt;/span&gt; . &amp;quot;&lt;span style="color: rgb(255, 153, 255);"&gt;  $_&lt;/span&gt;&amp;quot;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; push(&lt;span style="color: rgb(255, 153, 255);"&gt;@hosts&lt;/span&gt;, &lt;span style="color: rgb(255, 153, 255);"&gt;$host&lt;/span&gt;);&lt;br&gt;}&lt;br&gt;&lt;br&gt;my &lt;span style="color: rgb(255, 153, 255);"&gt;$number_of_process&lt;/span&gt;   = &lt;span style="color: rgb(255, 0, 0);"&gt;20&lt;/span&gt;;&lt;br&gt;my &lt;span style="color: rgb(255, 153, 255);"&gt;%counter_process&lt;/span&gt;;&lt;br style="color: rgb(255, 153, 255);"&gt;&lt;br style="color: rgb(255, 153, 255);"&gt;&lt;span style="color: rgb(255, 153, 255);"&gt;  use Net::Ping&lt;/span&gt;;&lt;br&gt;my &lt;span style="color: rgb(255, 153, 255);"&gt;$p&lt;/span&gt; = &lt;span style="color: rgb(255, 153, 255);"&gt;Net::Ping-&amp;gt;new&lt;/span&gt;(&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;#39;icmp&amp;#39;&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;  2&lt;/span&gt;);&lt;br&gt;for my &lt;span style="color: rgb(255, 153, 255);"&gt;$h&lt;/span&gt; (&lt;span style="color: rgb(255, 153, 255);"&gt;@hosts&lt;/span&gt;) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (keys(&lt;span style="color: rgb(255, 153, 255);"&gt;%counter_process&lt;/span&gt;) &amp;gt; &lt;span style="color: rgb(255, 153, 255);"&gt;  $number_of_process&lt;/span&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { reap_process(&lt;span style="color: rgb(255, 153, 255);"&gt;\%counter_process&lt;/span&gt;) }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (my &lt;span style="color: rgb(255, 153, 255);"&gt;$process&lt;/span&gt; = fork)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;span style="color: rgb(255, 153, 255);"&gt;  $counter_process&lt;/span&gt;{&lt;span style="color: rgb(255, 153, 255);"&gt;$process&lt;/span&gt;} = &lt;span style="color: rgb(255, 153, 255);"&gt;$h&lt;/span&gt; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elsif (defined(&lt;span style="color: rgb(255, 153, 255);"&gt;$process&lt;/span&gt;)) {&lt;br&gt;  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (&lt;span style="color: rgb(255, 153, 255);"&gt;$p-&amp;gt;ping&lt;/span&gt;(&lt;span style="color: rgb(255, 153, 255);"&gt;$h&lt;/span&gt;)) { print &amp;quot;&lt;span style="color: rgb(255, 153, 255);"&gt;$h&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;  is alive&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;\n&lt;/span&gt;&amp;quot; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else { print &amp;quot;&lt;span style="color: rgb(255, 153, 255);"&gt;$h&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;is not alive&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;  \n&lt;/span&gt;&amp;quot; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else { die &amp;quot;&lt;span style="color: rgb(255, 0, 0);"&gt;Something wrong at this&lt;/span&gt; &lt;span style="color: rgb(255, 153, 255);"&gt; $! &lt;/span&gt;&amp;quot; }&lt;br&gt;}&lt;br&gt;&lt;span style="color: rgb(255, 153, 255);"&gt;$p&lt;/span&gt;-&amp;gt;close;&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt; while (reap_process(&lt;span style="color: rgb(255, 153, 255);"&gt;\%counter_process&lt;/span&gt;  ));&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;# functions definition -----------------&lt;/span&gt;&lt;br&gt;sub reap_process {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my &lt;span style="color: rgb(255, 153, 255);"&gt;$process_hash&lt;/span&gt; = &lt;span style="color: rgb(255, 153, 255);"&gt;  $_&lt;/span&gt;[&lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my &lt;span style="color: rgb(255, 153, 255);"&gt;$pid&lt;/span&gt; = wait;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt; if (&lt;span style="color: rgb(255, 153, 255);"&gt;  $pid&lt;/span&gt; == &lt;span style="color: rgb(255, 0, 0);"&gt;-1&lt;/span&gt;);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete(&lt;span style="color: rgb(255, 153, 255);"&gt;$process_hash&lt;/span&gt;-&amp;gt;{&lt;span style="color: rgb(255, 153, 255);"&gt;$pid&lt;/span&gt;}) or warn(&amp;quot;&lt;span style="color: rgb(255, 0, 0);"&gt;  Cannot see&lt;/span&gt; &lt;span style="color: rgb(255, 153, 255);"&gt;$pid&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;\n&lt;/span&gt;&amp;quot;);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;; # if reap a child&lt;br&gt;}&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-4499890743357599488?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/4499890743357599488/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=4499890743357599488' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4499890743357599488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4499890743357599488'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/07/multi-processes.html' title='Multi-processes'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-1995868025251459512</id><published>2007-07-04T12:38:00.001+08:00</published><updated>2007-07-11T10:24:44.611+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>Echo's story</title><content type='html'>记得在 BASH 中的 echo 命令么？在希腊神话中，Echo 是一位最漂亮的仙女，也是一位最不幸的女神。Zeus(众神之王宙斯)爱上了 Echo，Hera(Zeus的lp赫拉)便迁怒于 Echo，罚她永远不能说自己的话，只能重复别人对她说过的话。&lt;br&gt;然而 Echo 爱上了 Narcissus。他是一位英俊而高傲的美男子，每一个见过他的姑娘都会深深爱上他，可 Narcissus 却对她们不屑一顾。&lt;br&gt;Echo 对他最为痴情，但她却不能对 Narcissus 倾吐衷肠，只能像影子一样追随着他。无情的 Narcissus 对 Echo 很反感，竟对她说：&amp;quot;你别梦想我会为你着迷！&amp;quot;可怜的 Echo 只能不断重复：&amp;quot;我为你着迷！我为你着迷！……&amp;quot; Narcissus 却拂袖而去。&lt;br&gt;羞愧万分的 Echo 躲进山洞，终日少言寡语，形销骨立，直到整个玉体全部消失，只留下她的声音，在山洞里日复一日地重复着别人说的话。&lt;br&gt;Echo 这个词也因此进入英语中，有回音、回声、重复、随声附和之意。残酷无情的 Narcissus 也因爱恋自己在水中的倒影，最终憔悴而死，化成一朵水仙花。Narcissus 和水仙花也成为自恋的象征。&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-1995868025251459512?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/1995868025251459512/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=1995868025251459512' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1995868025251459512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1995868025251459512'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/07/echos-story.html' title='Echo&apos;s story'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-8982861770211810558</id><published>2007-07-04T08:40:00.001+08:00</published><updated>2007-07-30T20:16:29.841+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Algorithm'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Area of Squares</title><content type='html'>&lt;span style="color: rgb(255, 153, 255);"&gt;#! /usr/bin/perl&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(255, 153, 255);"&gt;use warnings;&lt;/span&gt;&lt;span style="color: rgb(255, 153, 255);"&gt;&lt;br&gt;use strict;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;   =problem&lt;/span&gt;&lt;br&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;   author: &lt;a href="mailto:redspid@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; redspid@gmail.com&lt;/a&gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;     计算下图中所有正方形的面积之和&lt;/span&gt;&lt;br&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;   _____________&lt;br&gt;&lt;/span&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;  |__|__|__|__|__|&lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;   00 01 02 03 04 05&lt;/span&gt;&lt;br&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;  |__|__|__|__|__| &lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;&amp;nbsp;&amp;nbsp;   10 11 12 13 14 15&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(102, 51, 255);"&gt; &lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;  |__|__|__|__|__|&lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;   &amp;nbsp;&amp;nbsp;   20 21 22 23 24 25&lt;/span&gt;&lt;br&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;  |__|__|__|__|__|&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;  30 31 32 33 34 35&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(102, 51, 255);"&gt; &lt;/span&gt;  &lt;span style="color: rgb(102, 51, 255);"&gt;   |__|__|__|__|__|&lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;&amp;nbsp;&amp;nbsp;   40 41 42 43 44 45&lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;&lt;br&gt;&lt;/span&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;  |__|__|__|__|__|&lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;   &amp;nbsp;&amp;nbsp;   50 51 52 53 54 55&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;&lt;br&gt;&lt;/span&gt;  &lt;span style="color: rgb(102, 51, 255);"&gt;=cut&lt;/span&gt;&lt;br&gt;&lt;br style="color: rgb(51, 102, 255);"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;# 开启整数环境。使用整数环境后， &lt;/span&gt;&lt;br style="color: rgb(51, 102, 255);"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;# 可计算大正方形的最大边长减小，因整数数值范围比浮点数小&lt;/span&gt;&lt;br style="color: rgb(51, 102, 255);"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;# 但计算速度有所提升。&lt;/span&gt;&lt;br style="color: rgb(51, 102, 255);"&gt;  &lt;span style="color: rgb(51, 102, 255);"&gt;# dprofpp 测试结果显示：&lt;/span&gt;&lt;br style="color: rgb(51, 102, 255);"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;# 大正方形边长为 120个单位时速度约提升 5% 。&lt;/span&gt;&lt;br style="color: rgb(51, 102, 255);"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;  # 大正方形边长越大，速度提升越明显。&lt;/span&gt;&lt;br style="color: rgb(255, 153, 255);"&gt;&lt;span style="color: rgb(255, 153, 255);"&gt;&lt;br&gt;use integer&lt;/span&gt;;&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(51, 0, 51);"&gt;my&lt;/span&gt; &lt;span style="color: rgb(255, 153, 255);"&gt;    $n&lt;/span&gt; = &lt;span style="color: rgb(255, 102, 102);"&gt;20&lt;/span&gt;; &lt;span style="color: rgb(51, 102, 255);"&gt;# 大正方形边长&lt;/span&gt;&lt;br&gt;my &lt;span style="color: rgb(255, 153, 255);"&gt;$area&lt;/span&gt; = &lt;span style="color: rgb(255, 102, 102);"&gt;    0&lt;/span&gt;;&lt;br&gt;&lt;br&gt;for my &lt;span style="color: rgb(255, 153, 255);"&gt;$row&lt;/span&gt; (&lt;span style="color: rgb(255, 102, 102);"&gt;0 &lt;/span&gt;.. &lt;span style="color: rgb(255, 153, 255);"&gt;$n&lt;/span&gt;-&lt;span style="color: rgb(255, 102, 102);"&gt;    1&lt;/span&gt;) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for my &lt;span style="color: rgb(255, 153, 255);"&gt;$col&lt;/span&gt; (&lt;span style="color: rgb(255, 102, 102);"&gt;0&lt;/span&gt; .. &lt;span style="color: rgb(255, 153, 255);"&gt;$n&lt;/span&gt;-&lt;span style="color: rgb(255, 102, 102);"&gt;    1&lt;/span&gt;) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my &lt;span style="color: rgb(255, 153, 255);"&gt;$m&lt;/span&gt; = &lt;span style="color: rgb(255, 153, 255);"&gt;$row&lt;/span&gt; &amp;gt; &lt;span style="color: rgb(255, 153, 255);"&gt;$col&lt;/span&gt; ? &lt;span style="color: rgb(255, 153, 255);"&gt;    $n&lt;/span&gt;-&lt;span style="color: rgb(255, 153, 255);"&gt;$row&lt;/span&gt; :&lt;span style="color: rgb(51, 255, 255);"&gt; &lt;span style="color: rgb(255, 153, 255);"&gt;$n&lt;/span&gt;&lt;/span&gt;-&lt;span style="color: rgb(255, 153, 255);"&gt;$col&lt;/span&gt;;&lt;br&gt;   &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (&lt;span style="color: rgb(51, 255, 255);"&gt; &lt;span style="color: rgb(255, 153, 255);"&gt;$m&lt;/span&gt;&lt;/span&gt; == &lt;span style="color: rgb(255, 102, 102);"&gt;1&lt;/span&gt;) { &lt;span style="color: rgb(255, 153, 255);"&gt;$area&lt;/span&gt;   +=  &lt;span style="color: rgb(255, 102, 102);"&gt;1&lt;/span&gt; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else { for my &lt;span style="color: rgb(255, 153, 255);"&gt; $i&lt;/span&gt; (&lt;span style="color: rgb(255, 102, 102);"&gt;1&lt;/span&gt; .. &lt;span style="color: rgb(255, 153, 255);"&gt;  $m &lt;/span&gt;) { &lt;span style="color: rgb(255, 153, 255);"&gt;$area&lt;/span&gt; += &lt;span style="color: rgb(255, 153, 255);"&gt;$i&lt;/span&gt; *&lt;span style="color: rgb(255, 153, 255);"&gt;$i&lt;/span&gt; } }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;br&gt;print &lt;span style="color: rgb(255, 153, 255);"&gt;   $area&lt;/span&gt;, &amp;quot;&lt;span style="color: rgb(255, 102, 102);"&gt;\n&lt;/span&gt;&amp;quot;; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-8982861770211810558?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/8982861770211810558/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=8982861770211810558' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8982861770211810558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8982861770211810558'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/07/area-of-squares_04.html' title='Area of Squares'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-2151322856080835454</id><published>2007-06-27T22:51:00.001+08:00</published><updated>2007-07-02T09:07:19.706+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>O'Reilly radar</title><content type='html'>&lt;a href="http://radar.oreilly.com"&gt;http://radar.oreilly.com&amp;nbsp;&amp;nbsp; &lt;/a&gt;Oreilly 雷达 -- 技术类 Blog&lt;br&gt;&lt;br&gt;这是你能够阅读到 Tim O&amp;#39;Reilly(著名的 O&amp;#39;Reilly 出版公司的创始人)和其它人讨论有关于网络、编程、开放源代码运动、知识产权、政策、Web 2.0 和其它前沿科技的地方。 每一篇 blog 还有语音阅读，可以练习英语听力 :) &lt;br&gt;&lt;p&gt; O&amp;#39;Reilly Media,Inc. 是世界上在 UNIX、X、Internet 和其他开放系统图书领域具有领导地位的出版公司，同时是联机出版的先锋。尤其是在自由软件和开放源代码软件图书上占据着绝对领先的位置。&lt;/p&gt;&lt;p&gt; 从最畅销的《The Whole Internet User&amp;#39;s Guide &amp;amp; Catalog》（被纽约公共图书馆评为二十世纪最重要的50本书之一）到 GNN（最早的Internet门户和商业网站），再到 WebSite（第一个 桌面 PC 的 Web 服务器软件），O&amp;#39;Reilly Meida,Inc .一直处于 Internet 发展的最前沿。&lt;/p&gt;&lt;p&gt;我通过阅读 O&amp;#39;Reilly 出版的图书，学习了 Perl、MySQL、CSS 。O&amp;#39;Reilly 的图书作者大部分都是所在领域的专家、学者，更多是有实际经验的工程师，他们了解所有的技术实现细节，了解读者的需求。如果对计算机某个领域有兴趣，毫无疑问，O&amp;#39;Reilly 的图书是最好的向导。只是现在出版的很多书籍都没有中文版本，不过没关系，看原著吧，专家和工程师们已经用最朴实简洁的表达描绘了我们想知道和应该知道的一切。 :) &lt;br&gt;&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-2151322856080835454?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/2151322856080835454/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=2151322856080835454' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2151322856080835454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2151322856080835454'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/oreilly-radar.html' title='O&apos;Reilly radar'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-3029945132247605205</id><published>2007-06-27T18:22:00.001+08:00</published><updated>2007-06-27T19:28:17.011+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>many jokes :)</title><content type='html'>"我看不清太远的东西，"病人对眼科医生说。&lt;br /&gt;"请跟我来，"医生把病人带到外面，用手指着天上的太阳，问道，"你看那是什么？"&lt;br /&gt;"太阳。"病人回答。&lt;br /&gt;"那你还想看多远！"&lt;br /&gt;----------------------------------&lt;br /&gt;有一位病人来找精神科医师.&lt;br /&gt;病人: 我一直觉得我是一只鸟.&lt;br /&gt;医生: 喔.那很严重喔.从什么时候开始的?&lt;br /&gt;病人: 从我还是一只小鸟的时候.&lt;br /&gt;----------------------------------&lt;br /&gt;有两个神经病患，从病院里逃出来。两人跑啊跑，爬到一棵树上。其中一个人从树上跳下来滚啊滚的，然後抬起头对上面的人说：喂------你怎么还不下来啊---------？&lt;br /&gt;上面的那个人回答他：不---行---啊------我还没有熟透-----------&lt;br /&gt;-----------------------------------&lt;br /&gt;精神病人甲问乙说："你看我最近完成的这本小说怎么样"？&lt;br /&gt;乙看了看回答："不错不错，不过，就是人物多了点儿。"&lt;br /&gt;这时，精神病院的护士进来说："你们把电话号码本给我放回去！"&lt;br /&gt;-----------------------------------&lt;br /&gt;两位精神病人A君B君同时康复，他们的主治医生对他们说："如果你们其中的一个人犯病了，另外一个人就要马上把他送会医院。&lt;br /&gt;"突然一天，医生的电话铃响了起来，&lt;br /&gt;原来是A君："不得了了，B君从今天早上开始爬在我家的厕所里，非说他是我的马桶。&lt;br /&gt;""快，快把他送来啊！"&lt;br /&gt;A君沉默片刻："那……我不就没马桶了吗？"&lt;br /&gt;---------------------------------&lt;br /&gt;有一个神经病院，那里住着很多神经病。一天，那里的院长为了观察一下患者们恢复的情况，想了一个办法。&lt;br /&gt;就对这些患者说：你们都过来。&lt;br /&gt;说着在墙上画了一个门， 说："今天，你们谁把这个门打开就可以回家了。"&lt;br /&gt;精神病者们一听，便一拥而上，把那画的门围了起来。&lt;br /&gt;院长觉得很失望，这时他发现有一个患者还坐在原来的位置没动，觉得还行，&lt;br /&gt;就上前问到："你为什么不去开门？"&lt;br /&gt;他看了看院长,偷偷的说："我这有钥匙。"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-3029945132247605205?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/3029945132247605205/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=3029945132247605205' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3029945132247605205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3029945132247605205'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/many-joks.html' title='many jokes :)'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-4539519227526361645</id><published>2007-06-21T20:20:00.000+08:00</published><updated>2007-06-27T19:24:23.027+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>a joke</title><content type='html'>From ChinaUnix bbs:&lt;br /&gt;&lt;br /&gt;前几天我正在办公室用电脑打公文时.... 老板走到我身边，一看到电脑萤幕之后竟然大摇其头。&lt;br /&gt;&lt;br /&gt;然后老板又说：“我说啊，虽然电脑是你打报告而批准买给你的，但你也不能这样嘛！年轻人~”&lt;br /&gt;&lt;br /&gt;于是在老板的坚决要求下.... 我很无奈，&lt;br /&gt;&lt;br /&gt;只好把桌面上 ....&lt;br /&gt;&lt;br /&gt;打的时候还在发抖~~&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://redspid.bloggerspaces.com/uploaded_images/company_computer-757427.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://redspid.bloggerspaces.com/uploaded_images/company_computer-757425.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-4539519227526361645?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/4539519227526361645/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=4539519227526361645' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4539519227526361645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4539519227526361645'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/jok.html' title='a joke'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-9027077777771897506</id><published>2007-06-15T17:51:00.001+08:00</published><updated>2007-06-17T16:49:31.348+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Traversing Contents in Perl</title><content type='html'>&lt;span style="color: rgb(255, 0, 0);"&gt;#! /usr/bin/perl&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;# 从一个目录开始，递归遍历此目录下的所有目录&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; use warnings;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;use strict;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;sub do_something { &lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; open(FILE, &amp;#39;&amp;gt;&amp;#39;, &amp;#39;text_file.txt&amp;#39;) or die $!;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; print FILE &amp;#39;Traversing Contents&amp;#39;;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; close FILE;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;}&lt;/span&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;sub traversing {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chdir($_[0]);&lt;/span&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my @files = glob(&amp;#39;*&amp;#39;);&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for my $f (@files) { &lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (-d $f) {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; over_d($f);&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do_something(); # 此行在开始的目录下不执行&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chdir(&amp;#39;..&amp;#39;);&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;}&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;# main&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;traversing(&amp;#39;./&amp;#39;); # 从当前目录开始, let&amp;#39;s go :)&lt;/span&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-9027077777771897506?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/9027077777771897506/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=9027077777771897506' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/9027077777771897506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/9027077777771897506'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/traversing-contents-in-perl.html' title='Traversing Contents in Perl'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-75420397495761939</id><published>2007-06-15T17:12:00.001+08:00</published><updated>2007-06-17T16:48:40.681+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>IBM - Blue Gene</title><content type='html'>2006年11月，在刚公布的全球超级计算机500强榜单中，基于IBM Power技术的超级计算机数量的大量增加帮助 IBM 在全球超级计算机500强榜单上继续保持排名第一。IBM的系统在全球最强大的500台超级计算机中占据了237台，同时占据了总处理能力的49.6%。&lt;br&gt;&lt;br&gt;IBM 与美国能源部国家核安全管理局共同开发并安装在 Lawrence Livermore 国家实验室中的 IBM Blue Gene/L 系统在排行榜上名列第一，其连续计算性能高达每秒钟  280.6Teraflop(或每秒数万亿次浮点运算)。另外，基于 IBM BladeCenter JS21刀片服务器并安装在巴塞罗那超级计算中心的 IBM 超级计算机 MareNostrum 重新夺得欧洲最强大超级计算机的称号。&lt;br&gt;&lt;br&gt;与今年6月公布的上一次榜单相比，基于 Power 架构的系统的数量从83个增加到91个，IBM 在不同计算平台上的优势进一步推进了 IBM 业界的领先地位。与上次榜单相比，Blue Gene 系统的数量从24个增加到了28个，而基于 AMD Opteron 的 IBM 集群系统的数量从31个增加到了55个。 &lt;br&gt;&lt;br&gt;自2006年 6月公布上次全球超级计算机500强榜单以来，IBM BladeCenter 系统的数量从132个增加到145个。在11月公布的榜单中，基于 IBM BladeCenter 技术的系统提供了超过636Teraflop的总性能。IBM BladeCenter 系统通过将服务器、存储、网络和软件全部融合在一个系统之中，为客户提供了一种创新和高密度的计算解决方案。&lt;br&gt;&lt;br&gt;IBM 深度计算部门副总裁Dave Turek表示："IBM 继续保持了在超级计算领域的领先地位，这同我们能够为客户提供当前业界最广泛的高性能计算解决方案系列是分不开的。IBM 的系统在很多情况下都是通过与我们客户的合作来完成设计和部署的，这些系统正在拓展科学发现的边界，并帮助我们的商业客户展现虚拟世界和高级仿真并推动实现深入创新。" &lt;br&gt;&lt;br&gt;　　同 Lawrence Livermore 国家实验室的 Blue Gene/L 系统共同进入500强前5名的超级计算机包括 IBM 自己的性能达到91.29Teraflop的 Blue Gene/L Watson 系统、Lawrence Livermore 国家实验室的现在性能达到75.76Teraflop的 ASC Purple 超级计算机，以及巴塞罗那超级计算中心的 MareNostrum 超级计算机，这台使用全新JS21刀片服务器升级的超级计算机性能达到了62.63Teraflop， 比以前增加了一倍。其中，Blue Gene/L 系统和 Purple 系统都是属于美国国家核安全管理局高级仿真和计算(ASC)计划的系统，专门用于确保在无需进行地下核试验的情况下保证美国核武器库的安全性、保密性和可靠性。&lt;br&gt;&lt;br&gt;在这次公布的全球超级计算机500强榜单上，超级计算机的计算性能总和达到3.527Petaflop，而 IBM 技术提供了其中超过1.75Petaflop的处理能力，比差距最小的竞争对手多出1Petaflop以上。IBM的系统在榜单上最强的10席中占据了4 席。另外，IBM 还在前100席中占据了44席。 &lt;br&gt;&lt;br&gt;全球超级计算机500强中有关IBM的重点内容：&lt;br&gt;&lt;br&gt;在全球最强大的超级计算机前5名中占据了4个，它们是：Blue Gene/L系统(美国能源部/NNSA/LLNL，处理能力280.6Teraflop)、Watson 研究中心的 Blue Gene/W 系统、Lawrence Livermore 国家实验室的 ASC Purple 超级计算机，以及巴塞罗那超级计算中心的 MareNostrum JS21集群；&lt;br&gt; &lt;br&gt;在全球超级计算机500强榜单中占据237个，占总数的47.4%；&lt;br&gt;&lt;br&gt;在3527 Teraflop的已安装总处理能力中占据了1750 Teraflop的处理能力，占总处理能力的49.6%；&lt;br&gt;&lt;br&gt;在前10名超级计算机中占据4个，是所占数量最多的单独厂商；&lt;br&gt;&lt;br&gt;　　在前20名超级计算机中所占数量最多，达到6个，占30%；&lt;br&gt;&lt;br&gt;　　在前100名超级计算机中所占数量最多，达到44个，占44%；&lt;br&gt; &lt;br&gt;　　在全部361个集群系统中所占数量最多，达到171个，占47.3%；&lt;br&gt;&lt;br&gt;　　美国速度最快的计算机――Lawrence Livermore 国家实验室的 Blue Gene/L 系统；&lt;br&gt;&lt;br&gt;　　欧洲速度最快的计算机――巴塞罗那超级计算中心的 MareNostrum JS21集群。&lt;br&gt;&lt;br&gt;另外，IBM 的4个全新 Blue Gene 系统也在这次全球超级计算机500强榜单上首次露面，其中一个系统安装在哈佛大学。 &lt;br&gt;&lt;br&gt;自2004 年11月 IBM 宣布以商业形式提供 IBM System Blue Gene 解决方案(该研究项目的商业版本)以来，全球超级计算机500强榜单上已经创纪录地出现了28个 Blue Gene 系统。基于 IBM Power 架构并经过专门优化的 IBM System Blue Gene 解决方案在提供处理大量数据所需的带宽、可扩展性和能力的同时，其功耗和占地空间仅相当于当今速度最快系统的一小部分。目前，IBM 与其合作伙伴正在开发一系列不断增长的高性能计算(HPC)应用，包括基于 Blue Gene 的生命科学、金融建模、流体力学、量子化学、分子力学，天文学、空间研究和气候建模等解决方案。 &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-75420397495761939?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/75420397495761939/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=75420397495761939' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/75420397495761939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/75420397495761939'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/ibm-blue-gene.html' title='IBM - Blue Gene'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-1579182233446668281</id><published>2007-06-15T12:29:00.001+08:00</published><updated>2007-06-17T16:49:31.349+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Speed up the programes</title><content type='html'>判断数组是否为空，几种方法的效率比较：&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Total Elapsed Time&amp;nbsp;&amp;nbsp; User+System Time&lt;br&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;if($a[0])&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 1&lt;br&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; if(exists($a[0]))&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.23&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.22&lt;br&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;if($#a)&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.03&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.02&lt;br&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;if(@a) &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.09 &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-1579182233446668281?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/1579182233446668281/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=1579182233446668281' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1579182233446668281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1579182233446668281'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/speed-up-programes.html' title='Speed up the programes'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-1887163020887491646</id><published>2007-06-15T09:18:00.000+08:00</published><updated>2007-06-17T16:48:40.681+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>System Watch &amp; Management</title><content type='html'>uname -a&amp;nbsp; &amp;nbsp; 系统版本信息等&lt;br&gt;ps aux&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 当前进程&lt;br&gt;nice&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 进程优先级&lt;br&gt;renice&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 调整系统中已存在的进程优先级&lt;br&gt;fuser&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 使用某资源的进程&lt;br&gt;lsof&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 进程使用的资源&lt;br&gt;pidof&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 查看 PID&lt;br&gt;dmesg&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 核心启动信息&lt;br&gt;netstat&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 网络状态 &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-1887163020887491646?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/1887163020887491646/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=1887163020887491646' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1887163020887491646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/1887163020887491646'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/system-watch-management.html' title='System Watch &amp; Management'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-6238143898867709055</id><published>2007-06-15T00:41:00.001+08:00</published><updated>2007-06-17T16:50:38.520+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>Input method</title><content type='html'>使用中文输入法的经历：应该是从 智能ABC 开始(用了5、6年)，全拼一开始就被我抛弃了，但是全拼输入法的字库比 ABC 全一点，有些字需要用全拼才能输入，所以电脑上一般都保留 智能ABC 和 全拼 两种输入法。在同事的推荐下改用 紫光拼音v6(大约用了两个月)，又在杨经理的推荐下转到 搜狗拼音。刚用紫光的时候感觉比 ABC 强多了，现在又感觉 搜狗 比紫光强多了，呵呵。&lt;br&gt;&lt;br&gt;不久前 Google 盗用 搜狗 输入法词库的事情炒得沸沸扬扬，我相信 Google 的技术做出更好的输入法应该不是难事，但就目前而言，似乎 搜狗输入法 更胜一筹。 &lt;br&gt;安装程序大小 google 8.9M，搜狗 7.7M；皮肤：搜狗可换，google不可换；输入效率和组词的准确率据网上评论(我现在还没用过google输入法) google输入法也没有太大的优势，所以暂时观望，等待 google 中文输入法的下个版本。&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-6238143898867709055?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/6238143898867709055/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=6238143898867709055' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6238143898867709055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/6238143898867709055'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/input-method.html' title='Input method'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-4954556782776420344</id><published>2007-06-15T00:31:00.001+08:00</published><updated>2007-06-17T16:50:20.099+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google search</title><content type='html'>谷歌搜索遥遥领先 成功背后的秘密&lt;br&gt;2007.06.04&amp;nbsp; from:新浪科技&amp;nbsp; 马丁&lt;br&gt;&lt;br&gt;搜索是重中之重&lt;br&gt;&lt;br&gt;　　随着企业规模不断扩大，谷歌开始向多个领域进军，包括网络地图、数字图书馆、视频共享以及桌面软件等等。但是，谷歌的重中之重仍然是搜索引擎。通过谷歌搜索引擎，用户可以在浩如烟海的大量信息中找到自己需要的内容。正因为有了出色的搜索引擎，谷歌才成为了访问量最大、利润最为丰厚、甚至最为强大的互联网公司。&lt;br&gt;&lt;br&gt; 　　不过，搜索引擎给谷歌招致的抱怨也最多。每天都有数百万用户在使用谷歌搜索引擎之后感到失望，因为他们无法找到自己需要的旅馆、医药处方、或者人物背景。谷歌经常能帮助用户找到想要的东西，但并非总能做到这一点。基于这一原因，阿米特・辛格哈尔(Amit Singhal)和其它数百名工程师一直致力于改进谷歌搜索引擎，希望能缩小"经常"和"总是"之间的差距。&lt;br&gt;&lt;br&gt;　　互联网的生命之源&lt;br&gt;&lt;br&gt;　　辛格哈尔是谷歌搜索引擎排名算法的大师。这一算法主要用于确定哪些网页是用户问题的最佳答案，它是谷歌核心团队――搜索质量部门的重要组成部分。长期来来，该部门一直是个谜，谷歌很少允许团队成员抛头露面。谷歌对辛格哈尔及其团队的评价非常高，将他们视为公司最为根本的竞争优势。谷歌认为，要想抵御来自雅虎和微软的强势入侵，就必须降低让用户失望的频度。而在这一过程中，搜索质量部门发挥着不可替代的作用。 &lt;br&gt;&lt;br&gt;　　Federated Media首席执行官约翰・巴特勒(John Battelle)表示："谷歌创建的核心价值就是排名算法。"数据显示，网络商店有四分之一到二分之一的访问者来自于搜索引擎；很多用户都无视媒体网站的网页，而是通过谷歌直接访问所需的特定页面。他说："从上述事实可以看出，谷歌已经成为了互联网的'生命之源'，谁也离不开它。"&lt;br&gt;&lt;br&gt;　　用户无法看到搜索引擎背后的算法和艺术，但事实上，谷歌搜索质量团队每周都要对搜索引擎算法做数次改进。在他们的努力下，谷歌搜索引擎可以更加有效地理解用户的真实意图。例如，有些人搜索"苹果"是为了了解同水果相关的信息，有些人则在研究苹果公司的Mac或iPod。尽管搜索内容相同，但用户的意图却有着天壤之别。辛格哈尔表示："过去几年里，搜索已经由'给我输入的东西'转变为'给我想要的东西'。" &lt;br&gt;&lt;br&gt;　　不为人知的内幕&lt;br&gt;&lt;br&gt;　　辛格哈尔今年39岁，是一名印度人，于2000年加盟谷歌。他目前是一名谷歌研究员，这是谷歌专门为精英工程师设立的职位。不久前，一名《纽约时报》的记者获准采访了辛格哈尔和其它搜索质量团队成员。尽管谷歌对很多问题都讳忌莫深，但这名记者仍然获得了很多以前不为人知的内幕。&lt;br&gt;&lt;br&gt;　　在谷歌不断改进搜索引擎的过程中，面临的最大挑战是日渐庞大的规模。目前，谷歌已经成为全球访问量最大的网站，支持112种语言，将数百亿个网页纳入索引，每天处理数亿次搜索请求。更为糟糕的是，很多网页创建的目的就是吸引眼球，里面充斥了大量的广告、色情内容和财务欺骗信息。因此，用户希望谷歌能在搜索结果中排除这些无用网页，帮助他们找到最相关的信息。 &lt;br&gt;&lt;br&gt;　　谷歌搜索质量团队主管尤迪・马恩伯(Udi Manber)表示："用户的期望值非常高。当我们刚刚推出搜索服务时，如果用户能通过搜索引擎找到想要的东西，就会感到是一个奇迹。现在的情况则完全不同，如果用户在前三个搜索结果页面中找不到想要的东西，就认为搜索引擎存在问题。"&lt;br&gt;&lt;br&gt;　　谷歌搜索业务充分展现了其打破常规的管理模式。谷歌拥有数百名工程师，其中包括来自学术机构的顶级搜索专家，这些人通常被松散地组织在一起，从事自己感兴趣的项目。但在搜索引擎方面，谷歌会仔细、严格地检查工程师的独立成果，以确保新的搜索算法带来的好处多于坏处。大多数情况下，改进和质量控制都涉及平衡的艺术。马恩伯表示："改进总会同时带来正面和负面的效应，我们必须衡量哪一种影响更大。只有正面效果，没有负面效果的改进不存在。" &lt;br&gt;&lt;br&gt;　　搜索团队大揭秘&lt;br&gt;&lt;br&gt;　　谷歌搜索质量团队在谷歌办公园区的Building 43工作。由于公司联合创始人拉里・佩奇(Larry Page)向往太空旅行，一个与"太空船一号"同样大小的复制品占据了Building 43的休息室。这一复制品也随时提醒参观者，谷歌就像火箭一样迅速升起。辛格哈尔和其它三名顶级工程师的办公室就坐落于Building 43的顶层，在他办公桌附近的黑板上，到处涂满了图表、问题和数学公式，当然还有用户对谷歌引擎提出的各种意见。 &lt;br&gt;&lt;br&gt;　　谷歌的所有员工都可以使用"Buganizer"系统报告搜索问题，而辛格哈尔正是负责解决问题的人。辛格哈尔的同事马特・卡兹(Matt Cutts)表示："辛格哈尔收到他人提出的问题之后，总是视若珍宝，并努力通过修正算法解决问题。"有些时候，用户或其它谷歌员工提出的问题需要立即得到解决。例如，如果不久前通过谷歌搜索"法国大革命"，就会出现大量与法国总统大选相关的信息，而不是打倒法国国王路易十六的那场革命。谷歌搜索质量团队很快改变了网页的权值，从而解决了这一问题。 &lt;br&gt;&lt;br&gt;　　当然，有时会出现更为复杂的问题。2005年，谷歌产品经理比尔・布罗格(Bill Brougher)指出，当用户搜索"teak patio Palo Alto"时，并不会返回这家名叫"Teak Patio"的本地商店。辛格哈尔随即启动了一项名为"Debug"的内部计划，检查计算机系统对每一个查询和网页的评价。&lt;br&gt;&lt;br&gt;　　辛格哈尔最终发现，Theteakpatio.com之所以没有在搜索结果中显现，主要因为谷歌搜索算法并没有赋予来自Palo Alto的其它网站足够的权值。收到投诉后的两个月内，辛格哈尔及其团队改进了搜索算法，从而解决了相关问题。不过，辛格哈尔并不能匆忙地解决所有问题，因为搜索引擎的每一次调整都会影响到很多网站。因此，他将很多问题都记在黑板上，如果同样的问题再次出现，他就会调整其优先级。 &lt;br&gt;&lt;br&gt;　　人才是成功根本&lt;br&gt;&lt;br&gt;　　为了提高搜索引擎的质量，谷歌一直致力于从研究实验室和大学招募人才。例如，辛格哈尔就来自于AT&amp;amp;T实验室；马恩伯最初曾经在亚利桑那大学担任计算机教员，随后加盟雅虎担任首席科学家，之后还曾运营过亚马逊搜索部门。他去年从亚马逊加盟谷歌，很快就发现谷歌搜索引擎遥遥领先于学术实验室和其它企业竞争对手。他回忆道："加入谷歌后的前三个月里，我经常会说，'我有一个想法'。但他们总是告诉我，'已经有人提出过这个想法，它无法发挥作用'。" &lt;br&gt;&lt;br&gt;　　谷歌搜索质量团队的分工非常明确：辛格哈尔等工程师主要负责用户输入关键字后的系统处理；一部分人主要负责改进搜索结果，例如优化网站描述，让用户更容易了解一个网站的内容；以马恩伯为首的其它成员则主要负责维护庞大的网页索引。在早期阶段，谷歌每六到八周创建一个新索引，而现在该公司每隔几天就要重新核对很多网页。&lt;br&gt;&lt;br&gt;　　在编辑索引的过程中，谷歌主要考虑每一个网页的PageRank。PageRank是谷歌联合创始人佩奇和塞吉・布林(Sergey Brin)的重要发明，它主要用于标识其它网站链接到特定网页的次数。网页的PageRank越高，在搜索结果中的排名也就越高。辛格哈尔已经开发出一个更为精确的系统来为网页排名，它涉及了200多种信息，PageRank只是其中之一。 &lt;br&gt;&lt;br&gt;　　要完全了解谷歌搜索引擎所采用的技术是一项不可能完成的任务，因为这是谷歌赖以成功的根本，同时也是其它竞争对手梦寐以求的东西。只从搜索结果来看，很多时候并不能看出谷歌搜索引擎与竞争对手的差异。但搜索专家丹尼・沙利文(Danny Sullivan)认为，谷歌仍然领先于竞争对手。巴特勒也表示："人们仍然认为谷歌是搜索的黄金标准。" &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-4954556782776420344?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/4954556782776420344/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=4954556782776420344' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4954556782776420344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/4954556782776420344'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/google-search.html' title='Google search'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-2334045963477082064</id><published>2007-06-15T00:13:00.001+08:00</published><updated>2007-06-17T16:49:31.349+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Do many things, like pings</title><content type='html'>From &lt;a href="http://redspid.blog.163.com"&gt;redspid.blog.163.com&lt;/a&gt;&lt;br&gt;2007年 06月06日 19:42&lt;br&gt;&lt;br&gt;Perl 多进程的例子，收藏先。&lt;br&gt;&lt;br&gt;作 者：Randal L. Schwartz&lt;br&gt;&lt;br&gt;As a Unix system administrator, I'm often faced with those little mundane tasks that seem so trivial to me but so important to the community I'm supporting. Little things like ``hey, is that host up and responding to pings?''. Such tasks generally have a very repetitive nature to them, and scripting them seems to be the only way to have time to concentrate on the tasks that really need my attention. &lt;br&gt;&lt;br&gt;作为一个 Unix 系统管理员，我经常会面对一些单调乏味的任务，虽然这对我来说是小菜一碟，但是对于我所支持的社区来说却显得比较重要了（比如很简单的事情"嘿！那台主机在工作吗？回应我的 ping 请求吗？"）。这类任务通常都具有重复性，所以为了让我们能把精力集中在该集中的地方，写个脚本搞定这些琐事似乎就是唯一的方法了。&lt;br&gt;&lt;br&gt;Let's look at the specific task of pinging a number of hosts on a subnet. Now, there are tools to do this quickly (like nmap), and there are even Perl modules to perform the ping (as in Net::Ping), but I wanted to focus on something familar that can be launched from Perl as an external process, and the system ping command seems mighty appropriate for that. &lt;br&gt;&lt;br&gt;让我们看看这个在子网内 ping 大量主机的典型任务。现在有一些工具（像 nmap）可以很快地完成这个任务，而且甚至还有 Perl 模块来实现 ping（比如 Net::Ping),但我还是想把目光集中在一些能在 Perl 中作为额外进程运行的我们所熟悉的工具上,这样看来，系统所带的 ping 命令似乎比较适合。&lt;br&gt;&lt;br&gt;First, let's look at how to ping one host, on my BSD-ish system: &lt;br&gt;&lt;br&gt;首先，让我们看看如何 ping 一台主机，在我的 BSD 类系统中：&lt;br&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; sub ping_a_host {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; my $host = shift;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; `ping -i 1 -c 1 $host 2&amp;gt;/dev/null` =~ /0 packets rec/ ? 0 : 1;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; }&lt;/span&gt;&lt;br&gt;&lt;br&gt;Here, I'm firing up a subshell to execute the ping -i 1 -c 1 command, which on my system requests ping have a 1-second timeout, and selects (as Sean Connery's character said in The Hunt for Red October so eloquently) ``one ping only''. Your ping parameters may vary: check your manpage. &lt;br&gt;&lt;br&gt;这里，我们创建了一个子进程来执行 ping -i 1 -c 1 命令，这个命令只会 ping 目标主机一次，而且设置了超时时间为1秒。并选择（像肖恩-康纳利在《追击红色十月》里演的那个角色一样非常意味深长地说）"只 ping 一次"。你系统上的 ping 所需的参数可能有不同，请查看你的 man 说明。&lt;br&gt;&lt;br&gt;The output is scanned for the string 0 packets rec, which if absent means we got a good ping. So if the match is found, we return 0 (the ping was bad), otherwise we'll return 1. The ping command spits out some diagnostics on standard error, which we'll toss using Bourne-shell syntax. &lt;br&gt;&lt;br&gt;程序会在命令执行完所得到的输出中搜索 "0 packets rec" 这个字串，如果没有找到这个字串，说明 ping 成功了（目标主机有回应）。所以，如果我们找到了这个字串，那么返回 0（ping 失败了），否则我们返回 1。由于 ping 命令会向标准错误端输出一些诊断信息，所以我们把这些信息丢到 /dev/null 中去。&lt;br&gt;&lt;br&gt;Note that the value of $host is not checked here for sanity. We certainly wouldn't want to accept a random command-line parameter or (gasp) a web form value here without some serious validation. However, as we use this in our program, all of the values will be internally generated, so we've got some degree of safety. &lt;br&gt;&lt;br&gt;注意，这里没有对 $host 的值进行正确性检查。我们可不想接收一些事先没有经过验证的任意命令行参数，或者是通过网络表单传递来的值。不过，程序里所有值我们都将在程序内部生成，所以这已经是一层安全保障了。&lt;br&gt;&lt;br&gt;So to scan a particular subnet, looking for hosts that are alive, we would add to that subroutine something like: &lt;br&gt;&lt;br&gt;为了 ping 一个特定的子网看看有哪些主机存活，我们可以为上面的子程序添加如下的代码：&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; print &amp;quot;ping $_ is &amp;quot;, ping_a_host($_), &amp;quot;\n&amp;quot;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for map &amp;quot;10.0.1.$_&amp;quot;, 1..254;&lt;/span&gt;&lt;br&gt;&lt;br&gt;Now, this routine completes very quickly for hosts that are alive, but is slow-as-molasses for hosts that aren't present, because the TCP protocol demands that the host have a chance to respond. &lt;br&gt;&lt;br&gt;现在，当主机存活时， ping 这一步很快就会完成，但如果主机不在（或者没有回应），那这一步就会非常慢了（由于 TCP 协议要求主机可以有一定的响应延迟的原因）。&lt;br&gt;&lt;br&gt;So how can we speed that up? This is not a CPU-intensive loop: practically the entire time is waiting for some remote host to respond. We'll leave the ping_a_host subroutine alone, because that's not where we have a problem: it's doing its job as fast as it can. What we need to do is to do more of them at a time. &lt;br&gt;&lt;br&gt;那么我们如何让程序加速呢？这并不是一个占用 CPU 很厉害的循环：实际上整个时间都花费在等待远程主机的回应上了。我们不管这个 ping_a_host 子程序，因为这并不是问题的所在：他正全速工作呢。我们需要的是在同一时间能做更多这样的任务。&lt;br&gt;&lt;br&gt;One first approach is to fork a separate process for each host we want to ping. We'll then sit back in a wait loop. As each child process completes, we'll note its exit status, and when there are no more kids, we'll spit out a report. &lt;br&gt;&lt;br&gt;其中一个首要的途径是为我们想 ping 的每一个主机 fork 出一个独立的进程。然后我们将返回到一个等待的循环中。当所有的子进程都完成的时候，我们会留意他们的退出状态，并且当子进程都结束后，再给出一个结果报告。&lt;br&gt;&lt;br&gt;So, first, we'll define the host list for the task:&lt;br&gt;&lt;br&gt;那么，首先，我们得先定义所需的主机列表：&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;span style="color: rgb(255, 0, 0);"&gt; my @hosts = map &amp;quot;10.0.1.$_&amp;quot;, &amp;quot;001&amp;quot;..&amp;quot;010&amp;quot;;&lt;/span&gt;&lt;br&gt;&lt;br&gt;The numbers here are padded to three digits so that they sort as strings in a numeric sequence, a cheap but effective trick. Note also that I'm only selecting the first 10 hosts this time. I'll explain that shortly. &lt;br&gt;&lt;br&gt;这些主机的最后部分被填充成三位，这样就能让这组字符串按照数字顺序来排序，简单而有效的技巧。注意我只选了子网中的前10台主机，后面我会解释原因。&lt;br&gt;&lt;br&gt;Next, we'll want a hash to keep track of the kids:&lt;br&gt;&lt;br&gt;下一步，我们将利用一个散列（hash)来跟踪子进程：&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;span style="color: rgb(255, 0, 0);"&gt;my %pid_to_host; &lt;/span&gt;&lt;br&gt;&lt;br&gt;The keys of this hash will be the child process ID (PID), and the value will be the corresponding host that the child is processing. Next, we'll want to loop over the host list, firing up a child for each:&lt;br&gt; &lt;br&gt;子进程的进程号（PID）将成为这个散列的关键字，而其键值就是该子进程正在处理的相对应的主机地址。下一步，我们将遍历整个主机列表，为其中的每一个主机创建一个子进程：&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; for (@hosts) {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (my $pid = fork) {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## parent does...&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $pid_to_host{$pid} = $_;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; warn &amp;quot;$pid is processing $_\n&amp;quot;; &lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else { # child does&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; ## child does...&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit !ping_a_host($_);&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br&gt;&lt;br&gt;As each host is placed into $_, we'll fork. The result of fork is a child process running in parallel with the parent process. These processes are distinguished only by the return value of fork, which is 0 in the child, but the child's PID in the parent. So, if we get back a non-zero value, we're the parent, and we'll store the PID into the hash, along with the host that particular child is processing. If we're the child, then we'll call the ping_a_host routine, and arrange for our exit status to be good (0) if that routine gives a thumbs up. &lt;br&gt;&lt;br&gt;在上面的代码中，所有的主机都会在 for 循环中依次传递给变量 $_ ,然后我们将进行 fork。调用 fork 函数后，我们将得到一个和父进程并行运行的子进程。它们之间的区别仅仅在于 fork 的返回值（fork 会返回两个值），如果返回值为 0,那说明在子进程中，父进程中 fork 的返回值就是子进程的 PID(进程号）。所以，如果我们得到一个非零的返回值，那么我们就在父进程中，在该进程中我们将会把子进程的 PID 及与工作中的该进程相应的主机 ip 保存到散列中。假如我们在子进程中，那么我们将会调用 ping_a_host 程序，并且当这个程序正常退出的时候，我们把退出状态码置为 0 (表示工作正常的）。 &lt;br&gt;&lt;br&gt;The warn in the loop is merely for diagnostic purposes so that you can see what's happening. In a production program, I'd certainly remove that.&lt;br&gt;&lt;br&gt;这个循环中的 warn 仅仅用来输出诊断信息，这样你就可以知道程序正在干什么。当程序作为成品的时候，我会把这行去掉。&lt;br&gt; &lt;br&gt;At the end of this loop, we'll have a number of processes. Far too many, in fact. For each host to check, we'll have two processes running: the shell forked by the backquotes, and the ping process itself. Perl has to fork a shell because I needed that child to have its standard error output redirected. If I could have gotten the redirection out of those backquotes somehow, we'd have only one child process per host, not two. &lt;br&gt;&lt;br&gt;在这次循环的最后，我们将会有很多个进程。事实上太多了。对于每个要检查的主机，我们将耗费两个进程：一个是反引号调用系统命令分出的 shell 进程，一个是 ping 这个进程本身。Perl 之所以得分出一个 shell 进程是因为我们需要把这个子进程的标准错误输出转向（不会在屏幕上显示出来）。假如我们能用某种方式避免使用反引号调用的输出转向，那么我们就能只分出一个进程而不是两个了。&lt;br&gt;&lt;br&gt;Launching 20 processes to check 10 hosts will start pushing us up against the typical per-user process limit. And now you can see why I didn't do all 254 hosts at once! &lt;br&gt;&lt;br&gt;创建20个进程去检查10台主机将使我们面临经典的每用户进程数限制的问题（校者注：unix 下可以通过 ulimit -u 命令查到这个进程限制）。现在你应该明白我为什么先前只选前10台而不是一次性把254台主机都放进来的原因（会产生 508 个子进程！）。&lt;br&gt;&lt;br&gt;Now it's time to wait for the results. A simple ``wait'' loop will reap the children as fast as they complete their task. First, we'll declare a hash to hold the results: &lt;br&gt;&lt;br&gt;现在是时候等待返回结果了。用一个简单的 "wait" 循环就能在子进程完成任务之后尽快地收割它们。首先，我们得声明一个散列来保存结果：&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;span style="color: rgb(255, 0, 0);"&gt; my %host_result;&lt;/span&gt;&lt;br&gt;&lt;br&gt;The key will be the host, and the value will be 1 if the child said it was pingable, otherwise 0. &lt;br&gt;&lt;br&gt;主机地址将成为该散列的关键字，而其对应的键值将是 1（当子进程说那台主机可以 ping 到）或者 0（ping 不到）&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;span style="color: rgb(255, 0, 0);"&gt;while (keys %pid_to_host) {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; my $pid = wait;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; last if $pid &amp;lt; 0;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my $host = delete $pid_to_host{$pid}&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; or warn(&amp;quot;Why did I see $pid ($?)\n&amp;quot;), next; &lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; warn &amp;quot;reaping $pid for $host\n&amp;quot;;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $host_result{$host} = $? ? 0 : 1;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; }&lt;/span&gt;&lt;br&gt;&lt;br&gt;As long as we've got kids (indicated by the ever decreasing size of the %pid_to_host hash), we'll wait for them. The child process ID comes back from wait, which we'll stick into $pid. At this point, the exit status of that particular child is in $?. If the return value of wait is negative, then we don't have any more kids. This is an unexpected result, which we could check later by noticing that %pid_to_host is not yet empty, or we could have simply died here. &lt;br&gt;&lt;br&gt;当有子进程存在的时候（由大小递减的散列 %pid_to_host 所指示），我们将会等待它们直到它们完结。wait 函数会返回子进程的进程号，我们把它保存至 $pid。此时，指定的子进程的退出状态保存在特殊变量 $? 中。假如 wait 返回值是负数，那说明我们没有子进程了。这不是我们所期待的结果，我们可以通过检查散列 %pid_to_host 是否非空来确认，或者简单的就在此处结束。&lt;br&gt;&lt;br&gt;Next, we'll use the %pid_to_host hash to map the PID into the host for which it was processing. Again, we might have accidentally reaped a completed child which wasn't one of ours, so defensive programming requires checking for that. This won't happen unless other parts of this program are also forking children somehow, but I'm a cautious programmer most of the time. &lt;br&gt;&lt;br&gt;接下来，我们将利用散列 %pid_to_host 将进程号映射到正在处理的主机。也许我们会偶然地将一个已完成的不属于我们的子进程收割掉，所以我们要对其进行检查。当我们没有在这个程序的其他地方以某种方式分出子进程的时候，就不会产生这种情况，虽然我们这个程序满足这个要求，但大多数时候我是个谨慎的程序员（所以我在程序中加入了对这种情况进行检查的代码）。&lt;br&gt;&lt;br&gt;Finally, we'll take the exit status in $?, and map it into the appropriate good/bad value for the result hash. &lt;br&gt;&lt;br&gt;最后，我们将参照特殊变量 $? 中的退出状态码把 ping 结果的 好/坏 值保存至结果散列。&lt;br&gt;&lt;br&gt;When this loop completes, we have no more kids performing tasks, and it's time to show the result:&lt;br&gt;&lt;br&gt;当这个循环结束，就没有子进程在处理任务了，现在是时候显示结果了：&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;span style="color: rgb(255, 0, 0);"&gt;  for (sort keys %host_result) {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print &amp;quot;$_ is &amp;quot;, ($host_result{$_} ? &amp;quot;good&amp;quot; : &amp;quot;bad&amp;quot;), &amp;quot;\n&amp;quot;; &lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; }&lt;/span&gt;&lt;br&gt;&lt;br&gt;For each key of the result table, we'll say whether the result was good or bad.&lt;br&gt;&lt;br&gt;以上的代码打印出每台主机 ping 的结果。 &lt;br&gt;&lt;br&gt;Putting this all together makes a nice little demo of forking 20 kids to check 10 hosts, but it won't scale to 254 hosts, because that would require more process slots than we typically have (or want to use, actually). What we need to do is perform the forking gradually, so that we never have more than 20 kids at a time. One naive approach is to chunk the data into bite-size bits: &lt;br&gt;&lt;br&gt;把上面所有的代码凑到一起就成了一个分出20个子进程来检查10台主机的漂亮的演示程序，但是它却不适合有254台主机的情况，还记得前面提到的每用户进程限制吗？那怎么办呢？我们可以循序渐进地分出子进程的嘛，这样我们就可以保证同时不会有超过20个子进程存在。一个笨办法就是把数据（这里指主机列表）分割成几个部分：&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;span style="color: rgb(255, 0, 0);"&gt; my @all_hosts = ...; &lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; my %host_results;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp; while (my @hosts = splice @all_hosts, 0, 10) {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... process @hosts, adding into %host_results ...&lt;/span&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; }&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp; ... show results ...&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br&gt;Here, most of the code above gets wrapped into an outer loop which hands 10 hosts at a time to be processed, using splice to peel them off of the master list. While this strategy certainly solves the ``no more than 10 at a time'' condition, each batch of 10 has to wait for the slowest of the 10 to complete. &lt;br&gt;&lt;br&gt;以上的代码在用 splice 函数将 @all_hosts 每次分成10份付给 @hosts，然后针对 @hosts 来进行多进程的处理，这样，用一个外层的 while 循环（相对于那个多进程处理的循环）来保证同时只处理主机总列表中的10台主机。这种策略的确能解决"同时不多于10台主机"的问题，但是实际上每一批 10台主机都要等前面的10台主机处理完后才能继续，这样显然太慢了。&lt;br&gt;&lt;br&gt;A better way would be to fork until we hit the limit of active children, then wait for one child to finish before we need to fork again. First, we'll need to factor out ``waiting for a kid'' into a subroutine so we can call it in two different places: while forking a new task, and at the end to reap all the remaining children: &lt;br&gt;&lt;br&gt;一种更好的方法就是如果正在运行的子进程数量没有达到设定的极限值，就继续 fork，否则就等待某个子进程完成然后再 fork。首先，我们需要把"等待某个子进程"写成一个子程序以方便我们在两个不同的地方调用：当为新任务创建子进程以及在最后收割所有仍然存在的子进程的时候。&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;span style="color: rgb(255, 0, 0);"&gt; sub wait_for_a_kid {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my $pid = wait;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0 if $pid &amp;lt; 0; &lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my $host = delete $pid_to_host{$pid}&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; or warn(&amp;quot;Why did I see $pid ($?)\n&amp;quot;), next;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; warn &amp;quot;reaping $pid for $host\n&amp;quot;; &lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $host_result{$host} = $? ? 0 : 1;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; }&lt;/span&gt;&lt;br&gt;&lt;br&gt;Note that we're accessing %pid_to_host and %host_result directly here, so those variables must be in scope before the subroutine definition. The subroutine now returns 1 if a kid was reaped, and 0 otherwise. The final reap loop now becomes: &lt;br&gt;&lt;br&gt;注意我们这里是直接的访问散列 %pid_to_host 和 %host_result 的。所以它们必须已经在这个子程序定义之前定义了。当一个子进程被顺利收割时，该子程序返回1,否则返回0。程序最后的收割循环（译者注：这个收割循环会持续到所有的子进程全部被收割为止，这样是为了避免僵进程导致进程泄漏，关于僵进程和进程泄漏的概念，请自行查找有关资料）现在变成了：&lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp; ## final reap:&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; 1 while wait_for_a_kid();&lt;/span&gt;&lt;br&gt;&lt;br&gt;At this point, the program functions identically to the prior one, except that I've refactored the kid reaping. The magic happens next. We'll put wait_for_a_kid in the middle of the forking loop as well, just before we're about to fork, conditionally if the number of kids is already at the maximum we chose: &lt;br&gt;&lt;br&gt;到这步，除了我重新写的这个子进程收割程序，这个程序的功能就和先前的那个一样了。接下来将发生一些魔术般的事情,呵呵。我们将把 wait_for_a_kid 子程序放到创建子进程的那个循环中，调用 fork 之前,在子进程数达到设定的极限值时调用该子程序。&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;span style="color: rgb(255, 0, 0);"&gt; for (@hosts) {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wait_for_a_kid() if keys %pid_to_host &amp;gt;= 10;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br&gt;Ahh. That does it. We can now crank @hosts back up to our 254 items. As we fire off the first 10, this new statement has no effect. But when it comes time for the 11th, we'll wait until at least one of the other 10 to complete first. So, at no time do we have more than 10 hosts active (using 20 child processes for reasons explained earlier). The entire program is given here in case you want to see it all in context: &lt;br&gt;&lt;br&gt;啊哈！现在我们可以把 @hosts 中主机的数量增加到254台了。当在为前10台主机创建子进程的时候，这条新加的表达式并不起什么作用，但是，当为第11台主机创建子进程的时候，它就会一直等待直到至少有一台主机已经处理完毕才继续。这样，我们就不会在同一时间处理超过10台主机了（处理10台机会使用20个子进程，原因前面说过了）。下面就是完整的程序：&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;span style="color: rgb(255, 0, 0);"&gt;  sub ping_a_host {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my $host = shift;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; `ping -i 1 -c 1 $host 2&amp;gt;/dev/null` =~ /0 packets rec/ ? 0 : 1;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; } &lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; my %pid_to_host;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp; my %host_result;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; sub wait_for_a_kid {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my $pid = wait;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0 if $pid &amp;lt; 0;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my $host = delete $pid_to_host{$pid}&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; or warn(&amp;quot;Why did I see $pid ($?)\n&amp;quot;), next;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; warn &amp;quot;reaping $pid for $host\n&amp;quot;;&lt;/span&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $host_result{$host} = $? ? 0 : 1;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; }&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; my @hosts = map &amp;quot;10.0.1.$_&amp;quot;, &amp;quot;001&amp;quot;..&amp;quot;254&amp;quot;;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp; for (@hosts) {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wait_for_a_kid() if keys %pid_to_host &amp;gt; 10;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (my $pid = fork) {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## parent does... &lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $pid_to_host{$pid} = $_;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; warn &amp;quot;$pid is processing $_\n&amp;quot;;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else { # child does&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## child does...&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit !ping_a_host($_); &lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp; }&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; ## final reap:&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp; 1 while wait_for_a_kid();&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; for (sort keys %host_result) {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print &amp;quot;$_ is &amp;quot;, ($host_result{$_} ? &amp;quot;good&amp;quot; : &amp;quot;bad&amp;quot;), &amp;quot;\n&amp;quot;;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;nbsp; }&lt;/span&gt;&lt;br&gt;&lt;br&gt;As a working program, this does pretty good, although it could be made a bit more robust, and is very specific to the particular ping program on my machine. If you don't want to write this pattern of code into each program that wants to do parallel things, look at Parallel::Fork Manager in the CPAN, which does pretty much the same thing with a friendly interface. &lt;br&gt;&lt;br&gt;虽然这个程序还可以进一步的完善以使它更强健，但现在他工作得很好，比起单单用我系统上的 ping 命令，用这个程序来完成任务就显得有效多了。如果你不想每次一涉及并行处理的事情就套用上面的代码，那么可以试试 CPAN 上的 Parallel::Fork Manager 模块，它也能够漂亮的实现到相同的效果，不过更妙的是它拥有一个更友好的接口。&lt;br&gt;&lt;br&gt;One improvement to this program might be to pre-fork and re-use the children, using some sort of IPC (pipes or sockets) to communicate additional tasks to perform as each task completes, but I've run out of space to talk about that here. Until next time, enjoy! &lt;br&gt;&lt;br&gt;预创建进程以及子进程重用（在每个任务完成的时候利用一些进程间通信（IPC）的方式（管道或者套接字）来与接下来的任务进行通讯）可以作为该程序的一个改进，但是这已经超出了本文的范围。okay, 希望你能喜欢这篇文章，下次再见！&lt;br&gt;&lt;br&gt;―――――――――――――-&lt;br&gt;&lt;br&gt;在 Parallel::Fork Manager 模块文档里摘一个实例给懒惰的 Perl 程序员 :) 这个例子会创建 30 个子进程来并行下载不同的链接。这要比亲自动手调用 fork 简单多了。 &lt;br&gt;&lt;br&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;use LWP::Simple;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;use Parallel::ForkManager;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;...&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;@links=(&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; [&amp;quot;&lt;a href="http://www.foo.bar/rulez.data"&gt;http://www.foo.bar/rulez.data&lt;/a&gt;&amp;quot;,&amp;quot;rulez_data.txt&amp;quot;],&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; [&amp;quot;&lt;a href="http://new.host/more_data.doc"&gt;http://new.host/more_data.doc&lt;/a&gt;&amp;quot;,&amp;quot;more_data.doc&amp;quot;],&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; ...&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;);&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;...&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;# 同时使用 30 个进程&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;my $pm = new Parallel::ForkManager(30);&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; foreach my $linkarray (@links) {&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; $pm-&amp;gt;start and next; # 开始 fork&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; my ($link,$fn) = @$linkarray;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; warn &amp;quot;Cannot get $fn from $link&amp;quot; &lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if getstore($link,$fn) != RC_OK;&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp; $pm-&amp;gt;finish; # do the exit in the child process&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;}&lt;/span&gt;&lt;br style="color: rgb(255, 0, 0);"&gt; &lt;br style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;$pm-&amp;gt;wait_all_children;&lt;/span&gt;&lt;br&gt;&lt;br&gt;First you need to instantiate the Fork Manager with the "new" constructor. You must specify the maximum number of processes to be created. If you specify 0, then NO fork will be done; this is good for debugging purposes. &lt;br&gt;&lt;br&gt;首先通过 new 来初始化一个 Fork Manager 对象，同时必须标明最大进程数。如果使用 0 的话就可以避免 fork 来达到调试程序的作用。&lt;br&gt;&lt;br&gt;Next, use $pm-&amp;gt;start to do the fork. $pm returns 0 for the child process, and child pid for the parent process (see also "fork()" in perlfunc(1p)). The "and next" skips the internal loop in the parent process. NOTE: $pm-&amp;gt;start dies if the fork fails. &lt;br&gt;&lt;br&gt;然后使用 $pm-&amp;gt;start 来开始 fork。 $pm 在子进程时返回 0 ,父进程时返回子进程的进程号（具体请参阅 Perl 的 fork 文档）。"and next" 用来跳过父进程。注意：如果 fork 失败的话， $pm-&amp;gt;start 就提示错误，程序结束。&lt;br&gt;&lt;br&gt;$pm-&amp;gt;finish terminates the child process (assuming a fork was done in the "start"). &lt;br&gt;&lt;br&gt;$pm-&amp;gt;finish 结束子程序（假设我们一开始使用了 start 来 fork）&lt;br&gt;&lt;br&gt;NOTE: You cannot use $pm-&amp;gt;start if you are already in the child process. If you want to manage another set of subprocesses in the child process, you must instantiate another Parallel::Fork Manager object! &lt;br&gt;&lt;br&gt;注意：在子进程中不能使用 $pm-&amp;gt;start。 如果你想在子进程中使用另外一组子进程，你必须再初始化一个 Parallel::Fork Manager 对象。&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-2334045963477082064?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/2334045963477082064/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=2334045963477082064' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2334045963477082064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2334045963477082064'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/do-many-things-like-pings.html' title='Do many things, like pings'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-3123390339631858862</id><published>2007-06-13T21:35:00.001+08:00</published><updated>2007-06-17T16:50:20.100+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Rich format blog</title><content type='html'>&lt;p&gt;知道怎么通过 email 发布非纯文本格式的 blog 了，需要发送 html 格式的邮件。&lt;/p&gt; &lt;p&gt;我一直使用 GOOGLE 的搜索引擎，效果非常好，也就是搜索音频时才用百度。现在正式加入 GOOGLE fans 的行列 &lt;font color="#ff6666"&gt;o(∩_∩)o...&lt;/font&gt; 。电子邮件用 &lt;a href="mailto:redspid@gmail.com"&gt;Gmail&lt;/a&gt;，网络相册用 &lt;a href="http://picasaweb.google.com/redspid"&gt;picasaweb&lt;/a&gt; ，网络日志用 &lt;a href="http://redspid.bloggerspaces.com"&gt;blogger&lt;/a&gt;，包括自定义的 GOOGLE 页面 igoogle，GOOGLE 日历，功能确实强大。只是网络连接速度比国内网站要慢许多，这也难怪，中国的防火墙太厚了，连 blogger 都要通过 ftp 转发，想不通为什么要拦截 blogger。我想，这也是影响 GOOGLE 在中国业务发展的重要因素。但是国内几个所谓大网站提供的服务兼容性实在是太糟糕了，尤其是对非 windows 系统和非 ie 浏览器的兼容性。 &lt;/p&gt; &lt;p&gt;中国的 Linux、Unix 用户太少了，目前国内的计算机应用大都处在超初级阶段，整天就是 word、excel、ppt，把计算机当成打字机、复印机来用，暴殄天物啊。专业计算机教育实践环节太少，程序不是读书读出来的，就像书法、美术一样，更重要的是写、练。学习算法仅仅把书本上的例子看懂了是没用的，把书收起来，自己写代码，一定要是可以运行的代码，让计算机给出最终的判断结果，这样才算是把这个算法掌握了。其实计算机科学(主要指软件方面)是理论与实践高度一致的科学，通过实际操作是理解、掌握理论知识的最佳途径。 &lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-3123390339631858862?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/3123390339631858862/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=3123390339631858862' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3123390339631858862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3123390339631858862'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/rich-format-blog.html' title='Rich format blog'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-2124634186655435395</id><published>2007-06-13T19:52:00.001+08:00</published><updated>2007-06-17T16:49:06.830+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vim'/><title type='text'>Vim 7</title><content type='html'>与旧版本相比，在 Vim 7 中新增了多项重要的特性。&lt;p&gt;使用拼写检查功能:&lt;br&gt;Vim 7 内置了一项拼写检查功能，使用该功能可以检查出所拼写词语的错误。在默认情况下，这项功能是没有开启的。若是使用 GVim&lt;br&gt;的话，可通过&amp;quot;Tools -&amp;gt; Spelling -&amp;gt; Spell check on&amp;quot;菜单命令开启。Vim&lt;br&gt;一旦发现拼写错误的词语，则以红色的波浪线标记。而使用以下命令可以执行拼写检查功能的相关操作：&lt;p&gt;:set spell	开启拼写检查功能&lt;br&gt;:set nospell	关闭拼写检查功能&lt;br&gt;:]s	移到下一个拼写错误的单词&lt;br&gt;:[s	作用与上一命令类似，但它是从相反方向进行搜索&lt;br&gt;z=	显示一个有关拼写错误单词的列表，可从中选择&lt;br&gt;zg	告诉拼写检查器该单词是拼写正确的&lt;br&gt;zw	与上一命令相反，告诉拼写检查器该单词是拼写错误的&lt;p&gt;使用括弧高亮显示功能:&lt;br&gt;此特性在编码时非常具有帮助。对于如&amp;quot;{&amp;quot;、&amp;quot;}&amp;quot;之类的配对括弧，Vim 7 将高亮显示它们。如果不喜欢，可以使用&amp;quot;:NoMatchParen&amp;quot;命令禁用该功能。&lt;p&gt;使用自动补完功能:&lt;br&gt;这是一个非常酷的特性。当你在写代码的时候，可以使用该功能帮助你自动完成标记、关键字等等。此功能支持 C、(X)HTML（包含&lt;br&gt;CSS）、JavaScript、PHP、Python、Ruby、SQL、XML 等语言。在插入模式中，连续按&amp;quot;[Ctrl+x]&lt;br&gt;[Ctrl+o]&amp;quot;组合键可以打开该功能。你可以从弹出的列表框中进行选择。&lt;p&gt;&lt;a href="http://linuxhelp.blogspot.com/2006/09/visual-walk-through-of-couple-of-new.html"&gt;http://linuxhelp.blogspot.com/2006/09/visual-walk-through-of-couple-of-new.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-2124634186655435395?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/2124634186655435395/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=2124634186655435395' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2124634186655435395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2124634186655435395'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/vim-7.html' title='Vim 7'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-2372156475835489995</id><published>2007-06-12T17:43:00.001+08:00</published><updated>2007-06-17T16:49:31.349+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Upgrade documents</title><content type='html'>From my.opera.com/redspider&lt;p&gt;尖括号(&amp;lt;&amp;gt;)的神奇特点：如果没有指定文件名，则其从标准输入流中自动打开和关闭一系列文件进行读入。但如果 $^I&lt;br&gt;中有字符串，这个字符串则会成为备份文件的扩展名。&lt;br&gt;(下面的代码通过给 @ARGV 赋值，模拟标准输入得到的文件名)&lt;p&gt;&lt;br&gt;$^I = &amp;#39;.bak&amp;#39;;# 备份文件后缀名&lt;br&gt;@ARGV = glob(&amp;#39;*.txt&amp;#39;);# 模拟命令行参数获得的文件名 :)&lt;p&gt;# 逐个打开从命令行获得的文件，更新内容&lt;br&gt;# 源文件以 $^I 定义的后缀名备份&lt;br&gt;while (&amp;lt;&amp;gt;) {&lt;br&gt;s/author/author: redspider/g;&lt;br&gt;print;# 默认输出自动被重定向至文件&lt;br&gt;}&lt;p&gt;# 删除备份文件&lt;br&gt;my @bakfiles = glob(&amp;#39;*.bak&amp;#39;);&lt;br&gt;for (@bakfiles) { unlink($_) }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-2372156475835489995?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/2372156475835489995/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=2372156475835489995' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2372156475835489995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2372156475835489995'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/upgrade-documents.html' title='Upgrade documents'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-3007218455222961632</id><published>2007-06-12T00:19:00.001+08:00</published><updated>2007-06-17T16:48:40.681+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>RHCE note: shell scripts, configuration files</title><content type='html'>From redspid.blog.163.com&lt;br&gt;2007年 06月05日 00:55&lt;p&gt;常用 Shell script:&lt;br&gt;/etc/rc.sysinit 系统初始化脚本&lt;br&gt;/etc/rc.local 用户自定义启动脚本&lt;br&gt;/etc/profile bash shell 登录脚本之一&lt;p&gt;使用 useradd 增加账号的默认设定在 /etc/login.defs 中&lt;p&gt;系统日志:&lt;br&gt;/var/log/dmesg 核心启动日志，用 dmesg 命令查看&lt;br&gt;/var/log/messages 系统报错日志&lt;br&gt;/var/log/maillog 邮件系统日志&lt;br&gt;/var/log/xferlog FTP 服务用日志&lt;br&gt;/var/log/secure 安全信息，系统登录与网络连接信息&lt;br&gt;/var/log/wtmp 登录记录&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-3007218455222961632?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/3007218455222961632/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=3007218455222961632' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3007218455222961632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3007218455222961632'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/rhce-note-shell-scripts-configuration_12.html' title='RHCE note: shell scripts, configuration files'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-8596728101842581612</id><published>2007-06-11T23:14:00.001+08:00</published><updated>2007-06-17T16:48:40.681+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>RHCE Note</title><content type='html'>From redspid.blog.163.com&lt;br&gt;2007年 06月03日 23:28&lt;br&gt;&lt;br&gt;Opera Blog 还是登录不上，好多重要的笔记都在上面，备份确实很重要。能访问 Opera Blog 的时候要把东西都转过来。&lt;br&gt;&lt;br&gt;六一还行哈，honey_jing 应该比较满意吧，嘿嘿...&lt;br&gt;&lt;br&gt;是时候好好复习提高一下 Linux 了，准备 RHCE !&lt;br&gt;&lt;br&gt;登录用的虚拟控制台可根据需要增减，配置文件为 /etc/inittab&lt;br&gt;&lt;br&gt;file 指令从系统配置文件 /usr/share/magic 中读取相应的文件规范&lt;br&gt;&lt;br&gt;ls 指令标识文件颜色的定义在文件 /etc/DIR_COLORS 中&lt;br&gt;&lt;br&gt;umask 在 /etc/profile 中设置&lt;br&gt;&lt;br&gt;主机名配置在文件 /etc/sysconfig/network 中&lt;br&gt;&lt;br&gt;Bash 中常用快捷键:&lt;br&gt; Ctrl + s ，Ctrl +q 暂停/恢复屏幕输出&lt;br&gt; Ctrl + l 清屏，相当于 clear&lt;br&gt; Ctrl + a 光标移至行首&lt;br&gt; Ctrl + e 光标移至行尾&lt;br&gt; Ctrl + k 删除光标至行尾的内容&lt;br&gt; Ctrl + u 删除整行&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-8596728101842581612?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/8596728101842581612/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=8596728101842581612' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8596728101842581612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/8596728101842581612'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/rhce-note_11.html' title='RHCE Note'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-2286387595490530240</id><published>2007-06-11T21:21:00.001+08:00</published><updated>2007-06-17T16:47:53.575+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>New starting</title><content type='html'>这一篇沿用 163 blog 上的标题，因为意义特殊哈 :)&lt;br&gt;From redspid.blog.163.com&lt;p&gt;2007/05/25 一个新的开始哈 ^^&lt;p&gt;(25日 开始，26日 honey_jing说表现不错，但要继续努力 嘿嘿)。&lt;p&gt;这也是163上的第一篇 BLOG，&lt;a href="http://my.opera.com/redspid"&gt;http://my.opera.com/redspid&lt;/a&gt; 这几天不知道为什么不能登录。我需要重开一个稳定点的&lt;br&gt;BLOG，以前的也要备份一下，好多精典呢。&lt;p&gt;Honey jing:&lt;p&gt;When you&amp;#39;re lost and the light is fading&lt;br&gt;the wind blows cold and you can&amp;#39;t find your way back home&lt;br&gt;remember that the darkest hour is just before the dawn&lt;br&gt;Sometimes a leap of fauth is all it takes&lt;br&gt;cause only love can see the path to set you free&lt;br&gt;just close your eyes, look inside, and let your heart believe&lt;br&gt;there&amp;#39;s been a force so strong beside you all alone&lt;br&gt;you&amp;#39;ll know it when your dream comes true&lt;br&gt;there&amp;#39;s something only love can do&lt;br&gt;in your quest for a new horizon&lt;br&gt;set your course find a star to light your way&lt;br&gt;although the task may seen sometimes to be more than you can bear&lt;br&gt;one thing you need to know you are not alone&lt;br&gt;If you believe in miracles then you can be the one&lt;br&gt;to shine you light and show the world&lt;br&gt;There&amp;#39;s nothing love can&amp;#39;t overcome&lt;br&gt;There&amp;#39;s something only love can do&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-2286387595490530240?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/2286387595490530240/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=2286387595490530240' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2286387595490530240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/2286387595490530240'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/new-starting.html' title='New starting'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894388350089002936.post-3223652277924465724</id><published>2007-06-11T17:08:00.000+08:00</published><updated>2007-06-11T17:26:27.957+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>First blog on blogger</title><content type='html'>&lt;a href="http://my.opera.com/redspider"&gt;http://my.opera.com/redspider&lt;/a&gt; 有一个月登录不上去了，在 &lt;a href="http://redspid.blog.163.com"&gt;http://redspid.blog.163.com&lt;/a&gt; 上记了几篇笔记。才发现 Google 也有 Blog，嘿嘿，太好了，一会就把 163 上的转过来。&lt;br /&gt;我还是比较信任美国的技术，事实不容置疑啊。 :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2894388350089002936-3223652277924465724?l=redspid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redspid.blogspot.com/feeds/3223652277924465724/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2894388350089002936&amp;postID=3223652277924465724' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3223652277924465724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894388350089002936/posts/default/3223652277924465724'/><link rel='alternate' type='text/html' href='http://redspid.blogspot.com/2007/06/first-blog-on-blogger.html' title='First blog on blogger'/><author><name>redspider</name><uri>http://www.blogger.com/profile/02747201694214615038</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://lh6.google.com/image/redspid/Rm6VQ8xk6rI/AAAAAAAAABg/DMYuCyFgwyQ/Einstein.JPG?imgmax=144'/></author><thr:total>0</thr:total></entry></feed>
