<?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'><id>tag:blogger.com,1999:blog-1874697964364684195</id><updated>2009-10-13T17:46:31.526+08:00</updated><title type='text'>三斤鱼 z h i 安全的鱼</title><subtitle type='html'>我是三斤鱼，现在是安全的鱼，正在经历的人生……</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default?start-index=26&amp;max-results=25'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>51</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-4883524255982609429</id><published>2009-03-23T16:23:00.002+08:00</published><updated>2009-03-31T16:49:31.091+08:00</updated><title type='text'>一个有趣的GDI图形测试程序</title><content type='html'>这是一个有趣的GDI图形测试程序，其主要功能就是获取在桌面上绘图，结果是……你的桌面会一团遭，像病毒一样，看了你会吓一跳，但是有惊无险 ：）&lt;br /&gt;&lt;font face="monospace"&gt;&lt;br /&gt;#include &amp;lt;windows.h&amp;gt; &lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) &lt;br&gt;&lt;br /&gt;{&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HDC myDC;&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//获取屏幕分辨率&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RECT ScrRect;&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GetWindowRect(GetDesktopWindow(), &amp;amp;ScrRect);&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myDC=GetDC((HWND)0); //获取设备环境&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(long i=0;i&amp;lt;100000L;i++)&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&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;int x, y, width, height;&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;x=(rand()%ScrRect.right)/2-(width=rand()%3); //随机产生坐标&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;y=rand()%ScrRect.bottom-(height=rand()%3);&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;BitBlt(myDC, x, y, x+width, y+height, myDC, x+rand()%3-1, y-rand()%2, SRCCOPY); //绘图&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReleaseDC((HWND)0, myDC);&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InvalidateRect(0, NULL, TRUE);&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br&gt;&lt;br /&gt;} &lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/font&gt;&lt;img style="border-width:0px;padding:0" src="http://billconan.googlepages.com/13.gif"/&gt;&lt;img style="border-width:0px;padding:0" src="http://billconan.googlepages.com/14.gif"/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-4883524255982609429?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/4883524255982609429/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=4883524255982609429' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/4883524255982609429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/4883524255982609429'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2009/03/gdi.html' title='一个有趣的GDI图形测试程序'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-2229067707592238267</id><published>2009-02-12T09:33:00.000+08:00</published><updated>2009-02-12T09:35:41.060+08:00</updated><title type='text'>error LNK2001: unresolved external symbol _main解决办法</title><content type='html'>&lt;table style="table-layout:fixed"&gt;&lt;tr&gt;&lt;td&gt;&lt;div id="blog_text" class="cnt"&gt;&lt;div class="article-title"&gt;error LNK2001: unresolved external symbol _main解决办法&lt;/div&gt;&lt;br /&gt;&lt;div class="who-digg-it"&gt; &lt;/div&gt;&lt;br /&gt;&lt;span &gt;解决外部符号错误:_main,_WinMain@16,__beginthreadex&lt;span style="font-size: 0pt;" class="copyctrl"&gt; -!t 'my`yK &lt;/span&gt; &lt;br&gt;&lt;br /&gt;在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有柚煤孟钅坎问? 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有:&lt;span style="font-size: 0pt;" class="copyctrl"&gt; m  1+4 # ' &lt;/span&gt; &lt;br&gt;&lt;br /&gt;libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main&lt;span style="font-size: 0pt;" class="copyctrl"&gt;  ( g d){j  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16&lt;span style="font-size: 0pt;" class="copyctrl"&gt;  OuR5  T&amp;gt;&amp;gt; &lt;/span&gt; &lt;br&gt;&lt;br /&gt;msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16&lt;span style="font-size: 0pt;" class="copyctrl"&gt;  * _g+&amp;amp;Us1 &lt;/span&gt; &lt;br&gt;&lt;br /&gt;nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex&lt;span style="font-size: 0pt;" class="copyctrl"&gt; }t, 6  oT &lt;/span&gt; &lt;br&gt;&lt;br /&gt;nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex &lt;span style="font-size: 0pt;" class="copyctrl"&gt; &amp;lt;u%N (=9 &lt;/span&gt; &lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;" class="copyctrl"&gt; ]wp N&amp;quot; w&amp;quot; &lt;/span&gt; &lt;br&gt;&lt;br /&gt;1. Windows子系统设置错误, 提示:&lt;span style="font-size: 0pt;" class="copyctrl"&gt; )WA5FzPL w &lt;/span&gt; &lt;br&gt;&lt;br /&gt;libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main&lt;span style="font-size: 0pt;" class="copyctrl"&gt;  * +oJ (e  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;" class="copyctrl"&gt;4f  {'{1]\ &lt;/span&gt; &lt;br&gt;&lt;br /&gt;Windows项目要使用Windows子系统, 而不是Console, 可以这样设置:&lt;span style="font-size: 0pt;" class="copyctrl"&gt; *^' y#/D g &lt;/span&gt; &lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;" class="copyctrl"&gt;z !D F-%3| &lt;/span&gt; &lt;br&gt;&lt;br /&gt;[Project] --&amp;gt; [Settings] --&amp;gt; 选择&amp;quot;Link&amp;quot;属性页,&lt;span style="font-size: 0pt;" class="copyctrl"&gt;       Qo!  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;在Project Options中将/subsystem:console改成/subsystem:windows&amp;nbsp;&amp;nbsp;&lt;span style="font-size: 0pt;" class="copyctrl"&gt; T`H .k&amp;quot;Y{  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;" class="copyctrl"&gt; Xn?{t  *{ &lt;/span&gt; &lt;br&gt;&lt;br /&gt;2. Console子系统设置错误, 提示:&lt;span style="font-size: 0pt;" class="copyctrl"&gt; vwK 7b0M  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16&lt;span style="font-size: 0pt;" class="copyctrl"&gt;  4Y~E` L0, &lt;/span&gt; &lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;" class="copyctrl"&gt;8 % P  &amp;gt;&amp;lt;&amp;quot; &lt;/span&gt; &lt;br&gt;&lt;br /&gt;控制台项目要使用Console子系统, 而不是Windows, 设置:&lt;span style="font-size: 0pt;" class="copyctrl"&gt; *Cl5Y': |h &lt;/span&gt; &lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;" class="copyctrl"&gt;sipSn  4 _ &lt;/span&gt; &lt;br&gt;&lt;br /&gt;[Project] --&amp;gt; [Settings] --&amp;gt; 选择&amp;quot;Link&amp;quot;属性页,&lt;span style="font-size: 0pt;" class="copyctrl"&gt; WveN']q \  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;在Project Options中将/subsystem:windows改成/subsystem:console &lt;span style="font-size: 0pt;" class="copyctrl"&gt;BR4C@ Z   &lt;/span&gt; &lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;" class="copyctrl"&gt;1  v BkC&amp;amp; &lt;/span&gt; &lt;br&gt;&lt;br /&gt;3. 程序入口设置错误, 提示:&lt;span style="font-size: 0pt;" class="copyctrl"&gt; dy2 $ &amp;amp;$=  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16&lt;span style="font-size: 0pt;" class="copyctrl"&gt; s  P.&amp;gt;uExt &lt;/span&gt; &lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;" class="copyctrl"&gt;G- (k~1 q  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口:&lt;span style="font-size: 0pt;" class="copyctrl"&gt; r#~P5[aV  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;" class="copyctrl"&gt;Os   hl6 i &lt;/span&gt; &lt;br&gt;&lt;br /&gt;[Project] --&amp;gt; [Settings] --&amp;gt; 选择&amp;quot;Link&amp;quot;属性页,&lt;span style="font-size: 0pt;" class="copyctrl"&gt; &amp;quot;1zk_#B * &lt;/span&gt; &lt;br&gt;&lt;br /&gt;在Category中选择Output,&lt;span style="font-size: 0pt;" class="copyctrl"&gt;  p HGR   L &lt;/span&gt; &lt;br&gt;&lt;br /&gt;再在Entry-point symbol中填入wWinMainCRTStartup, 即可&lt;span style="font-size: 0pt;" class="copyctrl"&gt; &amp;gt;I C  }SZ &lt;/span&gt; &lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;" class="copyctrl"&gt;F)c[@\ .dm &lt;/span&gt; &lt;br&gt;&lt;br /&gt;4. 线程运行时库设置错误, 提示:&lt;span style="font-size: 0pt;" class="copyctrl"&gt; X  ;t_-  f &lt;/span&gt; &lt;br&gt;&lt;br /&gt;nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex&lt;span style="font-size: 0pt;" class="copyctrl"&gt;  AmiBqZTp  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex&lt;span style="font-size: 0pt;" class="copyctrl"&gt; sz  23_{c? &lt;/span&gt; &lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;" class="copyctrl"&gt;o z!  {Fd- &lt;/span&gt; &lt;br&gt;&lt;br /&gt;这是因为MFC要使用多线程时库, 需要更改设置:&lt;span style="font-size: 0pt;" class="copyctrl"&gt; L a-Y,1x]( &lt;/span&gt; &lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;" class="copyctrl"&gt;uA k&amp;gt;h^pbM &lt;/span&gt; &lt;br&gt;&lt;br /&gt;[Project] --&amp;gt; [Settings] --&amp;gt; 选择&amp;quot;C/C++&amp;quot;属性页,&lt;span style="font-size: 0pt;" class="copyctrl"&gt; '%ET|1# SO &lt;/span&gt; &lt;br&gt;&lt;br /&gt;在Category中选择Code Generation,&lt;span style="font-size: 0pt;" class="copyctrl"&gt; ;Y-  M)k(  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;再在Use run-time library中选择Debug Multithreaded或者multithreaded &lt;span style="font-size: 0pt;" class="copyctrl"&gt;0 v~5 &amp;lt;Y'Z &lt;/span&gt; &lt;br&gt;&lt;br /&gt;咸鱼游侠(75374355) 12:11:11&lt;span style="font-size: 0pt;" class="copyctrl"&gt; &amp;lt;mW  .@e5_ &lt;/span&gt; &lt;br&gt;&lt;br /&gt;其中,&lt;span style="font-size: 0pt;" class="copyctrl"&gt;  W_qa? Jv  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;Single-Threaded&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; 单线程静态链接库(release版本)&lt;span style="font-size: 0pt;" class="copyctrl"&gt; Kh4w Q   &lt;/span&gt; &lt;br&gt;&lt;br /&gt;Multithreaded&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; 多线程静态链接库(release版本)&lt;span style="font-size: 0pt;" class="copyctrl"&gt; |F]g[En 4  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;multithreaded DLL&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; 多线程动态链接库(release版本)&lt;span style="font-size: 0pt;" class="copyctrl"&gt; s-'qYgA6p  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;Debug Single-Threaded&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 单线程静态链接库(debug版本)&lt;span style="font-size: 0pt;" class="copyctrl"&gt; _  7w_./y  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;Debug Multithreaded&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 多线程静态链接库(debug版本)&lt;span style="font-size: 0pt;" class="copyctrl"&gt; &amp;lt;[  ePw  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;Debug Multithreaded DLL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 多线程动态链接库(debug版本)&lt;span style="font-size: 0pt;" class="copyctrl"&gt; H8V/  O9|( &lt;/span&gt; &lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;" class="copyctrl"&gt; 9^x  @  / &lt;/span&gt; &lt;br&gt;&lt;br /&gt;单线程: 不需要多线程调用时, 多用在DOS环境下&lt;span style="font-size: 0pt;" class="copyctrl"&gt;  /P   J|d5 &lt;/span&gt; &lt;br&gt;&lt;br /&gt;多线程: 可以并发运行&lt;span style="font-size: 0pt;" class="copyctrl"&gt;  clUdag, C &lt;/span&gt; &lt;br&gt;&lt;br /&gt;静态库: 直接将库与程序Link, 可以脱离MFC库运行&lt;span style="font-size: 0pt;" class="copyctrl"&gt; X ]pEmHl  &lt;/span&gt; &lt;br&gt;&lt;br /&gt;动态库: 需要相应的DLL动态库, 程序才能运行&lt;span style="font-size: 0pt;" class="copyctrl"&gt; \n{&amp;amp;_ :b+q &lt;/span&gt; &lt;br&gt;&lt;br /&gt;release版本: 正式发布时使用&lt;span style="font-size: 0pt;" class="copyctrl"&gt;  9J ;ZZ/ 3 &lt;/span&gt; &lt;br&gt;&lt;br /&gt;debug版本: 调试阶段使用&amp;nbsp;&amp;nbsp;&lt;span style="font-size: 0pt;" class="copyctrl"&gt; k9  PoFC#k  &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-2229067707592238267?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/2229067707592238267/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=2229067707592238267' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/2229067707592238267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/2229067707592238267'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2009/02/error-lnk2001-unresolved-external.html' title='error LNK2001: unresolved external symbol _main解决办法'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-9149478092883979820</id><published>2009-02-09T14:29:00.002+08:00</published><updated>2009-02-09T14:35:39.602+08:00</updated><title type='text'>程序员的十层楼</title><content type='html'>&lt;a href="http://softwareblogs-zho.intel.com/2009/02/04/1071/" target="_blank"&gt;程序员的十层楼(1~3&lt;/a&gt;&lt;a href="http://softwareblogs-zho.intel.com/2009/02/04/1071/" target="_blank"&gt;层)&lt;/a&gt;作者： &lt;a href="http://softwareblogs-zho.intel.com/author/zhouweiming/" target="_blank"&gt;周伟明&lt;/a&gt;&lt;br /&gt;自西方文艺复兴以来，中国在自然科学方面落后西方很多，软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见，有些人认为中国的程序员水平远落后于西方，有些则认为中国的程序员个人能力并不比西方的程序员差，只是整个软件产业落后而已。那么，到底中国的程序员水平比西方程序员水平差，还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢？要解决这个问题，必须先知道程序员 有多少种技术层级，每个层级需要什么样的技术水平，然后再比较中国和西方在各个技术层级的人数，就可以知道到底有没有差距，差距有多大。当然，对于如何划分程序员的技术层级，不同公司或不同人会有不同的划分标准，下面的划分仅代表个人的观点，如有不当之处，还请砸板砖予以纠正。&lt;br /&gt;第1层 菜鸟第1层楼属于地板层，迈进这层楼的门槛是很低的。基本上懂计算机的基本操作，了解计算机专业的一些基础知识，掌握一门基本的编程语言如C/C++，或者Java，或者JavaScript，...，均可入门迈进这层。在这层上，中国有着绝对的优势，除了从计算机专业毕业的众多人数外，还有大量的通信、自动化、数学等相关专业的人士进入这一行，此外还有众多的其他专业转行的人士，人数绝对比西方多出甚多。并且还有一个优势就是我们这层人员的平均智商比西方肯定高。没有多少人愿意一辈子做菜鸟，因为做"菜鸟"的滋味实在是不咋的，整天被老大们吆喝着去装装机器，搭建一下测试环境，或者对照着别人写好的测试用例 做一些黑盒测试，好一点的可以被安排去写一点测试代码。当然如果运气"好"的话，碰到了国内的一些作坊式的公司，也有机会去写一些正式的代码。所以，菜鸟们总是在努力学习，希望爬更高的一层楼去。&lt;br /&gt;第2层 大虾从第1层爬到第2层相对容易一些，以C/C++程序员为例，只要熟练掌握C/C++编程语言，掌握C标准库和常用的各种数据结构算法，掌握STL的 基本实现和使用方法，掌握多线程编程基础知识，掌握一种开发环境，再对各种操作系统的API都去使用一下，搞网络编程的当然对socket编程要好好掌握 一下，然后再学习一些面向对象的设计知识和设计模式等，学习一些测试、软件工程和质量控制的基本知识，大部分人经过2～3年的努力，都可以爬到第2层，晋 升为"大虾"。中国的"大虾"数量和"菜鸟"数量估计不会少多少，所以这层上仍然远领先于西方。大虾们通常还是有些自知之明，知道自己只能实现一些简单的功能，做不了大的东西，有时候还会遇到一些疑难问题给卡住，所以他们对那些大牛级的人物通 常是非常崇拜的，国外的如Robert C. Martin、Linus Torvalds，国内的如求伯君、王志东等通常是他们崇拜的对象。其中的有些人希望有一天也能达到这些大牛级人物的水平，所以他们继续往楼上爬去。&lt;br /&gt;第3层 牛人由于"大虾"们经常被一些疑难问题给卡住，所以有了"大虾"们只好继续学习，他们需要将原来所学的知识进一步熟练掌握，比如以熟练掌握C++编程语 言为例，除了学一些基础性的C++书籍如《C++ Primer》，《Effective C++》，《Think in C++》，《Exception C++》等之外，更重要的是需要了解C++编译器的原理和实现机制，了解操作系统中的内部机制如内存管理、进程和线程的管理机制，了解处理器的基础知识和 代码优化的方法，此外还需要更深入地学习更多的数据结构与算法，掌握更深入的测试和调试知识以及质量管理和控制方法，对各种设计方法有更好的理解等。学习上面说的这些知识不是一挥而就的，不看个三五十本书并掌握它是做不到的。以数据结构算法来说，至少要看个5～10本这方面的著作；以软件设计来 说，光懂结构化设计、面向对象设计和一些设计模式是不够的，还要了解软件架构设计、交互设计、面向方面的设计、面向使用的设计、面向数据结构算法的设计、 情感化设计等，否则是很难进到这个楼层的。当然除了上面说的知识外，大虾们还需要去学习各种经验和技巧。当然这点难不倒他们，现在出版的书籍众多，网络上的技术文章更是不胜数，然后再去各种 专业论坛里泡一泡，把这些书籍和文章中的各种经验、技能、技巧掌握下来，再去学习一些知名的开源项目如Apache或Linux操作系统的源代码实现等。 此时对付一般的疑难问题通常都不在话下，菜鸟和大虾们会觉得你很"牛"，你也就爬到了第3层，晋升为"牛人"了。看了上面所讲的要求，可能有些大虾要晕过去了，成为牛人要学这么多东西啊！要求是不是太高了？其实要求一点也不高，这么点东西都掌握不了的话，怎么能让别人觉得你"牛"呢？需要提一下的是，进入多核时代后，从第2层爬到第3层增加了一道多核编程的门槛。当然要迈过这道门槛并不难，已经有很多前辈高人迈进了这道门槛，只要循着他们的足迹前进就可以了。想迈进这道门槛者不妨去学习一下TBB开源项目的源代码(链接：&lt;a href="http://www.threadingbuildingblocks.org/" target="_blank"&gt;http://www.threadingbuildingblocks.org/&lt;/a&gt;)，然后上Intel的博客（&lt;a href="http://softwareblogs-zho.intel.com/" target="_blank"&gt;http://softwareblogs-zho.intel.com/&lt;/a&gt;）和多核论坛（&lt;a href="http://forum.csdn.net/Intel/IntelMulti-core/" target="_blank"&gt;http://forum.csdn.net/Intel/IntelMulti-core/&lt;/a&gt;）去看看相关文章，再买上几本相关的书籍学习一下。在国内， 一旦成为"牛人"，通常可以到许多知名的公司里去，运气好者可以挂上一个架构师的头衔，甚至挂上一个"首席架构师"或者"首席xx学家"的头衔也不足为 奇。有不少爬到这层的人就以为到了楼顶了，可以眼睛往天上看了，开始目空一切起来，以为自己什么都可以做了，什么都懂了，经常在网络上乱砸板砖是这个群体 的最好写照。由此也看出，国内的牛人数量仍然众多，远多于西方的牛人数量，在这层上仍然是领先的。也有不少谦虚的"牛人"，知道自己现在还不到半桶水阶段。他们深知爬楼的游戏就像猴子上树一样，往下看是笑脸，往上看是屁股。为了多看笑脸，少看屁股，他们并没有在此停步不前，而是继续寻找到更上一层的楼梯，以便继续往上爬。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;a href="http://softwareblogs-zho.intel.com/2009/02/04/1073/" target="_blank"&gt;程序员的十层楼（4~5层）&lt;/a&gt;作者： &lt;a href="http://softwareblogs-zho.intel.com/author/zhouweiming/" target="_blank"&gt;周伟明&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;第4层 大牛从第3层爬到第4层可不像上面说过的那几层一样容易，要成为大牛的话，你必须要能做牛人们做不了的事情，解决牛人们解决不了问题。比如牛人们通常都 不懂写操作系统，不会写编译器，不懂得TCP/IP协议的底层实现，如果你有能力将其中的任何一个实现得象模象样的话，那么你就从牛人升级为"大牛"了。当然，由于各个专业领域的差别，这里举操作系统、编译器、TCP/IP协议只是作为例子，并不代表成为"大牛"一定需要掌握这些知识，以时下热门的 多核编程来说，如果你能比牛人们更深入地掌握其中的各种思想原理，能更加自如的运用，并有能力去实现一个象开源项目TBB库一样的东西，也可以成为"大 牛"，又或者你能写出一个类似Apache一样的服务器，或者写出一个数据库，都可以成为"大牛"。要成为"大牛"并不是一件简单的事情，需要付出比牛人们多得多的努力，一般来说，至少要看过200~400本左右的专业书籍并好好掌握它，除此之外，还得经常关注网络和期刊杂志上的各种最新信息。当"牛人"晋升为"大牛"，让"牛人们"发现有比他们更牛的人时，对"牛人"们的心灵的震撼是可想而知的。由于牛人们的数量庞大，并且牛人对大虾和 菜鸟阶层有言传身教的影响，所以大牛们通常能获得非常高的社会知名度，几乎可以用"引无数菜鸟、大虾、牛人竞折腰"来形容，看看前面提过的Linus Torvalds等大牛，应该知道此言不虚。虽然成为"大牛"的条件看起来似乎很高似的，但是这层楼并不是很难爬的一层，只要通过一定的努力，素质不是很差，还是有许多"牛人"可以爬到这一层的。由此可知，"大牛"这个楼层的人数其实并不像想像的那么少，例如比尔·盖茨之类的人好像也是属于这一层的。由于"大牛"这层的人数不少，所以也很难统计除到底是中国的"大牛"数量多还是西方的大牛数量多？我估计应该是个旗鼓相当的数量，或者中国的"大牛"们会更多一些。看到这里，可能会有很多人会以为我在这里说瞎话，Linus Torvalds写出了著名的Linux操作系统，我国并没有人写出过类似的东西啊，我国的"大牛"怎么能和西方的比呢? 不知大家注意到没有，Linus Torvalds只是写出了一个"象模象样"的操作系统雏形，Linux后来真正发展成闻名全球的开源操作系统期间，完全是因为许多支持开源的商业公司如 IBM等，派出了许多比Linus Torvalds更高楼层的幕后英雄在里面把它开发出来的。可能有些菜鸟认为Linus Torvalds是程序员中的上帝，不妨说个小故事：Linus，Richard Stallman和Don Knuth（高德纳）一同参加一个会议。Linus 说："上帝说我创造了世界上最优秀的操作系统。"Richard Stallman自然不甘示弱地说："上帝说我创造了世界上最好用的编译器。"Don Knuth一脸疑惑的说："等等，等等，我什么时候说过这些话？"由此可以看出，Linus Torvalds的技术水平并不像想像中那么高，只是"牛人"和"大虾"觉得"大牛"比他们更牛吧了。在我国，有一些当时还处于"大虾"层的人物，也能写 出介绍如何写操作系统的书，并且书写得非常出色，而且写出了一个有那么一点点象模象样的操作系统来。我想中国的"大牛"们是不会比西方差的，之所以没有人 写出类似的商业产品来，完全是社会环境的原因，并不是技术能力达不到的原因。"大牛"们之所以成为大牛，主要的原因是因为把"牛人"给盖了下去，并不是他们自己觉得如何牛。也许有很多菜鸟、大虾甚至牛人觉得"大牛"这层已经 到顶了，但大多数"大牛"估计应该是有自知之明的，他们知道自己现在还没有爬到半山腰，也就勉强能算个半桶水的水平，其中有些爬到这层没有累趴下，仍然能 量充沛，并且又有志者，还是会继续往更上一层楼爬的。看到这里，也许有些菜鸟、大虾、牛人想不明白了，还有比"大牛"们更高的楼层，那会是什么样的楼层？下面就来看看第5层楼的奥妙。&lt;br /&gt;&lt;br /&gt;第5层 专家当大牛们真正动手做一个操作系统或者类似的其他软件时，他们就会发现自己的基本功仍然有很多的不足。以内存管理为例，如果直接抄袭Linux或者其 他开源操作系统的内存管理算法，会被人看不起的，如果自动动手实现一个内存管理算法，他会发现现在有关内存管理方法的算法数量众多，自己并没有全部学过和 实践过，不知道到底该用那种内存管理算法。看到这里，可能有些人已经明白第5层楼的奥妙了，那就是需要做基础研究，当然在计算机里，最重要的就是"计算"二字，程序员要做基础研究，主要的内容就是研究非数值"计算"。非数值计算可是一个非常庞大的领域，不仅时下热门的"多核计算"与"云计算"属于非数值计算范畴，就是软件需求、设计、测试、调试、评估、质量控 制、软件工程等本质上也属于非数值计算的范畴，甚至芯片硬件设计也同样牵涉到非数值计算。如果你还没有真正领悟"计算"二字的含义，那么你就没有机会进到 这层楼来。可能有人仍然没有明白为什么比尔·盖茨被划在了大牛层，没有进到这层来。虽然比尔·盖茨大学未毕业，学历不够，但是家有藏书2万余册，进入软件这个 行业比绝大部分人都早，撇开他的商业才能不谈，即使只看他的技术水平，也可以算得上是学富五车，顶上几个普通的计算机软件博士之和是没有问题的，比起 Linus Torvalds之类的"大牛"们应该技高一筹才对，怎么还进不了这层楼呢？非常遗憾的是，从Windows操作系统的实现来看，其对计算的理解是很肤浅的，如果把Google对计算方面的理解比做大学生，比尔·盖茨只能算做一个初中生，所以比尔·盖茨永远只能做个大牛人，成不了"专家"。看到这里，也许国内的大牛们要高兴起来了，原来比尔·盖茨也只和我等在同一个层次，只要再升一层就可以超越比尔·盖茨了。不过爬到这层可没有从"牛 人"升为"大牛"那么简单，人家比尔·盖茨都家有2万多册书，让你看个500~1000本以上的专业书籍并掌握好它应该要求不高吧。当然，这并不是主要的 条件，更重要的是，需要到专业的学术站点去学习了，到ACM，IEEE，Elsevier，SpringerLink，SIAM等地方去下载论文应该成为 你的定期功课，使用Google搜索引擎中的学术搜索更是应该成为你的日常必修课。此外，你还得经常关注是否有与你研究相关的开源项目冒出来，例如当听到 有TBB这样针对多核的开源项目时，你应该第一时间到Google里输入"TBB"搜索一下，将其源代码下载下来好好研究一番，这样也许你的一只脚已经快 迈进了这层楼的门槛。当你象我上面说的那样去做了以后，随着时间的推移，总会有某天，你发现，在很多小的领域里，你已经学不到什么新东西了，所有最新出来的研究成果你几 乎都知道。此时你会发现你比在做"牛人"和"大牛"时的水平不知高出了多少，但是你一点也"牛"不起来，因为你学的知识和思想都是别人提出来的，你自己并 没有多少自己的知识和思想分享给别人，所以你还得继续往楼上爬才行。我不知道国内的"专家"到底有多少，不过有一点可以肯定的是，如果把那些专门蒙大家的"砖家"也算上的话，我们的砖家比西方的要多得多。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;a href="http://softwareblogs-zho.intel.com/2009/02/04/1077/" target="_blank"&gt;程序员的十层楼（6～7层）&lt;/a&gt;作者： &lt;a href="http://softwareblogs-zho.intel.com/author/zhouweiming/" target="_blank"&gt;周伟明&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;第6层 学者当"专家"们想继续往上一层楼爬时，他们几乎一眼就可以看到楼梯的入口，不过令他们吃惊的是，楼梯入口处竖了一道高高的门槛，上面写着"创新"二字。不幸的是，大多数人在爬到第5层楼时已经体能消耗过度，无力翻过这道门槛。有少数体能充足者，可以轻易翻越这道门槛，但是并不意味着体力消耗过度者就无法翻越，因为你只是暂时还没有掌握恢复体能的方法而已，当掌握了恢复体能的方法，将体能恢复后，你就可以轻易地翻越这道门槛了。怎么才能将体能恢复呢？我们的老祖宗"孔子"早就教导过我们"温故而知新"，在英文里，研究的单词是"research"，其前缀"re" 和"search"分别是什么意思不用我解释吧。或许有些人觉得"温故而知新"和"research"有些抽象，不好理解，我再给打个简单的比方，比如你 在爬一座高山，爬了半天，中途体力不支，怎么恢复体力呢？自然是休息一下，重新进食一些食物，体力很快就可以得到恢复。由此可知，对体能消耗过度者，休息＋重新进食通常是恢复体能的最佳选择。可惜的是，国内的老板们并不懂得这点，他们的公司里不仅连正常国家规定的休 息时间都不给足，有些公司甚至有员工"过劳死"出现。所以国内能翻越"创新"这道门槛的人是"少之又少"，和西方比起来估计是数量级的差别。再说说重新进食的问题，这个重新进食是有讲究的，需要进食一些基础性易消化的简单食物，不能进食山珍海味级的复杂食物，否则很难快速吸收。以查找为 例，并不是去天天盯着那些复杂的查找结构和算法进行研究，你需要做的是将二分查找、哈希查找、普通二叉树查找等基础性的知识好好地复习几遍。以哈希查找为例，首先你需要去将各种冲突解决方法如链式结构、二次哈希等编写一遍，再试试不同种类的哈希函数，然后还需要试试在硬盘中如何实现哈希 查找，并考虑数据从硬盘读到内存后，如何组织硬盘中的数据才能快速地在内存中构建出哈希表来，...，这样你可能需要将一个哈希表写上十几个不同的版本， 并比较各个版本的性能、功能方面的区别和适用范围。总之，对任何一种简单的东西，你需要考虑各种各样的需求，以需求来驱动研究。最后你将各种最基础性的查找结构和算法都了然于胸后，或许某天你再看其他更复杂的查找算法，或者你在散步时，脑袋里灵光一现，突然间就发现了更好的方法，也就从专家晋升为"学者"了。学者所做的事情，通常都是在前人的基础上，进行一些小的优化和改进，例如别人发明了链式基数排序的方法，你第1个发现使用一定的方法，可以用数组替代链表进行基数排序，性能还能得到进一步提高。由于学者需要的只是一些小的优化改进，因此中国还是有一定数量的学者。不过和国外的数量比起来，估计少了一个数量级而已。也许有人会觉得现在中国许多公司申请专利的数量达到甚至超过西方发达国家了，我们的学者数量应该不会比他们少多少。因此，有必要把专利和这里说的创新的区别解释一下。所谓专利者，只要是以前没有的，新的东西，都可以申请专利；甚至是以前有的东西，你把他用到了一个新的领域的产品里去，也可以申请专利。比如你在房 子里造一个水泥柱子，只要以前没有人就这件事申请专利，那么你就可以申请专利，并且下次你把水泥柱子挪一个位置，又可以申请一个新的专利；或者你在一个柜 子上打上几个孔，下次又把孔的位置改一改，...，均可申请专利。这层楼里所说的创新，是指学术层面的创新，是基础研究方面的创新，和专利的概念是完全不同的，难度也是完全不同的。你即使申请了一万个象那种打孔一类的专利，加起来也够不到这层楼里的一个创新。当你爬到第6层楼时，你也许会有一种突破极限的快感，因为你终于把那道高高的写着"创新"二字的门槛给翻过去了，实现了"0"的突破。这时，你也许 有一种"独上高楼，欲望尽天涯路"的感觉，但是很快你会发现看到的都是比较近的路，远处的路根本看不清楚。如果你还有足够的体力的话，你会想爬到更高一层 的楼层去。&lt;br /&gt;&lt;br /&gt;第7层 大师从第6层楼爬到第7层楼，并没有多少捷径可走，主要看你有没有足够的能量。你如果能象Hoare一样设计出一个快速排序的算法；或者象Eugene W. Myers一样设计出了一个用编辑图的最短路径模型来解决diff问题的算法；或者象M.J.D. Powell一样提出了一个能够处理非线性规划问题的SQP方法；或者你发现基于比较的排序算法，它的复杂度下界为O(NLogN)；或者你发现用栈可以 将递归的算法变成非递归的；或者你设计出一个红黑树或者AVL树之类的查找结构；或者你设计出一个象C++或Java一样的语言；或者你发明了 UML；...，你就爬到了第7层，晋升为"大师"了。上面举的这些例子中，其中有些人站的楼层比这层高，这里只是为了形象说明而举例他们的某个成就。从上面列出的一些大师的贡献可以看出，成为大师必须 要有较大的贡献。首先解决问题必须是比较重要的，其次你要比前辈们在某方面有一个较大的提高，或者你解决的是一个全新的以前没有解决过的问题；最重要的 是，主要的思路和方法必须是你自己提供的，不再是在别人的思路基础上进行的优化和改进。看了上面这些要求，如果能量不够的话，你也许会觉得有些困难，所以不是每个人都能成为"大师"的。中国软件业里能称得上是"大师"的人，用屈指可数来形容，估计是绰绰有余。值得一提得是，国外的"大师"就象我们的"大牛"一样满天飞的多。我把我猜测本国有可能进到这层楼的大师列一下，以起个抛砖引玉的作用。汉王的"手写识别"技术由于是完全保密的，不知道它里面用了什么思想，原创思 想占的比重有多少，因此不知道该把它划到这层楼还是更高一层楼去。原山东大学王小云教授破解DES和MD5算法时，用到的方法不知道是不是完全原创的，如 果是的话也可进到这层楼来。陈景润虽然没有彻底解决哥德巴赫猜想，但他在解决问题时所用的方法是创新的，因此也可以进到这层楼来。当然，如果能彻底解决哥德巴赫猜想，那么可以算到更高的楼层去。求伯君和王志东等大牛们，他们在做WPS和表格处理之类的软件时，不知是否有较大的原创算法在里面，如果有的话就算我错把他们划到了大牛层。由于所 学有限，不知道国内还有那些人能够得上"大师"的级别，或许有少量做研究的教授、院士们，可以达到这个级别，有知道的不妨回个帖子晾一晾。鉴于"大师"这个称号的光环效应，相信有不少人梦想着成为"大师"。或许你看了前面举的一些大师的例子，你会觉得要成为大师非常困难。不妨说一下，现在有一条通往"大师"之路的捷径打开了，那就是多核计算领域，有大量的处女地等待大家去挖掘。以前在单核时代开发的各种算法，现在都需要改写成并行的。数据结构与算法、图像处理、数值计算、操作系统、编译器、测试调试等各个领域，都存在大量的机会，可以让你进到这层楼来，甚至有可能让你进到更高一层楼去。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://softwareblogs-zho.intel.com/2009/02/04/1081/" target="_blank"&gt;程序员的十层楼(8~9层）&lt;/a&gt;&lt;br /&gt;作者： &lt;a href="http://softwareblogs-zho.intel.com/author/zhouweiming/" target="_blank"&gt;周伟明&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;第8层 科学家&lt;br /&gt;科学家向来都是一个神圣的称号，因此我把他放在了“大师”之上。要成为科学家，你的贡献必须超越大师，不妨随便举一些例子。&lt;br /&gt;如果你象Dijkstra一样设计了ALGOL语言，提出了程序设计的三种基本结构：顺序、选择、循环，那么你可以爬到第8层楼来。顺便说一下，即使抛开这个成果，Dijkstra凭他的PV操作和信号量概念的提出，同样可以进到这层楼。&lt;br /&gt;如果你象Don Knuth一样，是数据结构与算法这门学科的重要奠基者，你也可以进到这层楼来。当然，数据结构和算法这门学科不是某个人开创的，是许多大师和科学家集体开创的。&lt;br /&gt;如果你象巴科斯一样发明了Fortran语言，并提出了巴科斯范式，对高级程序语言的发展起了重要作用，你也可以进到这层楼来。&lt;br /&gt;或者你象Ken Thompson、Dennis Ritchie一样发明了Unix操作系统和功能强大、高效、灵活、表达力强的C语言，对操作系统理论和高级编程语言均作出重大贡献，那么你也可以进到这层楼来。&lt;br /&gt;或者你有Frederick P. Brooks一样机会，可以去领导开发IBM的大型计算机System/360和OS/360操作系统，并在失败后反思总结，写出《人月神话》，对软件工程作出里程碑式的贡献，你也可以进到这层来。&lt;br /&gt;或者你提出了面向对象设计的基本思想，或者你设计了互联网的TCP/IP协议，或者你象Steven A.Cook一样奠定NP完全性的理论基础，或者你象Frances Allen一样专注于并行计算来实现编译技术，在编译优化理论和技术取得基础性的成就，…，均可进入这层。&lt;br /&gt;当然，如果你发明了C++语言或者Java语言，你进不到这层来，因为你用到的主要思想都是这层楼中的科学家提出的，你自己并没有没有多少原创思想在里面。&lt;br /&gt;看了上面列出的科学家的成就，你会发现，要成为“科学家”，通常要开创一门分支学科，或者是这个分支学科的奠基者，或者在某个分支学科里作出里程碑式的重大贡献。如果做不到这些的话，那么你能象Andrew C. Yao（姚期智）一样在对计算理论的多个方向如伪随机数生成，密码学与通信复杂度等各个方向上作出重要贡献，成为集大成者，也可以进入这层楼。&lt;br /&gt;成为“科学家”后，如果你有幸象Dijkstra一样，出现在一个非常重视科学的国度。当你去世时，你家乡满城的人都会自动地去为你送葬。不过如果不幸生错地方的话，能不挨“板砖”估计就算万幸了。&lt;br /&gt;从上面随便举的一些例子中，你可能能猜到，西方科学家的数量是非常多的，于是你会想中国应该也有少量的科学家吧？我可以很负责任地告诉你一个不幸的结果，中国本土产生的科学家的数量为0。目前在国内，软件领域的唯一的科学家就是上面提过的姚期智，还是国外请回来的，并不是本土产生的。&lt;br /&gt;可能你不同意我说的本土科学家数量为0的结论，因为你经常看到有许多公司里都有所谓“首席XX科学家”的头衔。我想说的是，这些所谓的“首席XX科学家”都是远远够不到这层楼的级别的，有些人的水平估计也就是一个“牛人”或“大牛”的级别，好一点的最多也就一个“学者”的级别。尤其是那些被称作“首席经X学家”的，基本上可以把称号改为“首席坑大家”。&lt;br /&gt;虽然我国没有人能爬到这层楼上来，但是西方国家仍然有许多人爬到了比这层更高的楼上。如果要问我们比西方落后多少？那么可以简单地回答为：“落后了三层楼”。下面就来看看我们做梦都没有到过的更高一层楼的秘密。&lt;br /&gt;&lt;br /&gt;第9层 大科学家&lt;br /&gt;进入这层楼的门槛通常需要一些运气，比如某天有个苹果砸到你头上时，你碰巧发现了万有引力，那么你可以进到这层楼来。当然，万有引力几百年前就被人发现了，如果你现在到处嚷嚷着说你发现了万有引力，恐怕马上会有人打110，然后警察会把你送到不正常人类的聚集地去。因此，这里举万有引力的例子，只是说你要有类似的成就才能进到这层楼来。&lt;br /&gt;牛顿发现万有引力定律开创 了经典物理运动力学这门学科，如果你也能开创一门大的学科，那么你就从科学家晋升为“大科学家”。比如爱因斯坦创建了相对论，从一个小职员变成了大科学 家。当然大科学家可远不止这两人，数学界里比物理学界更是多得多，如欧几里得创建了平面几何，笛卡尔开创解析几何，还有欧拉、高斯、莱布尼茨等数不清的人 物，跟计算相关的大科学家则有图灵等人。&lt;br /&gt;从上面列出的一些大科学家 可以发现，他们的成就不仅是开创了一个大的学科，更重要的是他们的成就上升到了“公理”的层面。发现公理通常是需要一点运气的，如果你的运气不够好的话， 另外还有一个笨办法也可以进到这层楼来，那就是成为集大成者。例如冯·诺伊曼，对数学的所有分支都非常了解，许多领域都有较大的贡献，即使撇开他对计算机 的开创贡献，成为大科学家照样绰绰有余。&lt;br /&gt;当然，程序员们最关心的是 自己有没有机会变成大科学家。既然计算机这门大学科的开创性成果早就被冯·诺伊曼、图灵等人摘走了，那么程序员们是不是没有机会变成大科学家了呢？我们的 古人说得好：“江山代有才人出，各领风骚数百年”，现在在计算机这门学科下面诞生了许多非常重要的大的分支，所以你还是有足够的机会进到这层楼的。&lt;br /&gt;如果你能够彻底解决自然语言理解（机器翻译）这门学科中的核心问题， 或者你在人工智能或者机器视觉（图像识别）方面有突破性的发现，那么你同样可以轻易地晋升为“大科学家”。这样当某天你老了去世时，或许那天国人已经觉醒，你也能享受到如Dijkstra一样的待遇，有满城甚至全国的人去为你送葬。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;现在还剩下另外一个大家感兴趣的问题没有讨论，那就是这层中已经出现了牛顿、爱因斯坦、高斯等我们平常人都认为是顶级的科学家，是不是这层已经是楼顶了呢？相信还记得本文标题的人应该知道现在仅仅是第9层，还有第10层没有到达呢。可能不少人现在要感到困惑了，难道还有人站在比牛顿、爱因斯坦、高斯等人更高的楼层上？&lt;br /&gt;这个世界上确实存在可以用一只手的手指数得清的那么几个人，他们爬到了第10层楼上。因此，第10层楼不是虚构的，而是确实存在的。如果对此有疑惑或者认为我在胡诌一番的话，那么不妨继续往下看下去，窥一下第10层楼的秘密。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-9149478092883979820?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/9149478092883979820/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=9149478092883979820' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/9149478092883979820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/9149478092883979820'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2009/02/blog-post.html' title='程序员的十层楼'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-185614743290168348</id><published>2009-02-06T13:48:00.002+08:00</published><updated>2009-02-06T13:52:58.124+08:00</updated><title type='text'>ParseCommandLine</title><content type='html'>&lt;table style="TABLE-LAYOUT: fixed"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div class="cnt"&gt;在我们用向导创建MFC应用程序时，在App::InitInstance()中总会出现下面这样的代码到底是什么意思呢，我查了很多资料终于使其漏出庐山真面目。&lt;br /&gt;&lt;br /&gt;CCommandLineInfo cmdInfo;//定义命令行&lt;br /&gt;&lt;br /&gt;ParseCommandLine(cmdInfo);//解析命令行&lt;br /&gt;&lt;br /&gt;// 调度在命令行中指定的命令。如果&lt;br /&gt;&lt;br /&gt;// 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序，则返回 FALSE。&lt;br /&gt;&lt;br /&gt;if (!ProcessShellCommand(cmdInfo)) //程序启动时创建新文档&lt;br /&gt;&lt;br /&gt;   return FALSE;&lt;br /&gt;&lt;br /&gt;// 唯一的一个窗口已初始化，因此显示它并对其进行更新&lt;br /&gt;&lt;br /&gt;m_pMainWnd-&amp;gt;ShowWindow(SW_SHOW);&lt;br /&gt;&lt;br /&gt;m_pMainWnd-&amp;gt;UpdateWindow();&lt;br /&gt;&lt;br /&gt;这几行代码是程序启动时创建新文档的关键代码 .&lt;br /&gt;&lt;br /&gt;1: 我们首先来看看让CCommandLineInfo类是个什么东西:( 部分源代码 )&lt;br /&gt;&lt;br /&gt;//in afxwin.h&lt;br /&gt;class CCommandLineInfo : public CObject&lt;br /&gt;{&lt;br /&gt;     public:&lt;br /&gt;     // Sets default values&lt;br /&gt;   CCommandLineInfo();&lt;br /&gt;   BOOL m_bShowSplash;&lt;br /&gt;   BOOL m_bRunEmbedded;&lt;br /&gt;   BOOL m_bRunAutomated;&lt;br /&gt;   enum { FileNew, FileOpen, FilePrint, FilePrintTo, FileDDE, AppRegister,&lt;br /&gt;   AppUnregister, FileNothing = -1 } m_nShellCommand;&lt;br /&gt;// not valid for FileNew&lt;br /&gt;CString m_strFileName;&lt;br /&gt;   . . .&lt;br /&gt;   ~CCommandLineInfo();&lt;br /&gt;   . . .&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;　　这里要重点注意enum {FileNew, . . . , FileNothing = -1 }m_nShellCommand;&lt;br /&gt;这里联合类型定义的m_nShellCommand 就是外壳程序执行的命令类型 , 如果m_nShellCommand设置为FileNew ,那么程序就会创建新文档 . 如果想在文档开始时不创建新文档 , 就必须将m_nShellCommand设置为FilleNothing .&lt;br /&gt;&lt;br /&gt;下面我们再看看CCommandLineInfo的构造函数 .&lt;br /&gt;&lt;br /&gt;//in appcore.cpp&lt;br /&gt;CCommandLineInfo::CCommandLineInfo()&lt;br /&gt;{&lt;br /&gt;         m_bShowSplash   = TRUE;&lt;br /&gt;         m_bRunEmbedded   = FALSE;&lt;br /&gt;         m_bRunAutomated = FALSE;&lt;br /&gt;         m_nShellCommand = FileNew;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;这里很明白的看出 , 构造函数中 , 缺省将 m_nShellCommand设置为 FileNew .&lt;br /&gt;&lt;br /&gt;2:再来看看ParseCommandLine(cmdInfo); 函数 .&lt;br /&gt;&lt;br /&gt;void CWinApp::ParseCommandLine(CCommandLineInfo&amp;amp; rCmdInfo)&lt;br /&gt;{&lt;br /&gt;     for (int i = 1; i &amp;lt; __argc; i++)   // extern int __argc;           /* count of cmd line args */&lt;br /&gt;     {&lt;br /&gt;         LPCTSTR pszParam = __targv[i];   //extern char ** __argv;       /* pointer to table of cmd line args */&lt;br /&gt;                                                       extern wchar_t ** __wargv;   /* pointer to table of wide cmd line args */&lt;br /&gt;                                                       difine __targv   __wargv&lt;br /&gt;         BOOL bFlag = FALSE;&lt;br /&gt;         BOOL bLast = ((i + 1) == __argc);&lt;br /&gt;         if (pszParam[0] == '-'  pszParam[0] == '/')&lt;br /&gt;         {&lt;br /&gt;             // remove flag specifier&lt;br /&gt;             bFlag = TRUE;&lt;br /&gt;             ++pszParam;&lt;br /&gt;         }&lt;br /&gt;         rCmdInfo.ParseParam(pszParam, bFlag, bLast);&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;可以看出ParseCommandLine主要是对输入的命令行参数做一些分析 , 并调用ParseParam来进行处理 .继续分析 ParseParam函数 , 查看如下源代码:&lt;br /&gt;&lt;br /&gt;void CCommandLineInfo::ParseParam(const TCHAR* pszParam,BOOL bFlag,BOOL bLast)&lt;br /&gt;{&lt;br /&gt;     if (bFlag)&lt;br /&gt;     {&lt;br /&gt;         USES_CONVERSION;&lt;br /&gt;         ParseParamFlag(T2CA(pszParam));&lt;br /&gt;     }&lt;br /&gt;     else&lt;br /&gt;         ParseParamNotFlag(pszParam);&lt;br /&gt;     ParseLast(bLast);&lt;br /&gt;}&lt;br /&gt;其它的函数撇开不看 , 我们重点来分析一下ParseParamFlag()和ParseLast()函数 .&lt;br /&gt;&lt;br /&gt;void CCommandLineInfo::ParseParamFlag(const char* pszParam)&lt;br /&gt;{&lt;br /&gt;     // OLE command switches are case insensitive, while&lt;br /&gt;     // shell command switches are case sensitive&lt;br /&gt;     if (lstrcmpA(pszParam, "pt") == 0)&lt;br /&gt;         m_nShellCommand = FilePrintTo;&lt;br /&gt;     else if (lstrcmpA(pszParam, "p") == 0)&lt;br /&gt;         m_nShellCommand = FilePrint;&lt;br /&gt;     else if (lstrcmpiA(pszParam, "Unregister") == 0 &lt;br /&gt;             lstrcmpiA(pszParam, "Unregserver") == 0)&lt;br /&gt;         m_nShellCommand = AppUnregister;&lt;br /&gt;     else if (lstrcmpA(pszParam, "dde") == 0)&lt;br /&gt;     {&lt;br /&gt;         AfxOleSetUserCtrl(FALSE);&lt;br /&gt;         m_nShellCommand = FileDDE;&lt;br /&gt;     }&lt;br /&gt;     else if (lstrcmpiA(pszParam, "Embedding") == 0)&lt;br /&gt;     {&lt;br /&gt;         AfxOleSetUserCtrl(FALSE);&lt;br /&gt;         m_bRunEmbedded = TRUE;&lt;br /&gt;         m_bShowSplash = FALSE;&lt;br /&gt;     }&lt;br /&gt;     else if (lstrcmpiA(pszParam, "Automation") == 0)&lt;br /&gt;     {&lt;br /&gt;         AfxOleSetUserCtrl(FALSE);&lt;br /&gt;         m_bRunAutomated = TRUE;&lt;br /&gt;         m_bShowSplash = FALSE;&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ParseParamFlag判断传过来的字符串 ,判断它的参数类型 , 并根据参数类型做不同的处理 .&lt;br /&gt;&lt;br /&gt;void CCommandLineInfo::ParseLast(BOOL bLast)&lt;br /&gt;{&lt;br /&gt;     if (bLast)&lt;br /&gt;     {&lt;br /&gt;         if (m_nShellCommand == FileNew &amp;amp;&amp;amp; !m_strFileName.IsEmpty())&lt;br /&gt;             m_nShellCommand = FileOpen;&lt;br /&gt;         m_bShowSplash = !m_bRunEmbedded &amp;amp;&amp;amp; !m_bRunAutomated;&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;ParseLast会判断是否是是FileNew打开新文档 , 如果是打开新文档 , 并且打开的文档名不为空的话, 就假定用户想打开这个文档 , 把命令设置为FileOpen .&lt;br /&gt;&lt;br /&gt;最后 , 我们可以总结一下ParseCommandLine的作用 . ParseCommandLine的作用主要是分析命令行参数，如果没有命令行参数 ，ParseCommandLine()就假定用户想新建一个文档，于是设置一个FileNew命令，如果命令行参数中有一个文件名，ParseCommandLine()就假定用户想打开该文件，于是设置一个FileOpen命令。&lt;br /&gt;&lt;br /&gt;3: 最后 , 我们来重点看看外壳命令解析的主角 : ProcessShellCommand ();(部分源代码)&lt;br /&gt;&lt;br /&gt;BOOL CWinApp::ProcessShellCommand(CCommandLineInfo&amp;amp; rCmdInfo)&lt;br /&gt;{&lt;br /&gt;       BOOL bResult = TRUE;&lt;br /&gt;       switch (rCmdInfo.m_nShellCommand)&lt;br /&gt;     {&lt;br /&gt;           case CCommandLineInfo::FileNew:&lt;br /&gt;                   if (!AfxGetApp()-&amp;gt;OnCmdMsg(ID_FILE_NEW, 0, NULL, NULL))&lt;br /&gt;                         OnFileNew();&lt;br /&gt;                   if (m_pMainWnd == NULL)&lt;br /&gt;                         bResult = FALSE;&lt;br /&gt;                   break;&lt;br /&gt;         case CCommandLineInfo::FileOpen:       . . .&lt;br /&gt;         case CCommandLineInfo::FilePrintTo:     . . .&lt;br /&gt;         case CCommandLineInfo::FilePrint:       . . .&lt;br /&gt;         case CCommandLineInfo::FileDDE:       . . .&lt;br /&gt;         case CCommandLineInfo::AppRegister:   . . .&lt;br /&gt;         case CCommandLineInfo::AppUnregister: . . .&lt;br /&gt;         . . .&lt;br /&gt;       }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;代码看到这里 , 一切都很明白了 . ProcessShellCommand分析m_nShellCommand ,并根据m_nShellCommand不同的类型值进行不同的处理 .&lt;br /&gt;&lt;br /&gt;再来分析下面两行代码:&lt;br /&gt;CCommandLineInfo cmdInfo;&lt;br /&gt;         ParseCommandLine(cmdInfo);&lt;br /&gt;     　   if (!ProcessShellCommand(cmdInfo)) return FALSE;&lt;br /&gt;&lt;br /&gt;1: 当CCommandLineInfo cmdInfo进行定义时 , 首先调用构造函数 , 构造函数中m_nShellCommand被设置为FileNew&lt;br /&gt;　2: 然后执行ParseCommandLine(cmdInfo);对命令进行分析 .&lt;br /&gt;&lt;br /&gt;   3: 最后执行ProcessShellCommand (cmdInfo) , ProcessShellCommand ()判断m_nShellCommand为FileNew , 于是调用OnFileNew()创建了一个新的文档 .&lt;br /&gt;&lt;br /&gt;   这也就是创建新文档的来龙去脉 .&lt;br /&gt;&lt;br /&gt;最后, 我们看怎么样解决不想在应用程序启动时的创建新文档的问题:&lt;br /&gt;&lt;br /&gt;直接在InitInstance()函数中用如下代码代替原来的几行即可:&lt;br /&gt;&lt;br /&gt;CCommandLineInfo cmdInfo;&lt;br /&gt;cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;&lt;br /&gt;ParseCommandLine(cmdInfo); &lt;/div&gt;&lt;div class="cnt"&gt;    if (!ProcessShellCommand(cmdInfo)) return FALSE;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="opt"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-185614743290168348?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/185614743290168348/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=185614743290168348' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/185614743290168348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/185614743290168348'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2009/02/parsecommandline.html' title='ParseCommandLine'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-6164605138752029448</id><published>2009-02-05T17:11:00.006+08:00</published><updated>2009-02-05T17:19:16.625+08:00</updated><title type='text'></title><content type='html'>&lt;p&gt;&lt;span class="f14"&gt;　　如果你是一名VC程序员，你是否被一个问题所困扰？项目小组有编程规范要求严格执行，但是项目进度紧张，每天都有大量的代码需要完成。很难做到既能保证开发进度，又能编写出良好风格、缩进规范的代码。如果采用其他工具对源文件进行代码整理，又需在VC之外重新打开源代码，整理结果不能直接在VC中查看编译。能不能在VC中集成一种工具，轻松点击VC按钮即可整理源码呢？回答是有。&lt;br /&gt;&lt;br /&gt;　　下面我就介绍一个名为astyle的开源代码整理工具以及在VC开发环境中集成配置的方法。可以迅速实现在VC中进行代码整理的功能，希望能给你一定的帮助。&lt;br /&gt;&lt;br /&gt;　　1、 访问&lt;a href="http://sourceforge.net/projects/astyle"&gt;http://sourceforge.net/projects/astyle&lt;/a&gt;，下载astyle包，包括源文件、可执行文件、使用说明等。&lt;br /&gt;&lt;br /&gt;　　2、 拷贝astyle.exe到c:\windows\system32下。&lt;br /&gt;&lt;br /&gt;　　3、 接下来配置VC，添加astyle代码整理功能。&lt;br /&gt;&lt;br /&gt;　　1） 在VC中新建菜单项"格式整理"。在工具栏上点击右键打开Customize窗口，在Tools标签页新建一个菜单项："格式整理"，并在Command中输入菜单项对应外挂工具程序当前所在路径："c:\windows\system32\astyle.exe"。&lt;br /&gt;&lt;table border="0" width="90%" align="center"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img border="1" hspace="3" alt="轻松实现VisualC++源代码规范整理" vspace="1" onerror="this. src='http://image2.sina.com.cn/IT/upload/images/2005/0228/153041/U74D537756Id2c50b4d22f4b1127095451844bdab9e.jpg';" align="center" src="http://image2.sina.com.cn/IT/upload/images/2005/0228/153041/U74D537756Id2c50b4d22f4b1127095451844bdab9e.jpg" /&gt;&lt;br /&gt;图1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;　　2） 在Arguments中输入外挂工具程序配置参数--style=ansi ${FileName}${FileExt}。其中 --style=ansi表示选择使用ANSI 风格格式和缩进。当然也可选用其他风格，可选的风格和样例如下：&lt;br /&gt;&lt;br /&gt;　　--style=ansi：ANSI 风格格式和缩进&lt;br /&gt;&lt;table border="1" bordercolor="#ffcc66" width="90%" bgcolor="#dadacf" align="center"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;namespace foospace&lt;br /&gt;{&lt;br /&gt;　int Foo()&lt;br /&gt;　{&lt;br /&gt;　　if (isBar)&lt;br /&gt;　　{&lt;br /&gt;　　　bar();&lt;br /&gt;　　　return 1;&lt;br /&gt;　　}&lt;br /&gt;　　else&lt;br /&gt;　　　return 0;&lt;br /&gt;　}&lt;br /&gt;}&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;　　-- style=kr ：Kernighan&amp;amp;Ritchie 风格格式和缩进&lt;br /&gt;&lt;table border="1" bordercolor="#ffcc66" width="90%" bgcolor="#dadacf" align="center"&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;namespace foospace {&lt;br /&gt;　int Foo() {&lt;br /&gt;　　if (isBar) {&lt;br /&gt;　　　bar();&lt;br /&gt;　　　return 1;&lt;br /&gt;　　} else&lt;br /&gt;　　　return 0;&lt;br /&gt;　}&lt;br /&gt;}&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;　　--style=linux ：Linux 风格格式和缩进 &lt;table border="1" bordercolor="#ffcc66" width="90%" bgcolor="#dadacf" align="center"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;namespace foospace&lt;br /&gt;{&lt;br /&gt;　int Foo()&lt;br /&gt;　{&lt;br /&gt;　　if (isBar) {&lt;br /&gt;　　　bar();&lt;br /&gt;　　　return 1;&lt;br /&gt;　　} else&lt;br /&gt;　　　return 0;&lt;br /&gt;　}&lt;br /&gt;}&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;　　--style=gnu ：GNU 风格格式和缩进&lt;br /&gt;&lt;table border="1" bordercolor="#ffcc66" width="90%" bgcolor="#dadacf" align="center"&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;namespace foospace&lt;br /&gt;{&lt;br /&gt;　int Foo()&lt;br /&gt;　{&lt;br /&gt;　　if (isBar)&lt;br /&gt;　　{&lt;br /&gt;　　　bar();&lt;br /&gt;　　　return 1;&lt;br /&gt;　　}&lt;br /&gt;　　else&lt;br /&gt;　　　return 0;&lt;br /&gt;　}&lt;br /&gt;}&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;　　-- style=java ：Java 风格格式和缩进&lt;br /&gt;&lt;table border="1" bordercolor="#ffcc66" width="90%" bgcolor="#dadacf" align="center"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;class foospace {&lt;br /&gt;　int Foo() {&lt;br /&gt;　　if (isBar) {&lt;br /&gt;　　　bar();&lt;br /&gt;　　　return 1;&lt;br /&gt;　　} else&lt;br /&gt;　　　return 0;&lt;br /&gt;　}&lt;br /&gt;}&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;　　更详细的配置参数可参加见astyle随机文档。&lt;br /&gt;&lt;br /&gt;　　--style=ansi "$(FileName)$(FileExt)"    :表示整理当前编辑的源文件。&lt;br /&gt;&lt;br /&gt;　　在Initial directory中输入$(FileDir)参数：表示初始运行路径。设置该项值后，astyle启动的初始路径为当前文件路径。&lt;br /&gt;&lt;table border="0" width="90%" align="center"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;div align="center"&gt;&lt;img border="1" hspace="3" alt="轻松实现VisualC++源代码规范整理" vspace="1" onerror="this. src='http://image2.sina.com.cn/IT/upload/images/2005/0228/153041/U74D537756I33d761bf9505e5330d0fb9398853a8d6.jpg';" align="center" src="http://image2.sina.com.cn/IT/upload/images/2005/0228/153041/U74D537756I33d761bf9505e5330d0fb9398853a8d6.jpg" /&gt;&lt;br /&gt;图2&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;　　3） 为使在astyle.exe整理代码时不弹出Dos框并将运行结果直接显示到VC中，需选中"Use Output Window"选项，如图所示。&lt;br /&gt;&lt;table border="0" width="90%" align="center"&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img border="1" hspace="3" alt="轻松实现VisualC++源代码规范整理" vspace="1" onerror="this. src='http://image2.sina.com.cn/IT/upload/images/2005/0228/153041/U74D537756Id2ffd2592d3ed65fbc5655fe3963ca67.gif';" align="center" src="http://image2.sina.com.cn/IT/upload/images/2005/0228/153041/U74D537756Id2ffd2592d3ed65fbc5655fe3963ca67.gif" /&gt;&lt;br /&gt;图3&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;　　4) 为方便astyle工具的使用，还可以将该菜单项添加到便捷工具栏中。同样也是在Tools下面的Customize中进行设置，设置时注意工具图标编号，如图所示：&lt;br /&gt;&lt;table border="0" width="90%" align="center"&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;div align="center"&gt;&lt;img border="1" hspace="3" alt="轻松实现VisualC++源代码规范整理" vspace="1" onerror="this. src='http://image2.sina.com.cn/IT/upload/images/2005/0228/153041/U74D537756I7eb843bf3d2bc1f59c18e955f9cb34b8.jpg';" align="center" src="http://image2.sina.com.cn/IT/upload/images/2005/0228/153041/U74D537756I7eb843bf3d2bc1f59c18e955f9cb34b8.jpg" /&gt;&lt;br /&gt;图4&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;　　5）至此设置工作基本完成，还有一点注意事项需要说明。因为astyle对代码进行整理时整理的对象是硬盘中的源文件，如果未对源文件进行保存就直接进行代码整理的话，VC会弹出源文件重新载入提示框，如果选择是，则会丢掉刚刚开发的代码，这无疑是程序员最痛苦的事；选择否又会使整理操作白费了。所以为保证开发代码及时得到保存，需在整理前保存修改源文件。要实现该功能，只需在Tools中的option设置中，将Save options设为："Save before running tools"，如图所示：&lt;br /&gt;&lt;/p&gt;&lt;table border="0" width="90%" align="center"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div align="center"&gt;&lt;img border="1" hspace="3" alt="轻松实现VisualC++源代码规范整理(2)" vspace="1" onerror="this. src='http://image2.sina.com.cn/IT/upload/images/2005/0228/153041/U74D537756Ided5e3ffb7148965c656c64fda0de167.jpg';" align="center" src="http://image2.sina.com.cn/IT/upload/images/2005/0228/153041/U74D537756Ided5e3ffb7148965c656c64fda0de167.jpg" /&gt;&lt;br /&gt;图5&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;　　好，大功告成，代码整理只需轻轻松松点击VC工具栏按钮，立即在VC编辑框中出现规范的源代码。&lt;br /&gt;&lt;br /&gt;　　下面让我们来享受一下使用VC集成astyle整理代码的愉快结果吧！&lt;br /&gt;&lt;br /&gt;　　1、整理前，凌乱的代码行：&lt;br /&gt;&lt;table border="0" width="90%" align="center"&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;div align="center"&gt;&lt;img border="1" hspace="3" alt="轻松实现VisualC++源代码规范整理(2)" vspace="1" onerror="this. src='http://image2.sina.com.cn/IT/upload/images/2005/0228/153041/U74D537756Ie5ba318da2892e5f8ff69630f055bc89.jpg';" align="center" src="http://image2.sina.com.cn/IT/upload/images/2005/0228/153041/U74D537756Ie5ba318da2892e5f8ff69630f055bc89.jpg" /&gt;&lt;br /&gt;图6&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;　　2、整理后的代码行：&lt;br /&gt;&lt;table border="0" width="90%" align="center"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div align="center"&gt;&lt;img border="1" hspace="3" alt="轻松实现VisualC++源代码规范整理(2)" vspace="1" onerror="this. src='http://image2.sina.com.cn/IT/upload/images/2005/0228/153041/U74D537756I851665802c62f5f54c94d701f214cbd8.jpg';" align="center" src="http://image2.sina.com.cn/IT/upload/images/2005/0228/153041/U74D537756I851665802c62f5f54c94d701f214cbd8.jpg" /&gt;&lt;br /&gt;图7&lt;/div&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/1874697964364684195-6164605138752029448?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/6164605138752029448/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=6164605138752029448' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/6164605138752029448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/6164605138752029448'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2009/02/vcvcvcvcvc-astylevcvc-1-httpsourceforge.html' title=''/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-8112883553207040888</id><published>2009-02-05T09:12:00.003+08:00</published><updated>2009-02-05T09:16:05.342+08:00</updated><title type='text'>TRACE</title><content type='html'>TRACE宏对于VC下程序调试来说是很有用的东西，有着类似printf的功能；该宏仅仅在程序的DEBUG版本中出现，当RELEASE的时候该宏就完全消失了，从而帮助你调试也在RELEASE的时候减少代码量。&lt;br /&gt;        使用非常简单，格式如下：&lt;br /&gt;                TRACE("DDDDDDDDDDD");&lt;br /&gt;                TRACE("wewe%d",333);&lt;br /&gt;        同样还存在TRACE0，TRACE1，TRACE2。。。分别对应0，1，2。。个参数&lt;br /&gt;        TRACE信息输出到VC IDE环境的输出窗口（该窗口是你编译项目出错提示的那个窗口），但仅限于你在VC中运行你的DEBUG版本的程序。&lt;br /&gt;        TRACE信息还可以使用DEBUGVIEW来捕获到。这种情况下，你不能在VC的IDE环境中运行你的程序，而将BUILD好的DEBUG版本的程序单独运行，这个时候可以在DEBUGVIEW的窗口看到DEBUGVIE格式的输出了。&lt;br /&gt;        VC中TRACE的用法有以下四种：&lt;br /&gt;                1: TRACE ，就是不带动态参数输出字符串, 类似C的printf("输出字符串");&lt;br /&gt;                2: TRACE 中的字符串可以带一个参数输出 , 类似C的printf("...%d",变量);&lt;br /&gt;                3: TRACE 可以带两个参数输出，类似C的printf("...%d...%f",变量1,变量2);&lt;br /&gt;                4: TRACE 可以带三个参数输出，类似C的printf("...%d，%d,%d",变量1,变量2，变量3);&lt;br /&gt;        TRACE 宏有点象我们以前在C语言中用的Printf函数，使程序在运行过程中输出一些调试信息，使我们能了解程序的一些状态。但有一点不同的是：TRACE 宏只有在调试状态下才有所输出，而以前用的Printf 函数在任何情况下都有输出。和Printf 函数一样，TRACE函数可以接受多个参数如：&lt;br /&gt;                int x = 1;&lt;br /&gt;                int y = 16;&lt;br /&gt;                float z = 32.0;&lt;br /&gt;                TRACE( "This is a TRACE statement\n" );&lt;br /&gt;                TRACE( "The value of x is %d\n", x );&lt;br /&gt;                TRACE( "x = %d and y = %d\n", x, y );&lt;br /&gt;                TRACE( "x = %d and y = %x and z = %f\n", x, y, z );&lt;br /&gt;         要注意的是TRACE宏只对Debug 版本的工程产生作用，在Release 版本的工程中，TRACE宏将被忽略。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-8112883553207040888?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/8112883553207040888/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=8112883553207040888' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/8112883553207040888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/8112883553207040888'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2009/02/trace.html' title='TRACE'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-7504258047046217218</id><published>2009-02-04T16:50:00.001+08:00</published><updated>2009-02-04T17:08:23.704+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='资料'/><category scheme='http://www.blogger.com/atom/ns#' term='VC'/><title type='text'>UNREFERENCED_PARAMETER</title><content type='html'>UNREFERENCED_PARAMETER 宏在 winnt.h 中定义如下：&lt;br /&gt;#define UNREFERENCED_PARAMETER(P) (P)&lt;br /&gt;　　换句话说 UNREFERENCED_PARAMETER 展开传递的参数或表达式。其目的是避免编译器关于未引用参数的警告。许多程序员，包括我在内，喜欢用最高级别的警告 Level 4（/W4）进行编译。Level 4 属于“能被安全忽略的事件”的范畴。虽然它们可能使你难堪，但很少破坏你的代码。例如，在你的程序中可能会有这样一些代码行：int x=1;&lt;br /&gt;　　但你从没用到过 x。也许这一行是你以前使用 x 时留下来的，只删除了使用它的代码，而忘了删除这个变量。Warning Level 4 能找到这些小麻烦。所以，为什么不让编译器帮助你完成可能是最高级别的专业化呢？用Level 4 编译是展示你工作态度的一种方式。如果你为公众使用者编写库，Level 4 则是社交礼节上需要的。你不想强迫你的开发人员使用低级选项清洁地编译他们的代码。　　问题是，Level 4 实在是太过于注意细节，在 Level 4 上，编译器连未引用参数这样无伤大雅的事情也要抱怨（当然，除非你真的有意使用这个参数，这时便相安无事）。假设你有一个函数带来两个参数，但你只使用其中一个：int SomeFunction(int arg1, int arg2){ return arg1+5;}&lt;br /&gt;使用 /W4，编译器抱怨：“warning C4100: ''arg2'' : unreferenced formal parameter.”&lt;br /&gt;为了骗过编译器，你可以加上 UNREFERENCED_PARAMETER(arg2)。现在编译器在编译你的引用 arg2 的函数时便会住口。并且由于语句：arg2;&lt;br /&gt;实际上不做任何事情，编译器不会为之产生任何代码，所以在空间和性能上不会有任何损失。　　细心的人可能会问：既然你不使用 arg2，那当初为何要声明它呢？通常是因为你实现某个函数以满足某些API固有的署名需要，例如，MFC的 OnSize 处理例程的署名必须要像下面这样：void OnSize(UINT nType, int cx, int cy);&lt;br /&gt;　　这里 cx/cy 是窗口新的宽/高，nType 是一个类似 SIZE_MAXIMIZED 或 SIZE_RESTORED 这样的编码，表示窗口是否最大化或是常规大小。一般你不会在意 nType，只会关注 cx 和 xy。所以如果你想用 /W4，则必须使用 UNREFERENCED_PARAMETER(nType)。OnSize 只是上千个 MFC 和 Windows 函数之一。编写一个基于 Windows 的程序，几乎不可能不碰到未引用参数。　　说了这么多关于 UNREFERENCED_PARAMETER 内容。Judy 在她的问题中还提到了另一个 C++ 程序员常用的并且其作用与 UNREFERENCED_PARAMETER 相同的诀窍，那就是注释函数署名中的参数名：void CMyWnd::OnSize(UINT /* nType */, int cx, int cy){}&lt;br /&gt;　　现在 nType 是未命名参数，其效果就像你敲入 OnSize(UINT, int cx, int cy)一样。那么现在的关键问题是：你应该使用哪种方法——未命名参数，还是 UNREFERENCED_PARAMETER？　　大多数情况下，两者没什么区别，使用哪一个纯粹是风格问题。（你喜欢你的 java 咖啡是黑色还是奶油的颜色？）但我认为至少有一种情况必须使用 UNREFERENCED_PARAMETER。假设你决定窗口不允许最大化。那么你便禁用 Maximize 按钮，从系统菜单中删除，同时阻止每一个用户能够最大化窗口的操作。因为你是偏执狂（大多数好的程序员都是偏执狂），你添加一个 ASSERT （断言）以确保代码按照你的意图运行：void CMyWnd::OnSize(UINT nType, int cx, int cy){ ASSERT(nType != SIZE_MAXIMIZE); ... // use cx, cy}&lt;br /&gt;　　质检团队竭尽所能以各种方式运行你的程序，ASSERT 从没有弹出过，于是你认为编译生成 Release 版本是安全的。但是此时 _DEBUG 定义没有了，ASSERT(nType != SIZE_MAXIMIZE)展开为 ((void)0)，并且 nType 一下子成了一个未引用参数！这样进入你干净的编译。你无法注释掉参数表中的 nType，因为你要在 ASSERT 中使用它。于是在这种情况下——你唯一使用参数的地方是在 ASSERT 中或其它 _DEBUG 条件代码中——只有 UNREFERENCED_PARAMETER 会保持编译器在 Debug 和 Release 生成模式下都没有问题。知道了吗？　　结束讨论之前，我想还有一个问题我没有提及，就是你可以象下面这样用 pragma 指令抑制单一的编译器警告：#pragma warning( disable : 4100 )&lt;br /&gt;4100 是未引用参数的出错代码。pragma 抑制其余文件/模块的该警告。用下面方法可以重新启用这个警告：#pragma warning( default : 4100 )&lt;br /&gt;　　不管怎样，较好的方法是在禁用特定的警告之前保存所有的警告状态，然后，等你做完之后再回到以前的配置。那样，你便回到的以前的状态，这个状态不一定是编译器的默认状态。　　所以你能象下面这样在代码的前后用 pragma 指令抑制单个函数的未引用参数警告：#pragma warning( push ) #pragma warning( disable : 4100 )void SomeFunction(...){}#pragma warning( pop )&lt;br /&gt;　　当然，对于未引用参数而言，这种方法未免冗长，但对于其它类型的警告来说可能就不是这样了。库生成者都是用 #pragma warning 来阻塞警告，这样他们的代码可以用 /W4 进行清洁编译。MFC 中充满了这样的 pragmas 指令。还有好多的 #pragma warning 选项我没有在本文讨论。有关它们的信息请参考相关文档。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-7504258047046217218?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://hi.baidu.com/jenfmo/blog/item/15963a3ec2a9c83f71cf6c40.html' title='UNREFERENCED_PARAMETER'/><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/7504258047046217218/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=7504258047046217218' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/7504258047046217218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/7504258047046217218'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2009/02/unreferencedparameter.html' title='UNREFERENCED_PARAMETER'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-3397969470302030026</id><published>2008-11-09T15:33:00.001+08:00</published><updated>2008-11-09T15:33:54.392+08:00</updated><title type='text'>看密码学格言所感</title><content type='html'>看密码学格言所感：&lt;br /&gt;1、不应当低估对手的能力。&lt;br /&gt;2、只有密码分析者，而不是任何人，可以评价一个密码体系的安全性。&lt;br /&gt;3、在判断一类方法的加密安全性时，你必须考虑到敌方知道该类方法。（敌人知道所用的密码体制）&lt;br /&gt;4、表面的复杂性可能是虚假的，因为它们可以为密码编码者给出一种安全性的错觉。&lt;br /&gt;5、判断一类方法的加密安全性时，密码错误和其他安全纪律的违反情况必须考虑。&lt;br /&gt;上面是今天刚看的密码学里的格言，我就想到了我们机器人策略的问题，来一一翻译下……&lt;br /&gt;1、使用原版就可以了，我们不应当忽视对手，也可以说我们不能小看这东西，有时我自己也在想，这完全就是外面软件公司的一个小项目，而且是小软件公司的，但是这么多年，这么多大学都还在搞这个东西，所以还不是那么简单的。也许是有竞争的因素吧，外面很少有比较系统比较好的资料，如果是开源的话，应该对机器人技术的发展是大有帮助的，其实我们可以推动这件事，但首先我们必须有重量级的话语权，这就要求我们这次只能成功。&lt;br /&gt;2、从这句话来看，我感觉只有建立竞争的机制，形成“敌我”双方，才能更快的促进发展，完善代码，只是单方面的肯定会有放水的怀疑，就像偏袒自己孩子一样。&lt;br /&gt;3、我们在想出一种策略后，一定要想下如果对方这样做，我们怎样防？这样有助于改进进攻，加强防守。&lt;br /&gt;4、底层表面的简单性是可能是虚假的，因为到深入策略层面时你都会有不知道怎么写的感觉，中层的数学复杂，很容易让我们忘记策略的另一种复杂。&lt;br /&gt;5、我们必须考虑数据出错的情况，还要考虑对方干扰的情况，后一种虽然看起来不可能，但是去年的确发生了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-3397969470302030026?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/3397969470302030026/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=3397969470302030026' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/3397969470302030026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/3397969470302030026'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/11/blog-post.html' title='看密码学格言所感'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-2661870707485796269</id><published>2008-11-09T15:32:00.001+08:00</published><updated>2008-11-09T15:32:51.488+08:00</updated><title type='text'>计算机网络080426 1837</title><content type='html'>今天下午看了下计算机网络，里面写到：计算机网络是个非常复杂的系统。然后为了说明这点他举了个最简单的情况：连接在网络上的俩台计算机要相互传送文件。然后书上列举了一些重要复杂的工作（详情见书p19，没时间打那么多字），相互通信的俩个计算机系统必须高度协调工作才行，而这种协调是相当复杂的。为了设计这样复杂的计算机网络，早在最初的ARPANET设计时即提出了分层的方法。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;唉，最近太忙，刚考完一门考试，所以没怎么写，可能是写的欲望没那么大了吧，或者是每天都抽出些时间很是困难，每次我写也要花好久时间的，谁让我文采不好，要好生考虑写什么来着。先看看上次写哪了，哦，上次是22号晚，过了这么久了哇，不过也没啥，这几天大家只是在23号时通宵讨论了一晚而已，哦，应该说是24号凌晨。说来那天晚上实验室的人那个多哦，没办法我们转战通宵自习室，大家都很配合，讨论也很激烈，然后成果比较少，最大的成就就是发现了一堆问题和加速度不是固定的，而且有的人适合通宵有的人不适合，书记竟然饿了……而我则是对这么多人多讨论还是很无奈，应该是讨论的不是我熟悉的吧，谁让是数学建模方面的东西呢，都怪我太久没看数学了，看来暑假应该安排点数学的东西看下了，还有物理，应为我最近越发的发现这些东西都是相通的，你看我看密码学时可以想到机器人这面，你过段时间会发现我看计算机网络时也想到了机器人这面，只是连工作日志都写不完了，那个就写了一半，还没完工……再说那晚，我们讨论完了早已成型的基础函数，在第一个中层函数那就卡壳了，一个多小时都没结果……之后越过讨论下个函数，我就忘了结果是什么了，因为我没参加这个讨论，反正相当于没结果的样……期间电脑没电我们转移战场的时候还打扰一对人休息来着，我说里面有人，书记说没人，我开了一个灯之后就发现里面真的有人，就关上灯跑出来了，第二天这事就传飞了，说里面有俩个人在×××，其实他们只是安静的趴在桌子上睡觉而已，像你们平时上课睡觉一样。我又一次的发现了人言可畏啊……很快到了天明，我们回撤实验室，郁闷的是我们走时落下了一根网线……郁闷啊……然后方方，唯一一个没有一起通宵的把我们形成的纸质文档给电子化了，并且添加了好多东西，还是再佩服下他的速度，不是一般人能及的，可能一个人工作也有一个人工作的好处……之后就是25号，这天没考虑代码的事，至少没盯着代码看，专心考试，早知考试那么简单我还是看代码就好了，对了，前一天晚上UBUNTU8.04发布，我还花了时间下载和安装它的，毕竟还是不要把100%的精力都放到这一件事比较好，8.04是硬盘安装的，在此再次感叹下硬盘安装也这么简单哇！好了，抽空专门写8.04的事吧！然后就过度到昨晚了，我感觉最近管大家太紧，而且之后还有之后恐怖的“五一七天乐“，所以考虑给大家点时间自己安排，整理下自己的事、个人问题，我也借机放松下，整理下思绪，“飞高点看看整体”！要看看现有的代码，消化下……&lt;br /&gt;080426 1837&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-2661870707485796269?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/2661870707485796269/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=2661870707485796269' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/2661870707485796269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/2661870707485796269'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/11/080426-1837.html' title='计算机网络080426 1837'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-4246914207326120988</id><published>2008-10-29T09:16:00.002+08:00</published><updated>2008-10-29T09:21:52.306+08:00</updated><title type='text'>I'm back!</title><content type='html'>en,在网上看到电信对Google的服务解封了，我就想我的Blogger是不是也可以正常使用了，抱着试一下的想法过来看看……&lt;br /&gt;看着原先的日志，特别是我们准备比赛时的工作日志，恍如昨日！这就是Blog或者说是日记的好处吧！特别是对于我这健忘的人……&lt;br /&gt;最近开始找工作了，应该会有好多可写的！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-4246914207326120988?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/4246914207326120988/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=4246914207326120988' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/4246914207326120988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/4246914207326120988'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/10/im-back.html' title='I&apos;m back!'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-2409581354131531434</id><published>2008-06-09T07:39:00.000+08:00</published><updated>2008-10-29T09:24:21.257+08:00</updated><title type='text'></title><content type='html'>Ron Gould写的的一篇科幻小说&lt;br /&gt;&lt;p&gt;"Time travel works!" the note read. "However you can only travel to the past and one-way." I recognized my own handwriting and felt a chill.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-2409581354131531434?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/2409581354131531434/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=2409581354131531434' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/2409581354131531434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/2409581354131531434'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/06/ron-gould-time-travel-works-note-read.html' title=''/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-3810413687677946925</id><published>2008-05-31T01:09:00.001+08:00</published><updated>2008-05-31T01:09:00.789+08:00</updated><title type='text'>shell脚本 - 剑心通明的资料库</title><content type='html'>&lt;a href="http://blog.chinaunix.net/u/4206/showart_654705.html"&gt;自动挂载WINDOWS下的分区的脚本 - shell脚本 - 剑心通明的资料库&lt;/a&gt; &lt;br /&gt;&lt;blockquote cite="chrome://flock/content/shelf/notesSidebar.xul"&gt;&lt;a href="http://blog.chinaunix.net/u/4206/showart_658064.html"&gt;shell实现拷贝进度条 - shell脚本 - 剑心通明的资料库&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote cite="chrome://flock/content/shelf/notesSidebar.xul"&gt;&lt;a href="http://blog.chinaunix.net/u/4206/showart_658063.html"&gt;阿拉伯数字转换为大写数字的脚本 - shell脚本 - 剑心通明的资料库&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p class="citation"&gt;&lt;cite cite="chrome://flock/content/shelf/notesSidebar.xul"&gt;&lt;/cite&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote cite="chrome://flock/content/shelf/notesSidebar.xul"&gt;&lt;a href="http://blog.chinaunix.net/u/4206/showart_658059.html"&gt;编写shell脚本进度条 - shell脚本 - 剑心通明的资料库&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p class="citation"&gt;&lt;cite cite="chrome://flock/content/shelf/notesSidebar.xul"&gt;&lt;/cite&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote cite="chrome://flock/content/shelf/notesSidebar.xul"&gt;&lt;a href="http://blog.chinaunix.net/u/4206/showart_658058.html"&gt;病毒研究之感染linux脚本程序技术 - shell脚本 - 剑心通明的资料库&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p class="citation"&gt;&lt;cite cite="chrome://flock/content/shelf/notesSidebar.xul"&gt;&lt;/cite&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote cite="chrome://flock/content/shelf/notesSidebar.xul"&gt;&lt;a href="http://blog.chinaunix.net/u/4206/showart_654718.html"&gt;一个加密文本文件的脚本 - shell脚本 - 剑心通明的资料库&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p class="citation"&gt;&lt;cite cite="chrome://flock/content/shelf/notesSidebar.xul"&gt;&lt;/cite&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote cite="chrome://flock/content/shelf/notesSidebar.xul"&gt;‌‌‌‌‌​​​​​&lt;/blockquote&gt;&lt;p class="citation"&gt;&lt;cite cite="chrome://flock/content/shelf/notesSidebar.xul"&gt;&lt;/cite&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-3810413687677946925?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/3810413687677946925/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=3810413687677946925' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/3810413687677946925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/3810413687677946925'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/05/shell_8525.html' title='shell脚本 - 剑心通明的资料库'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-6086055092132644245</id><published>2008-05-26T19:45:00.001+08:00</published><updated>2008-05-26T19:45:16.011+08:00</updated><title type='text'>世上最强的中国式英文</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;h2&gt;世上最强的中国式英文&lt;/h2&gt;&lt;br /&gt;						&lt;br /&gt;						&lt;br /&gt;																											&lt;div class='t_msgfont' id='postmessage_23033'&gt;信息来源：Internet&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;1．we two who and who？ &lt;br/&gt;&lt;br /&gt;　　 咱俩谁跟谁阿 &lt;br/&gt;&lt;br /&gt;　　 &lt;br/&gt;&lt;br /&gt;2．how are you ? how old are you? &lt;br/&gt;&lt;br /&gt;　　 怎么是你，怎么老是你？ &lt;br/&gt;&lt;br /&gt;　　 &lt;br/&gt;&lt;br /&gt;3．you don’t bird me,I don’t bird you &lt;br/&gt;&lt;br /&gt;　　你不鸟我，我也不鸟你 &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;4．you have seed I will give you some color to see see, brothers ！ together up ！ &lt;br/&gt;&lt;br /&gt;　　 你有种，我要给你点颜色瞧瞧，兄弟们，一起上！ &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;5．hello everybody!if you have something to say,then say!if you have nothing to say,go &lt;span class='t_tag' onclick='tagshow(event)' href='http://www.linuxdiyf.com/bbs/tag.php?name=home'&gt;home&lt;/span&gt;!! &lt;br/&gt;&lt;br /&gt;　　有事起奏，无事退朝 &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;6．you me you me &lt;br/&gt;&lt;br /&gt;　　 彼此彼此 &lt;br/&gt;&lt;br /&gt;　　 &lt;br/&gt;&lt;br /&gt;7．You Give Me Stop!! &lt;br/&gt;&lt;br /&gt;　　 你给我站住！ &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;8．know is know noknow is noknow &lt;br/&gt;&lt;br /&gt;　　 知之为知之，不知为不知… &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;9．WATCH SISTER &lt;br/&gt;&lt;br /&gt;　　表妹 &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;10．dragon born dragon,chicken born chicken,mouse’’son can &lt;span class='t_tag' onclick='tagshow(event)' href='http://www.linuxdiyf.com/bbs/tag.php?name=make'&gt;make&lt;/span&gt; hole!! &lt;br/&gt;&lt;br /&gt;　　龙生龙，凤生凤，老鼠的儿子会打洞！ &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;11．American Chinese not enough &lt;br/&gt;&lt;br /&gt;　　美中不足 &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;12．one car come one car go ,two car pengpeng,people die &lt;br/&gt;&lt;br /&gt;　　 车祸现场描述 &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;13．heart flower angry open &lt;br/&gt;&lt;br /&gt;　　心花怒放 &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;14．go past no mistake past &lt;br/&gt;&lt;br /&gt;　　 走过路过，不要错过 &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;15．小明：I am sorry! &lt;br/&gt;&lt;br /&gt;　　 老外：I am sorry too! &lt;br/&gt;&lt;br /&gt;　　小明：I am sorry three! &lt;br/&gt;&lt;br /&gt;　　 老外：What are you sorry for? &lt;br/&gt;&lt;br /&gt;　　小明：I am sorry five! &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;16．If you want money,I have no; &lt;br/&gt;&lt;br /&gt;　　if you want life,I have one! &lt;br/&gt;&lt;br /&gt;　　 要钱没有，要命一条 &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;17．I call Li old big. toyear 25. &lt;br/&gt;&lt;br /&gt;　　我叫李老大，今年25。 &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;18．you have two down son。 &lt;br/&gt;&lt;br /&gt;　　你有两下子。 &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;19．as far as you go to die &lt;br/&gt;&lt;br /&gt;　　有多远，死多远！！！！ &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;20．I give you face you don’’t wanna face,you lose you face ,I turn my　face &lt;br/&gt;&lt;br /&gt;　　 给你脸你不要脸，你丢脸，我翻脸 &lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;21． Very how,good good study,day day up!&lt;br/&gt;&lt;br /&gt;    好好学习，天天向上。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;要任何时候都笑的出来，乐观人生……&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-6086055092132644245?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/6086055092132644245/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=6086055092132644245' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/6086055092132644245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/6086055092132644245'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/05/blog-post_517.html' title='世上最强的中国式英文'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-3534707178174461062</id><published>2008-05-26T13:18:00.001+08:00</published><updated>2008-05-26T13:18:25.346+08:00</updated><title type='text'>糗</title><content type='html'>糗大了，刚才睡的太香了，老师点名时，点我了好几遍，到后来全班同学在喊我，声音和梦里混了 ，当时梦里嘴里含着水，不能回答，到第二遍才醒了……&lt;br /&gt;   &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-3534707178174461062?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/3534707178174461062/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=3534707178174461062' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/3534707178174461062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/3534707178174461062'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/05/blog-post_26.html' title='糗'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-7708490930985524579</id><published>2008-05-25T16:30:00.001+08:00</published><updated>2008-05-25T16:30:37.253+08:00</updated><title type='text'>【转】Linux下推荐的常用应用程序列表</title><content type='html'>&lt;p&gt;标&amp;nbsp;&amp;nbsp; 题: Linux下推荐的常用应用程序列表 &lt;br /&gt;发信站: 水木社区 (Sun Mar 12 15:49:22 2006), 站内 &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Linux下推荐的常用应用程序列表 &lt;br /&gt;一,网页浏览 &lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;1,firefox &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;firefox是现在最火的一个浏览器,支持好多扩展和插件,也有很多漂亮的主题.firefox就是 &lt;br /&gt;&lt;br /&gt;mozilla-firefox,他是把mozilla的网页浏览的功能分离为一个单独的浏览器.Firefox一般 &lt;br /&gt;&lt;br /&gt;是linux系统自带的默认浏览器. &lt;br /&gt;2,opera(非开源免费软件) &lt;br /&gt;&lt;br /&gt;opera是号称最快的浏览器.能直接浏览wap网站,并且在浏览器集成了irc聊天,电子邮件,新 &lt;br /&gt;&lt;br /&gt;闻组,RSS的简单功能.并且能改变使浏览器识别为IE或mozilla. &lt;br /&gt;3,mozilla &lt;br /&gt;&lt;br /&gt;mozilla的前身是netscape,知道一点计算机的历史的人都知道这个浏览器.集网页浏览,新闻 &lt;br /&gt;&lt;br /&gt;组,网页设计,电子邮件等于一体的浏览器.被捆绑在windows操作系统里面的IE挤垮之后,现 &lt;br /&gt;在为开放源代码的软件. &lt;br /&gt;4,dillo &lt;br /&gt;&lt;br /&gt;这个是我见过的最小的,最快的浏览器.有最基本的网页浏览的功能.有的网页效果不支持.但 &lt;br /&gt;&lt;br /&gt;速度绝对是一流的快.默认不支持中文,可以下载已经打过中文补丁的版本. &lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;5,w3m &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;w3m是一个基于文本的浏览器,能在控制台下使用.支持中文.在某些时候能应急用一下.安装 &lt;br /&gt;插件之后支持图片. &lt;br /&gt;二,联络聊天 &lt;br /&gt;&lt;br /&gt;1,lumaqq &lt;br /&gt;在linux下面兼容QQ的客户端.是用sun JAVA编写的,启动的时候有点慢.支持自定义表情,手 &lt;br /&gt;&lt;br /&gt;机短信显示等级,QQ群等.并且能使用QQ网络硬盘 &lt;br /&gt;2,Gaim &lt;br /&gt;&lt;br /&gt;一个多功能的聊天工具.支持几乎所有的聊天协议.如icq,msn,jabber等.安装openq插件后支 &lt;br /&gt;持QQ. &lt;br /&gt;3,Xchat &lt;br /&gt;&lt;br /&gt;一个irc聊天工具.irc是什么?玩windows可以不知道irc,但玩linux必须知道.irc是一个聊天 &lt;br /&gt;&lt;br /&gt;工具.在中国还不是太流行.(黑客都是用这个交流的哦!) &lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;4,eva &lt;/span&gt;&lt;br /&gt;一个KDE环境的的QQ客户端,有文件传输,屏幕抓图等功能. &lt;br /&gt;&lt;br /&gt;三,Email客户端 &lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;1,evolution &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;GNOME默认的邮件客户端.支持pop3,imap4,smtp等协议.有联系人,邮件,日历,任务,等功能, &lt;br /&gt;&lt;br /&gt;如果你有很多办公事务要处理,这个软件和适合你. &lt;br /&gt;2,thunderbird &lt;br /&gt;&lt;br /&gt;像firefox一样,从mozilla分离出来的邮件客户端.在windows,linux等下都有相当大的用户 &lt;br /&gt;群. &lt;br /&gt;3,kmail &lt;br /&gt;&lt;br /&gt;KDE桌面套件的一部分. &lt;br /&gt;4,mutt &lt;br /&gt;mutt是一个命令行的邮件客户端 &lt;br /&gt;四,下载工具(类似于flashget的下载管理工具) &lt;br /&gt;&lt;br /&gt;这类的工具很多.&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;wget&lt;/span&gt;是最常用的.是一个基于文本的下载工具,我一般用他的图形界面的 &lt;br /&gt;&lt;br /&gt;gwget.另外还有prozilla(图形界面为prozgui),Downloader for X(简称为d4x)等.firefox &lt;br /&gt;&lt;br /&gt;的&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;插件DownThemAll&lt;/span&gt;,是一个多线程下载工具,在firefox中集成,使用类似Flashget. &lt;br /&gt;五,FTP客户端 &lt;br /&gt;&lt;br /&gt;1,CoralFTP &lt;br /&gt;一个用python写的FTP客户端.在建立站点的时候可以选择站点的文件目录编码,因此在显示 &lt;br /&gt;中文的时候不会有乱码. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;2,gftp &lt;/span&gt;&lt;br /&gt;gftp是GNOME里面的一个软件,功能很多,但如果ftp服务器是GBK编码,而系统使用的是 &lt;br /&gt;&lt;br /&gt;UTF-8,下载的中文文件名就会出现乱码.这个bug可以打补丁解决,各大发型版都有相应的软 &lt;br /&gt;件包. &lt;br /&gt;3,lftp &lt;br /&gt;&lt;br /&gt;一个基于文本的ftp工具.很简单,很好用.支持中文(与终端的编码有关,如乱码,改变终端的 &lt;br /&gt;编码即可). &lt;br /&gt;六,P2P下载工具 &lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;1,bittorrent &lt;/span&gt;&lt;br /&gt;不用说也知道这个软件是做什么的.基于文本BT下载工具.图形端界面为bttorrentgui.这个 &lt;br /&gt;&lt;br /&gt;是BT的始祖. &lt;br /&gt;2,bitstorm lite &lt;br /&gt;&lt;br /&gt;基于C++和GTK2的BT下载工具.目前还在开发中.现在只有下载功能.当种子为GB编码时不会有 &lt;br /&gt;乱码. &lt;br /&gt;3,Azureus &lt;br /&gt;&lt;br /&gt;Azureus是一个用JAVA写的BT下载工具,功能强大.但运行的时候占用系统资源太多,且不稳定 &lt;br /&gt;. &lt;br /&gt;3,ktorrent &lt;br /&gt;&lt;br /&gt;KDE套件中的BT下载工具.功能和界面类似于BitCommet. &lt;br /&gt;4,amule &lt;br /&gt;就是linux下载电骡. &lt;br /&gt;七,RSS阅读 &lt;br /&gt;&lt;br /&gt;1,liferea &lt;br /&gt;liferea是GNOME的RSS收集器.能在软件中调用mozilla或者gtkhtml显示订阅内容. &lt;br /&gt;&lt;br /&gt;2,aKregator &lt;br /&gt;aKregator是KDE里面的RSS阅读器. &lt;br /&gt;3,浏览器 &lt;br /&gt;Opera本身就有RSS &lt;br /&gt;feed自动识别和阅读的能力.还可以用firefox+saga扩展. &lt;br /&gt;&amp;nbsp;&amp;nbsp; 八,BBS客户端 &lt;br /&gt;1,Qterm &lt;br /&gt;&lt;br /&gt;Qterm是国人开发的基于QT的BBS客户端.支持鼠标操作,能看图片. &lt;br /&gt;2,pcmanX &lt;br /&gt;&lt;br /&gt;pcmanX是国人台湾那部分人写的.可以在UNIX和Windows上使用.基于gtk2的,用GNOME做桌面 &lt;br /&gt;的不愿装QT的可以尝试这个. &lt;br /&gt;&lt;br /&gt;3,终端 &lt;br /&gt;等&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;gnome-terminal&lt;/span&gt;,konsole终端,把字符编码设为gb,直接用telnet登陆bbs. &lt;br /&gt;九,文件管理 &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;1,nautilus &lt;/span&gt;&lt;br /&gt;GNOME默认的文件管理软件.也能登陆ftp,samba网上邻居等.集成刻录功能. &lt;br /&gt;2,konqueror &lt;br /&gt;&lt;br /&gt;KDE默认的文件管理软件.和nautilus类似.konqueror也是一个很好的web浏览器. &lt;br /&gt;3,rox-filer &lt;br /&gt;&lt;br /&gt;用fvwm.xfce的人经常拿这个做桌面和默认的文件管理软件,小巧快捷,但使用和常规的文件 &lt;br /&gt;管理软件不同.. &lt;br /&gt;十,压缩解压缩软件 &lt;br /&gt;&lt;br /&gt;1,ark &lt;br /&gt;kdeutils中的一个软件.能自动调用系统中已经安装的压缩解压缩软件.在konqueror中右键 &lt;br /&gt;集成. &lt;br /&gt;&lt;br /&gt;2,file-roller &lt;br /&gt;GNOME中的默认压缩解压缩软件.和ark一样的软件.能直接解压缩rpm和deb包. &lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;3,rar, zip, &lt;/span&gt;&lt;br /&gt;tar, gzip, bzip2等,命令行的压缩解压缩软件.ark和file-roller都是调用这 &lt;br /&gt;&lt;br /&gt;些软件来压缩解压缩的.例如要解压缩rar格式的压缩包就须安装unrar. &lt;br /&gt;&lt;br /&gt;4,p7zip传说中压缩比最高的软件.和windows下的7zip功能类似.可惜的是只有命令行的. &lt;br /&gt;十一,文本编辑软件 &lt;br /&gt;&lt;br /&gt;1,kate,kwrite,kedit是KDE中的文本编辑器,界面类似,kate功能最强,支持语法加亮,能编辑 &lt;br /&gt;&lt;br /&gt;大文件等.别的软件中的文本编辑功能一般是调用这几个软件. &lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;2,gedit,&lt;/span&gt;GNOME的文本编辑器.支持多页面. &lt;br /&gt;&lt;br /&gt;3,leafpad,mousepad类似windows记事本的简单的文本编辑软件. &lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;4,vim&lt;/span&gt;和emacs &lt;br /&gt;&lt;br /&gt;命令行的文本编辑软件.这两个是linux里面最常用的.经常有人为了这两个软件争得目红耳 &lt;br /&gt;&lt;br /&gt;赤.emacs可以装各种扩展,收发邮件,浏览网页等,成为一个外能的平台.相对来说vi较为专注 &lt;br /&gt;一点. &lt;br /&gt;&lt;br /&gt;5,如果不得不面对控制台,却需要编辑文本文件,可以尝试nano.在dos里面用过pico的人会很 &lt;br /&gt;熟悉的. &lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;6,十六进制编辑软件有ghex(GNOME)&lt;/span&gt;,khexedit(KDE). &lt;br /&gt;十二,电子书阅读器 &lt;br /&gt;1,Acrobat &lt;br /&gt;Reader中文版(英文版的不能正常现实中文;此软件为非开源免费软件).adobe官 &lt;br /&gt;方出品.完美支持PDF中文显示. &lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;2,xpdf.&lt;/span&gt;xpdf对没有内嵌中文支持的PDF文档,能调用系统的字体渲染.前提是安装有 &lt;br /&gt;xpdf-chinese-simplifiled &lt;br /&gt;&lt;br /&gt;3,xpdf的是基于motif1(这个我不确认啊,看界面猜的),界面不美观,使用不人性化.现在常用 &lt;br /&gt;&lt;br /&gt;的有evince,gpdf,kpdf等,也都是必须安装xpdf-chinese-simplifiled猜能现实没有内嵌中 &lt;br /&gt;文字体的pdf. &lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;4,chm格式的阅读软件有chmsee,&lt;/span&gt;kchmviewer,gnochm等.国人开发的chmsee对中文支持最好. &lt;br /&gt;&lt;br /&gt;5,ps格式的阅读软件有kghostview,evince等. &lt;br /&gt;十三,英汉词典 &lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;1,星际译王 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;词库丰富,朗道词库英汉汉英各四十多万.牛津英汉双解三十九万.还可以下载别的专业词库 &lt;br /&gt;.支持屏幕取词.能发音. &lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;2,reciteword &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;一个英语学习软件.有大学英语四六级.托福,雅思词汇等词库.有单词初记,趣味打靶,听力实 &lt;br /&gt;战,打字神功等功能.很完美! &lt;br /&gt;十四,音频播放 &lt;br /&gt;&lt;br /&gt;1,beep-media-player &lt;br /&gt;和千千静听一样的仿winamp的音频播放软件.可以播放包括ape,wma在内的几乎所有的格式. &lt;br /&gt;&lt;br /&gt;能直接使用winamp的皮肤!安装插件后能在线自动下载歌词.甚至还可以安装插件支持视频播 &lt;br /&gt;&lt;br /&gt;放!他是xmms的替代产品.xmms是以前linux上用得最多的音频播放软件,基于gtk1的. &lt;br /&gt;2,rhythmbox &lt;br /&gt;&lt;br /&gt;GNOME默认的音乐播放器,以gstreamer为核心,能播放几乎所有的格式.播放器外观仿 &lt;br /&gt;iTunes,但较朴素.没有均衡器. &lt;br /&gt;&lt;br style="color: rgb(51, 51, 255); font-weight: bold;" /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;3,amarok &lt;/span&gt;&lt;br /&gt;KDE上的音乐管理器,以xine或getreamer,arts为核心,和rhythmbox风格一样,但界面很漂亮 &lt;br /&gt;&lt;br /&gt;.完美支持UTF8和非UTF8编码的tag. &lt;br /&gt;十五,CD播放器(一般的音频播放软件都能播放CD) &lt;br /&gt;1,gnome-cd &lt;br /&gt;&lt;br /&gt;GNOME的cd播放器,小巧,音质也挺好的. &lt;br /&gt;2,kscd &lt;br /&gt;KDE默认的CD播放器. &lt;br /&gt;十六,CD抓轨和音频转换 &lt;br /&gt;&lt;br /&gt;1,sound-juicer &lt;br /&gt;GNOME默认的CD抓轨软件.默认能抓取为ogg,flac,wav格式,也可以自己添加支持直接转为别&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;的格式.. &lt;br /&gt;2,grip &lt;br /&gt;一个集播放CD,CD抓轨于一体的软件.功能比前者强. &lt;br /&gt;3,kaudiocreater &lt;br /&gt;&lt;br /&gt;KDE下的抓轨软件.功能相当于sound-juicer. &lt;br /&gt;4,soundkonverter &lt;br /&gt;&lt;br /&gt;KDE里的音频转换软件,支持ogg,flac,mp3,wma,wav的转换. &lt;br /&gt;5,sound converter &lt;br /&gt;&lt;br /&gt;GNOME里面的音频转换软件,以gstreamer为后端.支持ogg,flac,mp3,wav等格式的转换. &lt;br /&gt;6,基于命令行的转换软件: &lt;br /&gt;&lt;br /&gt;abcde&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; cd---ogg,mp3,flac,mpc &lt;br /&gt;flac&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;wav,aiff,raw---flac &lt;br /&gt;oggenc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wav,aiff,raw---ogg &lt;br /&gt;&lt;br /&gt;faac&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; 其他 ---aac,mp4 &lt;br /&gt;faad&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; &lt;br /&gt;aac,mp4---其他 &lt;br /&gt;lame&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; 其他---mp3 &lt;br /&gt;&lt;br /&gt;cdda2wav&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; cd---wav &lt;br /&gt;jack&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; &lt;br /&gt;cd---wav,ogg,etc &lt;br /&gt;mp32ogg(script)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mp3---ogg &lt;br /&gt;mp3burn(script) &lt;br /&gt;mp3,ogg,flac---cd &lt;br /&gt;sox&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; aiff,au,mp3(只读).ogg,wav等互相转换 &lt;br /&gt;十七,音频编辑 &lt;br /&gt;&lt;br /&gt;1,glame &lt;br /&gt;Glame是lame的图形端.lame是mp3最好的编码.. &lt;br /&gt;2,audacity &lt;br /&gt;&lt;br /&gt;audacity是一个跨平台的音频编辑软件,能在linux,windows,mac平台上.支持wav,mp3,ogg格 &lt;br /&gt;式的编辑,功能强大. &lt;br /&gt;&lt;br /&gt;十八,视频播放软件 &lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;1,mplayer &lt;/span&gt;&lt;br /&gt;mplayer是最强的视频播放软件,支持目前几乎所有的音频视频格式,流媒体协议.支持换皮肤 &lt;br /&gt;&lt;br /&gt;,支持外挂字幕.软件为命令行的,图形界面为gmplayer.必须安装官方提供的win32codecs才 &lt;br /&gt;能支持所有的格式. &lt;br /&gt;&lt;br /&gt;2,totem-xine &lt;br /&gt;totem是GNOME默认的视频播放软件,基于xine的totem加上mplayer的win32codecs,就可以播 &lt;br /&gt;&lt;br /&gt;放几乎所有的格式.totem-gstreamer不能播放real格式和部分quicktime(.mov等),windows &lt;br /&gt;&lt;br /&gt;meida(wmv等)格式. &lt;br /&gt;3,realplayer &lt;br /&gt;&lt;br /&gt;real公司官方出品,非开源软件.基于开源的helix写的.支持mp3,ogg,swf(flash4.0),mp4, &lt;br /&gt;&lt;br /&gt;3gp等格式,也支持rm,rmvb.软件是针对oss的.普通播放会很卡,必须安装alsa-oss,再用 &lt;br /&gt;aoss &lt;br /&gt;realplay启动realplayer才不卡. &lt;br /&gt;4,vlc &lt;br /&gt;&lt;br /&gt;vlc支持除rm,rmvb格式外几乎所有的格式,支持xvid,divx,mp3,ogg,mpeg等编码(不支持部分 &lt;br /&gt;&lt;br /&gt;aac编码),而且支持mms,rtfs的协议.将vlc的浏览器插件安装之后就可以在线播放了.甚至你 &lt;br /&gt;可以在线播放ftp上的影音文件. &lt;br /&gt;&lt;br /&gt;5,kaffeine &lt;br /&gt;kaffeine是一个前端,可以用xine,arts,gstreamer任何一个做后端.基于xine的kaffeine支 &lt;br /&gt;&lt;br /&gt;持所有格式.他是KDE里面的视频播放软件. &lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;6,kmplayer &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;kmplayer是一个KDE的简单的视频播放软件,他可以用mplayer或xine等做后端. &lt;br /&gt;十九,视频转换和编辑 &lt;br /&gt;1,mencoder &lt;br /&gt;&lt;br /&gt;mencoder是mplayer里面的视频转换软件.命令行的.几乎所有mplayer能播放的格式都可以转 &lt;br /&gt;换. &lt;br /&gt;2,ffmpeg &lt;br /&gt;&lt;br /&gt;ffmpeg支持MPEG,DivX,MPEG4,AC3,DV等40多种编码,AVI,MPEG,OGG,Matroska,ASF等90多种解 &lt;br /&gt;&lt;br /&gt;码.ffmpeg也是命令行的. &lt;br /&gt;3,kino &lt;br /&gt;Kino可以让你录制、创作、编辑以及用DV便携式数字摄象机播放。与其他编辑器不同的是， &lt;br /&gt;&lt;br /&gt;这个程序可以用键盘快速进行编辑。 &lt;br /&gt;二十,刻录软件 &lt;br /&gt;1,k3b &lt;br /&gt;&lt;br /&gt;k3b是一个专业级的刻录软件,通过简单的鼠标点击你可以刻录iso,刻录bin/cue,制作音频 &lt;br /&gt;&lt;br /&gt;CD,制作视频DVD,制作数据CD,制作数据DVD,从DVD,CD提取ISO等.还能自动演证md5.在功能和 &lt;br /&gt;使用方便性等方面比nero强多了. &lt;br /&gt;&lt;br /&gt;2,gnomebaker &lt;br /&gt;GNOME的刻录软件,功能比k3b要差一点.能刻录数据音频CD,数据DVD等,支持iso,cue/bin. &lt;br /&gt;&lt;br /&gt;3,nautilus &lt;br /&gt;nautilus集成数据刻录功能. &lt;br /&gt;4,基于命令行的刻录软件,别的刻录软件大多是以这些软件为基础的. &lt;br /&gt;&lt;br /&gt;cdrecord---刻录CD/DVD或擦除CD-RW/DVD-RW &lt;br /&gt;cdda2wav---CD抓轨为WAV音频 &lt;br /&gt;&lt;br /&gt;mkisofs---从文件制作ISO镜像 &lt;br /&gt;cdrdao---DAO(一次写盘) &lt;br /&gt;&lt;br /&gt;vcdimager---将mpeg转换为VCD1,VCD2,SVCD,HQVCD的bin,cue格式.软件包内还含有vcdxrip, &lt;br /&gt;&lt;br /&gt;cdxa2mpeg等将VCD转换为mpeg &lt;br /&gt;&lt;br /&gt;vcdtools---mkvcdfs用来制作能刻录VCD的镜像文件,vcdmplex用来将音频和视频合成为 &lt;br /&gt;mkisofs能使用的格式. &lt;br /&gt;&lt;br /&gt;dvdauther---从mpeg2制作DVD&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;dvdbackup---可将DVD复制到硬盘上,必要的时候可以用mkisofs和dvdrecord再次刻录DVD. &lt;br /&gt;&lt;br /&gt;dvd+rw-tools---一套将DVD镜像刻录到DVD的软件. &lt;br /&gt;二十一,办公套件 &lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;1,openoffice.org &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;目前最新版的openoffice.org已经支持粗体和斜体中文.openoffice.org和MS office的兼容 &lt;br /&gt;&lt;br /&gt;性很好.openoffice.org能直接输出为pdf. &lt;br /&gt;&lt;br /&gt;2,koffice是KDE的办公套件.据说很好用,但和MS兼容性不好.gnome-office也待于发展 &lt;br /&gt;&lt;br /&gt;另外还有永中office,WPS2005,redoffice等.没有用过,就不评论了.openoffice.org已经很 &lt;br /&gt;&lt;br /&gt;完美了.(永中office,WPS2005,redoffice为非开源软件,openoffice.org为LGPL开源软件) &lt;br /&gt;二十二,图像处理 &lt;br /&gt;&lt;br /&gt;1,gimp &lt;br /&gt;gimp是一个类似于photoshop的图像处理软件.功能要比photoshop要强.打开photoshop要老 &lt;br /&gt;&lt;br /&gt;长时间,而打开gimp只需要几秒.gimp有很多扩展,能制作gif动画,并且还可以直接输出视频 &lt;br /&gt;...... &lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;2,dia &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;dia是一个矢量图作图软件,对应windows里面的cisco.画电路图,流程图等很不错. &lt;br /&gt;3,inkscape &lt;br /&gt;&lt;br /&gt;inkscape是一个类似于CorelDraw的矢量图做图软件.能import JPG等格式图像,能打开dia做 &lt;br /&gt;&lt;br /&gt;的图像.文件默认保存为.svg格式. &lt;br /&gt;4,xfig &lt;br /&gt;&lt;br /&gt;xfig是一个专业的矢量作图软件.我没用过,看文档好像能家居设计,做地图等.默认保存格式 &lt;br /&gt;为.fig,需要转换为jpeg等格式. &lt;br /&gt;&lt;br /&gt;二十三,3D作图. &lt;br /&gt;1,blender &lt;br /&gt;linux下面的3Dmax,制作3D动画. &lt;br /&gt;2,maya(非开源软件) &lt;br /&gt;&lt;br /&gt;专业的的3D作图软件.这个不用我介绍了吧.收费的.哈哈 &lt;br /&gt;二十四,看图软件 &lt;br /&gt;1,gthumb &lt;br /&gt;&lt;br /&gt;gthumb是一个类似于acdsee的看图软件,支持缩略图,支持全屏.并且还能调整图像,转化格式 &lt;br /&gt;,旋转,裁减等功能. &lt;br /&gt;&lt;br /&gt;2,gqview,eog &lt;br /&gt;gqview和gthumb差不差多,但要简单一点.没有太多的功能.eog类似于win里面的图片传真查 &lt;br /&gt;看器. &lt;br /&gt;&lt;br /&gt;3,KDE里面的看图软件有gwenview等.本身konqueror就是一个好的看图软件. &lt;br /&gt;二十五,CAD软件 &lt;br /&gt;1,Qcad &lt;br /&gt;&lt;br /&gt;Qcad是一个简单的cad作图软件.只能做2D图像.上手很快的,拿上就会. &lt;br /&gt;2,Pro/E WildFire 2.0(非开源软件) &lt;br /&gt;&lt;br /&gt;Pro Engineer的linux版本的.相信这个软件能满足大家CAD/CAM的需求. &lt;br /&gt;二十六,模拟器 &lt;br /&gt;1,dosbox &lt;br /&gt;&lt;br /&gt;能模拟一些dos命令,软件. &lt;br /&gt;2,wine &lt;br /&gt;能模拟一部分windows软件,如IE,M$ office,QQ等. &lt;br /&gt;&lt;br /&gt;3,cedega(非开源软件) &lt;br /&gt;cedega是一个基于wine的软件,对游戏做了优化,玩CS,魔兽没问题.一点也不卡,但鼠标有点 &lt;br /&gt;飘. &lt;br /&gt;&lt;br /&gt;4,CrossOver Office(非开源软件) &lt;br /&gt;他和cedega类似的模拟windows应用程序的软件.不同的是他的侧重点在于办公. &lt;br /&gt;&lt;br /&gt;5,游戏模拟器 &lt;br /&gt;snes9x---nes模拟器,xmame---mame模拟器,vba---GBA......等. &lt;br /&gt;二十七,虚拟机 &lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;1,VMware &lt;/span&gt;&lt;br /&gt;最常见的虚拟机,很多初学linux的人都喜欢在他里面先装一下看看..在linux下面也有发行 &lt;br /&gt;&lt;br /&gt;版本.可以用VMware再模拟一个linux或windows.免费软件. &lt;br /&gt;2,qemu &lt;br /&gt;&lt;br /&gt;开放源代码的虚拟机,操作方便.安装kqemu加速后速度不比VMware慢.我在虚拟机里面安装了 &lt;br /&gt;&lt;br /&gt;一个solaris和一个windows2000,感觉还可以.目前qemu支持模拟x86,arm,powerpc,sparc等 &lt;br /&gt;&lt;br /&gt;CPU.并且还支持把ata硬盘的一个分区作为虚拟机的一个硬盘加载. &lt;br /&gt;二十八,编程 &lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;1,vim+gcc+gdb&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;这是个黄金组合,最原始的也是最流行的linux开发环境.gcc编译效率很高.他还可以交叉编 &lt;br /&gt;&lt;br /&gt;译,这个是别的软件所无法比拟的,在x86为别的平台开发软件大多都要用到gcc的交叉编译. &lt;br /&gt;2,别的语言有perl, &lt;br /&gt;python,tcl/tk,shell等. &lt;br /&gt;3,IDE &lt;br /&gt;&lt;br /&gt;Kdevelop是KDE下面的c/c++集成开发套件.&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Anjuta&lt;/span&gt;是GNOME下的IDE.能开发C/C++.perl, &lt;br /&gt;python等. &lt;br /&gt;&lt;br /&gt;4,界面设计 &lt;br /&gt;KDE下的QT designer.GNOME下的Glade interface designer等. &lt;br /&gt;5,eclipse &lt;br /&gt;&lt;br /&gt;eclipse是一个开放的,可扩展的IDE.主要是为开发java程序,也能开发C/C++.有大量的高手 &lt;br /&gt;为其写插件. &lt;br /&gt;&lt;br /&gt;6,非开源的软件有Jbuilder,netbeans,kylix等. &lt;br /&gt;二十九,网页设计 &lt;br /&gt;1,NVU &lt;br /&gt;&lt;br /&gt;NVU是把mozilla-composer分离出来的只有网页设计的功能,但目前还不完善,使用并不比 &lt;br /&gt;&lt;br /&gt;composer方便.NVU是所见即所得的软件. &lt;br /&gt;2,Bluefish &lt;br /&gt;Bluefish &lt;br /&gt;是为有经验的网页设计者和网页编程者使用的编辑器。它支持许多编程和标记语 &lt;br /&gt;言，但主要专注于编辑动态交互网站。 &lt;br /&gt;3,Screem &lt;br /&gt;&lt;br /&gt;Screem是GNOME套件中的网站开发环境.他不仅能编辑网页,还能让你更方便地管理站点. &lt;br /&gt;4,quanta plus &lt;br /&gt;quanta &lt;br /&gt;plus是KDE里面的web开发环境.功能类似于screem. &lt;br /&gt;三十,科学计算 &lt;br /&gt;1,Matlab &lt;br /&gt;&lt;br /&gt;Matlab是当今国际上最流行的科学运算语言,有linux下的发型版本.为非开源软件. &lt;br /&gt;2,Octave &lt;br /&gt;&lt;br /&gt;Octave是一个与Matlab兼容，主要用于数值计算语言.GPL发布的. &lt;br /&gt;&lt;br /&gt;3,Labplot是一个免费的数学分析和2D,3D画图软件，类似Origin.基于KDE的. &lt;br /&gt;&lt;br /&gt;4,Scilab是另一个可以代替Matlab的科学计算软件 &lt;br /&gt;三十一,科学制图 &lt;br /&gt;1,metapost &lt;br /&gt;&lt;br /&gt;metapost一种画图语言，可以精确的画出你想要的图形，通常生成eps格式配合latex使用， &lt;br /&gt;画出的图形是矢量的，可以支持无限缩放. &lt;br /&gt;&lt;br /&gt;2,gnuplot &lt;br /&gt;gnuplot可以用函数绘制二维的三维的图形,可以输出成很多种格式的图形. &lt;br /&gt;三十二,数据库 &lt;br /&gt;&lt;br /&gt;linux下数据库系统主要有oracle,PostgreSQL,&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;MySQL&lt;/span&gt;.后两个是开放源代码的. &lt;br /&gt;三十三,服务器 &lt;br /&gt;&lt;br /&gt;这个是linux的强项.我在这里不再多说了.&lt;/p&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;这种字体和颜色是我在用的，其他的有机会试用哈……&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;  &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-7708490930985524579?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/7708490930985524579/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=7708490930985524579' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/7708490930985524579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/7708490930985524579'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/05/linux.html' title='【转】Linux下推荐的常用应用程序列表'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-2074810739622321947</id><published>2008-05-25T15:55:00.001+08:00</published><updated>2008-12-12T13:24:45.409+08:00</updated><title type='text'>看图说话……</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_UO-aPFtY2Wk/SDkb3sT59mI/AAAAAAAAAD4/8wTrUfAJH_Y/s1600-h/Y(BV0CXHY7(F9QAXRDXDJIT.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5204221488004724322" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 503px; CURSOR: hand; HEIGHT: 369px; TEXT-ALIGN: center" height="325" alt="" src="http://3.bp.blogspot.com/_UO-aPFtY2Wk/SDkb3sT59mI/AAAAAAAAAD4/8wTrUfAJH_Y/s400/Y(BV0CXHY7(F9QAXRDXDJIT.jpg" width="503" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-2074810739622321947?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://archive.netscape.com/' title='看图说话……'/><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/2074810739622321947/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=2074810739622321947' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/2074810739622321947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/2074810739622321947'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/05/blog-post_25.html' title='看图说话……'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UO-aPFtY2Wk/SDkb3sT59mI/AAAAAAAAAD4/8wTrUfAJH_Y/s72-c/Y(BV0CXHY7(F9QAXRDXDJIT.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-2729239956067797497</id><published>2008-05-21T17:20:00.002+08:00</published><updated>2008-05-21T17:32:07.257+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='机器人'/><category scheme='http://www.blogger.com/atom/ns#' term='工作日记'/><title type='text'>比赛取消……</title><content type='html'>&lt;a target="_blank" href="https://mail.google.com/mail?view=cm&amp;amp;tf=0&amp;amp;ui=1&amp;amp;to=dkjfhg@qq.com"&gt;&lt;b class="nickname" title="点击名字 给他写信"&gt;三斤鱼&lt;/b&gt;&lt;/a&gt; &lt;span class="black"&gt;(12525014)&lt;/span&gt;&lt;span style="display: none;"&gt;QQMail_REFER_SPLIT&lt;/span&gt;    在 2008年5月20日(星期二) 晚上06:38 写道：      &lt;div class="gpcontent show0"&gt;&lt;div&gt;今天刚刚收到“关于终止举办“韵升杯”机器人足球赛的函”，大意是宁波的选拔赛取消了，但暂时没接收到取消世界杯的通知！&lt;br /&gt;所以，现在协会的安排是，队伍不解散，工作量力进行，努力用优秀的成绩通过眼前的考试，这周六的会照开(晚八点，一食堂一楼)，讨论我们下一步的计划！大家辛苦了！&lt;/div&gt; &lt;div&gt; &lt;/div&gt;&lt;/div&gt;   &lt;script&gt;O(0);&lt;/script&gt;       &lt;span class="show0"&gt;    &lt;a href="http://m60.mail.qq.com/cgi-bin/groupattachment?att=012557E9000000320001014D2F517E" name="_QQMail_DownloadGroupMailAttach_"&gt;&lt;img ow="12" src="http://m60.mail.qq.com/zh_CN/htmledition/images/icon_att.gif" class="img_att" align="absmiddle" border="0" /&gt;&lt;b&gt;终止比赛的函.doc&lt;/b&gt;&lt;/a&gt;   &lt;/span&gt;     |  &lt;span class="show0"&gt;    &lt;a href="http://m60.mail.qq.com/cgi-bin/groupattachment?att=012557E9000000320001025099CB71" name="_QQMail_DownloadGroupMailAttach_"&gt;&lt;img ow="12" src="http://m60.mail.qq.com/zh_CN/htmledition/images/icon_att.gif" class="img_att" align="absmiddle" border="0" /&gt;&lt;b&gt;tongzhi.jpg&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;以上是我发给队友的消息。不知当时是什么心情了，大概是放松吧……&lt;br /&gt;从组队开始，到现在，没过一秒，信心就减少一分，到后来，心理压力就越发的大，弄的心绪不定，代码写不了，书看不进，所以当看到这个通知时就对自己说，可以安心看书准备考试了！&lt;br /&gt;而且我最近发现，我只是简单的喜欢编程，而不是机器人，因为我选了仿真这偏向编程的放弃了硬件的飞思卡尔。而且，最近越来越迷恋Linux，而因为这个比赛，我把所有的东西都放下了，越发感觉是在承担一种责任，而比是兴趣、爱好、理想，这样比较累，这也是为什么我后来躁狂的原因吧！室友说我和书记都躁狂，而且“躁狂”这个词也是他想的，感觉很贴切……&lt;br /&gt;不管怎么样，先把考试解决再说。比赛取消了，我们队伍不会解散！我们的友谊不会消散，我们经历了，我们已经收获了……&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/1874697964364684195-2729239956067797497?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/2729239956067797497/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=2729239956067797497' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/2729239956067797497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/2729239956067797497'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/05/blog-post_21.html' title='比赛取消……'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-6639269656416039846</id><published>2008-05-14T08:54:00.000+08:00</published><updated>2008-05-14T08:54:17.804+08:00</updated><title type='text'>平安！</title><content type='html'>&lt;span style="color: rgb(255, 0, 0);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&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/1874697964364684195-6639269656416039846?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/6639269656416039846/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=6639269656416039846' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/6639269656416039846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/6639269656416039846'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/05/blog-post_14.html' title='平安！'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-9200612498870949758</id><published>2008-05-14T08:43:00.000+08:00</published><updated>2008-05-14T08:44:06.044+08:00</updated><title type='text'>［转］时光短暂，信息无限，读你所需</title><content type='html'>&lt;strong&gt;时光短暂，信息无限，读你所需。&lt;/strong&gt;下面是一些技巧，它教你在能获取那些最优秀的信息的前提下，尽可能地减少你的阅读量。&lt;ul&gt;&lt;li&gt;&lt;strong&gt;留意开头&lt;/strong&gt; - 在读一本书前十五页的时候相信你的直觉。有人会说，不要凭封面判断一本书，但是如果一本书真的很好，那么往往在头十五页你就会发觉。 &lt;/li&gt;&lt;li&gt;&lt;strong&gt;适时结束&lt;/strong&gt; - 半路就把一本书放下没有什么不妥。 &lt;/li&gt;&lt;li&gt;&lt;strong&gt;速读&lt;/strong&gt; - 速读不是一味的读快，而是要适当的控制你的阅读节奏。你要知道什么时候该读快，什么时候该读慢。 我一般会跳过那些不感兴趣的话题而详读那些好的观点。 &lt;/li&gt;&lt;li&gt;&lt;strong&gt;跳过一些章节&lt;/strong&gt; - 有时候一本书会有吸引你的观点，但在这本书中其他的章节你并不感兴趣。那么你可以跳过去. 比如说你为了想建立网络公司看一本关于创业的书, 那么你就跳过关于特许经营权的部分. 如果哪部分看起来很难懂, 也可以跳过去, 看看后面是不是还会说到这一话题.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;第二步就是利用你想获得的信息。在这以前，你已经花费了很大的精力来过滤掉那些垃圾, 所以你应该好好利用剩下的精华。下面是一些小技巧。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;用一只高亮笔&lt;/strong&gt; - 用高亮笔把你想记住的观点划下来。在用它的时候我很”吝啬”，因为它减慢了阅读速度。所以，只在重要的部分停下就足够了。 &lt;/li&gt;&lt;li&gt;&lt;strong&gt;读的时候停下来思考&lt;/strong&gt; - 在读好书的时候，你失败的原因之一可能是它们信息量很大而不能很快的接受。我在遇到很多新观点的时候，我会把书合上开始思考。 &lt;/li&gt;&lt;li&gt;&lt;strong&gt;应用&lt;/strong&gt;- 遇到新观点时，试着去问问自己能否立即应用它。这将令这个观点更容易记住而且更实用。 &lt;/li&gt;&lt;li&gt;&lt;strong&gt;联系&lt;/strong&gt;- 有的时候好的思想往往被掩盖住了。当你读到你感兴趣的然而与你不相关的书，再想想。问问自己这个方面的话题能不能增进你在其他方面的理解。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;这些阅读技巧主要是针对非小说类图书的。如果你读书的目的仅仅是为了消遣，就不需要高亮笔和跳过部分章节了。但是如果你是为了获取信息而读书，那么不要仅仅读得快，而且要读得更聪明些。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-9200612498870949758?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/9200612498870949758/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=9200612498870949758' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/9200612498870949758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/9200612498870949758'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/05/blog-post_1974.html' title='［转］时光短暂，信息无限，读你所需'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-5424671527363873813</id><published>2008-05-10T17:30:00.001+08:00</published><updated>2008-05-10T17:30:16.574+08:00</updated><title type='text'>我们这里还有鱼……</title><content type='html'>&lt;p&gt;我知道这些日子你要承担多少哀伤，才可以面对破碎的梦想，我相信那么多的关心总会带来希望，别忘了我们这里还有鱼……&lt;/p&gt; &lt;p&gt;我感觉这就是6月4号之后的一种解脱方式，只是可能，希望不会出现这样的结果……&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/san.jinyu/SCVrFnv2IgI/AAAAAAAAADo/06fbdTle4BU/s1600-h/200849222423654%5B2%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="200849222423654" src="http://lh6.ggpht.com/san.jinyu/SCVrHnv2IhI/AAAAAAAAADw/VfZQlHGIZ3w/200849222423654_thumb.jpg?imgmax=800" width="244" height="185"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;这就是我们在大瓦山上的希望……，它一直在心里燃烧着……&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-5424671527363873813?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/5424671527363873813/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=5424671527363873813' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/5424671527363873813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/5424671527363873813'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/05/blog-post_9171.html' title='我们这里还有鱼……'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-7211009495344938331</id><published>2008-05-10T16:35:00.001+08:00</published><updated>2008-05-10T16:35:31.584+08:00</updated><title type='text'>windows live writer test!</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/san.jinyu/SCVeTnv2IeI/AAAAAAAAADY/w9ITCkVLaW8/s1600-h/1%20%284%29%5B2%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="1 (4)" src="http://lh6.ggpht.com/san.jinyu/SCVeUnv2IfI/AAAAAAAAADg/DNghT2VxnzQ/1%20%284%29_thumb.jpg?imgmax=800" width="244" height="154"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-7211009495344938331?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/7211009495344938331/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=7211009495344938331' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/7211009495344938331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/7211009495344938331'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/05/windows-live-writer-test.html' title='windows live writer test!'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-6532030884377692252</id><published>2008-05-10T06:01:00.000+08:00</published><updated>2008-05-10T16:31:37.108+08:00</updated><title type='text'></title><content type='html'>到现在才发现，原原以为解禁了呢，谁知道是我设置的代理起了作用哇，我当时设时没重启，所以以为那方法不好用，然后N年后重启就忘了设过代理之类的事了，就上去了，就这样误会了……&lt;br /&gt;&lt;br /&gt;哎……&lt;br /&gt;&lt;br /&gt;把设置代理的方法放这和大家共享吧……&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;编辑WINDOWS\system32\drivers\etc\hosts 文件，然后加入72.14.219.190 xxx.blogspot.com ，其中xxx是你的用户名，即可访问到你自己的BlogSpot了。&lt;br /&gt;&lt;br /&gt;　　令一个奇怪的现象是，我前几天曾经发现我的MSN SPACES空间无法访问，而今天却又可以访问了，反而倒是Google又不能访问。&lt;br /&gt;&lt;br /&gt;　　Google的公关同志们，考验你们的时刻到来了，现在该是行动的时候了。恢复BlogSpot的重任就寄托在你们身上了。&lt;br /&gt;&lt;br /&gt;　　更新：3月28日，Google Blogger又可以访问了，不过3月29日再次无法访问，另外pkblogs这个绕到访问的方法也无效了。&lt;br /&gt;&lt;br /&gt;　　更新：4月1日，Blogspot又可以访问了，这么反反复复，可怜这些用户啊。&lt;br /&gt;&lt;br /&gt;　　更新：4月5日，Blogspot又无法访问啦。终于明白了一个道理：神仙在玩儿我们呢。&lt;br /&gt;&lt;br /&gt;　　更新：4月15日，Blogspot可以正常访问。&lt;br /&gt;&lt;br /&gt;　　更新：5月11日，再次被封。5月14日解封。莫非有人在耍猴？&lt;br /&gt;&lt;br /&gt;　　更新：5月28日，再次被封。&lt;br /&gt;&lt;br /&gt;　　大家请猜一下，下一次Blogspot不能访问会是什么时候？&lt;br /&gt;    以上引用自月光博客：http://www.williamlong.info/archives/833.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-6532030884377692252?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/6532030884377692252/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=6532030884377692252' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/6532030884377692252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/6532030884377692252'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/05/n-windowssystem32driversetchosts-72.html' title=''/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-622281229747056847</id><published>2008-05-10T03:22:00.002+08:00</published><updated>2008-05-10T03:26:50.420+08:00</updated><title type='text'>状态恢复后，给队友的俩封信和一些短信</title><content type='html'>&lt;span style="color:#cc0000;"&gt;to my dear pal：&lt;br /&gt;大家很好啊！我先在这里做下基本的安排和说明哈！&lt;br /&gt;首先，框架基本上不会再变动，函数接口等以固定下来了，这个和周六要发布的没什么区别，只是缺少文档，希望大家在我们开会之前看一下，带着问题来开会，当然最好能看懂，没有问题是最好的了。在我们开会之前，除小乐和小猪外，也都要想好自己的策略，形成系统的思路，就交份简单的文档上来吧，当然可以开始写一点程序了。小乐要想好怎么测试，怎么在大量数据用什么方法来量化策略的优劣，可以参考下相关论文，里面都有性能比较之类的吧。小猪呢，还是做好建模吧，因为我这方面真的不熟，所以我也没的什么建议给你，努力吧你。或者你看下你能负责哪方面？&lt;br /&gt;&lt;br /&gt;其次，有件事我不得不说了，因为和大家都很熟，太熟，所以很多事都要靠大家自觉，我也不好说什么，大家低头不见抬头见的，说深说浅都不好的，所以请大家不要我太难做，到时真的出什么问题也不要怪我。我也很难做的！！！大家也想下，从开始到现在自己都做过些什么嘛，在团队中，在这件事上花费了多少时间，用了多少心思。&lt;br /&gt;&lt;br /&gt;最后，我还是希望大家能坚持一下，像大灌篮一样，以胜利结束我们的旅程……&lt;br /&gt;&lt;br /&gt;三斤鱼                                           2008年5月9日(星期五) 中午11:26 &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;to my dear friends：&lt;br /&gt;      正式版终于发布了，完善了下注释，然后增加了一条语句，而就是这条语句也耗费了很长时间才发现应该加，加在哪！然后通过了基础测试，在dll.rar里有说明。&lt;br /&gt;     明天呢，我会给大家讲解下框架，然后大家一起进行单元测试，通过这种方式使大家理解框架。&lt;br /&gt;&lt;br /&gt;                                                                                                               三斤鱼    0805100319&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;三斤鱼 说(05-08 14:49):刚才和老师谈了下，我们外出的时间是5.29--6.7，一共10，有谁不去，或是去不了的马上发短信给我，我现在在填回执，要马上交了，填了的人就必须去了。收到请回复        于金山&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;br /&gt;三斤鱼 说(05-09 10:57):通知：最近我们团队比较混乱，造成这一状态的原因按赢方的说法就是“我错了，我有罪”，我的管理上或者说我一直看不清全局的状况而不能采用软工的方式进行有直接关系。所以我一直在一个人赶写一个比较完美的框架，现在基本成型，正在写简单的文档，接口不会再变。&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;三斤鱼 说(05-09 10:57):所以决定这周六晚8点在一食堂三楼开我们团队开第二次例会，不准请假、迟到。内容是大家交流下近阶段的看法，然后我讲下框架，之后的一周会安排每人写一份策略，除小乐测试和小猪建模之外的人都要写。收到请回复。     于金山&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;三斤鱼 说(05-09 11:27):那个我在群邮件里发了缺少文档的框架，因为文档还在写，当然，信中也写了很多，知道大家用短信接长篇的东西很痛苦。^-^  !&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;三斤鱼 说(03:06:46):框架终于定下来了，基础测试通过！已经发到群邮件里了，明晚讲解，然后大家一起进行单元测试……&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;color:#ffff66;"&gt;在慢慢成长……&lt;/span&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-622281229747056847?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/622281229747056847/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=622281229747056847' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/622281229747056847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/622281229747056847'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/05/blog-post_10.html' title='状态恢复后，给队友的俩封信和一些短信'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-1000742646249405939</id><published>2008-05-09T12:44:00.002+08:00</published><updated>2008-05-09T12:46:59.886+08:00</updated><title type='text'>有道魔方的突变</title><content type='html'>这东西也太有意思了，前段时间还是100%男性，这几天进不来，然后通过离线发布器写了几篇，还有一个是队友的东西，今天上来一看，竟然50%男性……汗……&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-1000742646249405939?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/1000742646249405939/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=1000742646249405939' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/1000742646249405939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/1000742646249405939'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/05/blog-post_09.html' title='有道魔方的突变'/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1874697964364684195.post-7779056370774840622</id><published>2008-05-07T00:27:00.000+08:00</published><updated>2008-05-10T16:31:37.173+08:00</updated><title type='text'></title><content type='html'>奇怪&lt;br /&gt;&lt;br /&gt;这几天直奇怪的，bolg打不开，只能用这Drivel日记编辑器写了，而且可以发上去，郁闷的很，只能写，不能看。&lt;br /&gt;刚才那篇是我们这里编程最强的方方4号写的，很是搞笑吧！我原来一直没发现他是开心果，可能是我们老是讨论些严肃的问题吧，现在天天一起在实验室里，而且又这样聚到一起写代码，准备比赛，肯定接触深了些，很是惊讶的……今天他又参加他同学的生日聚会吧，喝多了的（据说才俩瓶＊＊＊），又说了一些好玩的话，什么会长真的很辛苦啊之类的……&lt;br /&gt;也许真的和小强说的，只有我一个全心全意的投入，而其他人还要慢慢的培养兴趣……&lt;br /&gt;我直郁闷的，我多么希望有人对我说：你不是一个人在战斗……&lt;br /&gt;我现在只是希望在周六之前把框架完全定下来，打印出来，不再更改，好让我们进入到下个阶段，策略的编写……&lt;br /&gt;也许那时大家就都有事做了……&lt;br /&gt;倒记时21天……&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1874697964364684195-7779056370774840622?l=anquandeyu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anquandeyu.blogspot.com/feeds/7779056370774840622/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1874697964364684195&amp;postID=7779056370774840622' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/7779056370774840622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1874697964364684195/posts/default/7779056370774840622'/><link rel='alternate' type='text/html' href='http://anquandeyu.blogspot.com/2008/05/bolgdrivel-4-21.html' title=''/><author><name>三斤鱼</name><uri>http://www.blogger.com/profile/09501773752116134708</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11001620521201605908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>