﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-遨游Code Sky</title><link>http://www.cppblog.com/larryliuqing/</link><description>共享今天Code Sky, 共创明天Code Sky!</description><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 09:39:59 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 09:39:59 GMT</pubDate><ttl>60</ttl><item><title>【转】squid简介</title><link>http://www.cppblog.com/larryliuqing/archive/2012/01/03/163474.html</link><dc:creator>刘远清</dc:creator><author>刘远清</author><pubDate>Tue, 03 Jan 2012 03:54:00 GMT</pubDate><guid>http://www.cppblog.com/larryliuqing/archive/2012/01/03/163474.html</guid><wfw:comment>http://www.cppblog.com/larryliuqing/comments/163474.html</wfw:comment><comments>http://www.cppblog.com/larryliuqing/archive/2012/01/03/163474.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/larryliuqing/comments/commentRss/163474.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/larryliuqing/services/trackbacks/163474.html</trackback:ping><description><![CDATA[<div style="color: #333333; font-family: Arial; word-wrap: break-word; word-break: break-all; visibility: visible !important; zoom: 1 !important; filter: none; font-size: 16px; line-height: 18px; font-weight: bold; height: 48px; padding-left: 30px; padding-top: 10px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; overflow-x: hidden; overflow-y: hidden; text-align: -webkit-left; ">squid简介</div><div style="color: #999999; font-family: Arial; word-wrap: break-word; word-break: break-all; visibility: visible !important; zoom: 1 !important; filter: none; line-height: 18px; margin-top: 5px; margin-right: 0px; margin-bottom: 8px; margin-left: 0px; text-align: -webkit-left; ">2008年12月11日 星期四 14:16</div><table style="table-layout: fixed; font-family: Arial; width: 958px; "><tbody><tr><td style="word-wrap: break-word; word-break: break-all; visibility: visible !important; zoom: 1 !important; filter: none; font-size: 12px; line-height: 18px; color: #333333; "><div id="blog_text" style="color: #666666; word-wrap: break-word; word-break: break-all; visibility: visible !important; zoom: 1 !important; filter: none; font-size: 14px; line-height: 30px; background-image: url(http://imgsrc.baidu.com/css/pic/item/8334ad430aed590772f05d38.jpg); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; padding-bottom: 80px; overflow-x: hidden; overflow-y: hidden; position: relative !important; border-image: initial; background-position: 100% 100%; background-repeat: no-repeat no-repeat; "><p style="line-height: normal; "><a name="top" style="text-decoration: none; color: rgb(81, 191, 224); "></a><a href="http://www.linux.gov.cn/netweb/squid.htm#top" style="text-decoration: none; color: #4d4d4d; ">简介</a><br /><a href="http://www.linux.gov.cn/netweb/squid.htm#conf" style="text-decoration: none; color: #4d4d4d; ">普通代理</a><br /><a href="http://www.linux.gov.cn/netweb/squid.htm#transconf" style="text-decoration: none; color: #4d4d4d; ">透明代理</a><br /><a href="http://www.linux.gov.cn/netweb/squid.htm#reverseconf" style="text-decoration: none; color: #4d4d4d; ">反向代理</a><br /><a href="http://www.linux.gov.cn/netweb/squid.htm#troubleshoot" style="text-decoration: none; color: #4d4d4d; ">故障处理</a><br /><a href="http://www.linux.gov.cn/netweb/squid.htm#example1" style="text-decoration: none; color: #4d4d4d; ">一个范例</a><br /><a href="http://www.linux.gov.cn/netweb/squid.htm#example2" style="text-decoration: none; color: #4d4d4d; ">一个限制访问的范例</a></p><p style="line-height: normal; ">官方网站：http://www.squid-cache.org/</p><p style="line-height: normal; ">相关技术网站：http://www.visolve.com/</p><h2><a name="intro" style="text-decoration: none; color: rgb(81, 191, 224); "></a>一. 代理服务简介</h2><a href="http://www.linux.gov.cn/netweb/squid.htm#top" style="text-decoration: none; color: #4d4d4d; line-height: normal; ">返回</a><h3>1. 什么是代理服务器(Proxy Server)</h3><p style="line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp; 代理服务可以代表其它计算机传递数据包或信息,这些数据包和信息包括网页、电子邮件、多媒体文件和其它网络应用程序等。通过它的文件缓存和访问控制等功能，可以实现快速浏览和对用户访问的有效管理。</p><p style="line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp; Web代理服务器(通常所说的代理服务器)是介于浏览器和Web服务器之间的一台服务器,当你通过代理服务器上网浏览时，浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求，由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。 而且，大部分代理服务器都具有缓冲的功能，就好象一个大的Cache，它有很大的存储空间，它不断将新取得数据储存到它本机的存储器上，如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的，那么它就不重新从Web服务器取数据，而直接将存储器上的数据传送给用户的浏览器，这样就能显著提高浏览速度和效率。</p><p style="line-height: normal; ">　更重要的是：代理服务器是 Internet链路级网关所提供的一种重要的安全功能，它的工作主要在开放系统互联 (OSI) 模型的对话层。主要的功能有：<br />　　&nbsp;<br />　　1、连接Internet与Intranet 充当firewall（防火墙）：因为所有内部网的用户通过代理服务器访问外界时，只映射为一个IP地址，所以外界不能直接访问到内部网；同时可以设置 IP地址过滤，限制内部网对外部的访问权限；另外，两个没有互联的内部网，也可以通过第三方的代理服务器进行互联来交换信息。</p><p style="line-height: normal; ">　　2、共享因特网连接，节省IP开销：如前面所讲，所有用户对外只占用一个IP，所以不必租用过多的IP地址，降低网络的维护成本。这样，局域局内没有与外网相连的众多机器就可以通过内网的一台代理服务器连接到外网，大大减少费用。当然也有它不利的一面，如许多网络黑客通过这种方法隐藏自己的真实IP地址，而逃过监视。</p><p style="line-height: normal; ">　　3、提高访问速度，节约通信带宽。而且通常代理服务器都设置一个较大的硬盘缓冲区（可能高达几个GB或更大），当有外界的信息通过时，同时也将其保存到缓冲区中，当其他用户再访问相同的信息时，则直接由缓冲区中取出信息，传给用户，从而达到提高访问速度的目的。</p><h3>2. 代理服务器的硬件需求</h3><p style="line-height: normal; ">代理服务器对于硬件的要求相当的高！因为我们架设代理服务器的目的就是希望能够加快网络的传输速度因此，虽然代理服务器几乎在任何的 Linux 系统上面都能跑，但是代理服务器最好还是有较高的硬件配置：</p><p style="line-height: normal; ">CPU 足够好；</p><p style="line-height: normal; ">RAM 足够大，这也是很重要的一个硬件参数</p><p style="line-height: normal; ">Hard Disk 最好能用 SCSI 接口的，因为速度与稳定度都比较好！如果不能的话，那么 IDE 接口的硬盘由于目前速度也越来越快，所以使用 IDE 也没有问题，但是最好是『多块硬盘』的架构，例如我总共需要 30 GB 的硬盘空间，那么最好是 10 GB 的硬盘三块这样的架构较佳。 最好在架设代理服务器时，将整体主机的规划做好，并且让代理服务器主机的服务单纯一点，最好只负责代理服务</p><p style="line-height: normal; ">每颗硬盘的容量不需要太大，此外，最好将硬盘分割一下，一个分区在 2~4 GB 之间即可，因为分太大的话资料的搜寻耗费时间较长，但是分区太小又可能造成空间的浪费</p><p style="line-height: normal; ">cache 是放置在某个目录下的，而最好一个目录底下就是独立的一个partition 。此外，由于 cache 所在的硬盘常常会有资料的存取，因此可能此一硬盘的损耗率会比较大，所以这个 cache 所在的硬盘最好不要跟重要数据文件，例如 /， /etc， /usr， /home 等等重要的系统文件放在一起！</p><p style="line-height: normal; ">也由于 cache 所在的硬盘资料存取太密集了，所以，硬盘的选择上面需要 (1)转速不能太低； (2)磁头的机械臂需要可以忍受频繁的动作；(3)发热量不可太大，或者可以考虑加装硬盘用风扇。</p><p style="line-height: normal; ">网络卡与网络周边最好使用 GBytes 的网络卡</p><h3>3. 使用squid的好处</h3><p style="line-height: normal; ">squid是开源软件，性能优秀。并仍在世界各地的squid开发者的共同努力下，不断发展。</p><p style="line-height: normal; ">快速响应，减少网络阻塞,Squid将远程Internet对象保存为本地拷贝。当本地用户再次访问这些对象时，Squid可以直接快速地提供对这些对象的访问，而不必再次占用带宽访问远程服务器上的对象。</p><p style="line-height: normal; ">增强访问控制，提高安全性。可以针对特定的的网站、用户、网络、数据类型实施访问控制</p><p style="line-height: normal; ">squid可以工作在普通代理模式、透明代理模式各反向代理模式</p><h3>4. squid的结构</h3><p style="line-height: normal; ">多个squid代理服务器可以通过icp协议相互沟通，形成树形层次关系（父代理、兄弟代理、子代理），构建代理服务器群。</p><h2><a name="conf" style="text-decoration: none; color: rgb(81, 191, 224); "></a>二. squid.conf的典型配置（普通代理）</h2><p style="line-height: normal; "><a href="http://www.linux.gov.cn/netweb/squid.htm#top" style="text-decoration: none; color: #4d4d4d; ">返回</a></p><h3>1. 配置</h3><p style="line-height: normal; ">#vi /etc/squid/squid.conf</p><p style="line-height: normal; ">#http_port指令告诉squid在哪个端口侦听HTTP请求。默认端口是3128,除下面的形式外,也可以是http_port 192.168.63.50:3128<br />http_port 3128<br />icp_port 3130</p><p style="line-height: normal; ">#缓存目录的设置,可以设置多个缓存目录,语法为:&lt;cache_dir&gt; &lt;aufs|ufs&gt; &lt;目录所在&gt; &lt;MBytes大小&gt; &lt;dir1&gt; &lt;dir2&gt;<br />cache_dir ufs /var/spool/squid 1000 64 1024</p><p style="line-height: normal; ">#下面是关于日志文件的放置目录与文件名！<br />cache_access_log /var/log/squid/access.log<br />cache_log /var/log/squid/cache.log<br />cache_store_log /var/log/squid/store.log<br />pid_filename /var/run/squid.pid</p><p style="line-height: normal; ">#关闭认证机制，有些版本的　squid 会自动的加入代理认证机制，而普通情况下是不需要的,故找到包括auth_param的行，给它们加上注释<br />#auth_param basic children 5<br />#auth_param basic realm Squid proxy-caching web server<br />#auth_param basic credentialsttl 2 hours</p><p style="line-height: normal; ">#设置squid用户及用户组、管理员账号<br />cache_effective_user squid<br />cache_effective_group squid&nbsp;<br />cache_mgr youraccount@your.e.mail</p><p style="line-height: normal; "># 与内存有关的配置：因为我的系统内存很小，所以只给 8 MB！如果您的物理内存很大的情况下，例如 512 MB，可以考虑加大到 64 或 128 MB。<br />cache_mem 128 MB</p><p style="line-height: normal; "># 与磁盘容量有关的配置(注：下列的 90 与 95 是百分比 )，如果您的 cache_dir 所在磁盘很大时，可以考虑将 4096 改成 32768 KB<br />cache_swap_low 90<br />cache_swap_high 95<br />maximum_object_size 4096 KB</p><p style="line-height: normal; "># 与内存保存资料有关的配置<br />maximum_object_size_in_memory 8 KB</p><p style="line-height: normal; ">#定义acl(访问控制列表), 语法为:acl&lt;acl&gt; &lt;acl名称&gt; &lt;acl类型&gt; &lt;配置的内容&gt;<br />#黑体为用户自定义部分</p><p style="line-height: normal; ">acl All src 0/0&nbsp;<br />acl Manager proto cache_object&nbsp;<br />acl Localhost src 127.0.0.1/32&nbsp;<br />acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 1025-65535&nbsp;<br />acl SSL_ports 443 563&nbsp;<br />acl CONNECT method CONNECT&nbsp;<br /><strong>acl MyNetwork src 192.168.0.0/16</strong><br /><br />#利用前面定义的acl,定义访问控制规则<br />http_access allow Manager Localhost<br />http_access deny Manager<br />http_access deny !Safe_ports<br />http_access deny CONNECT !SSL_ports<br /><strong>http_access allow MyNetwork</strong><br />http_access deny All</p><p style="line-height: normal; ">#定义与其它代理服务器的关系,语法: &lt;cache_peer&gt; &lt;主机名称&gt; &lt;类别&gt; &lt;http_port&gt; &lt;icp_port&gt; &lt;其它参数&gt;<br />cache_peer 192.168.60.6 parent 4480 7 no-query default</p><p style="line-height: normal; ">#设置与其它代理服务器的关系:<br /># &lt;cache_peer_access&gt; &lt;上层 Proxy &gt; &lt;allow|deny&gt; &lt;acl名称&gt;<br />#cache_peer_access 192.168.60.6 allow aclxxx&nbsp;<br />#cache_peer_access 192.168.60.6 deny !aclxxx</p><p style="line-height: normal; ">coredump_dir /var/spool/squid</p><h3>2. 激活squid</h3><p style="line-height: normal; ">1). 在开启squid之前，你应该验证其配置文件是否正确。运行如下命令即可：</p><p style="line-height: normal; "># squid -k parse</p><p style="line-height: normal; ">假如你看不到输出，配置文件有效，你能继续后面的步骤。然而，如果配置文件包含错误，squid会告诉你：</p><p style="line-height: normal; ">2). 初始化cache目录.即建立缓存目录的存储格式</p><p style="line-height: normal; ">只需在第一次启动squid服务之前执行(在初次运行squid之前，或者无论何时你增加了新的cache_dir，你必须初始化cache目录。)</p><p style="line-height: normal; "># squid -z</p><p style="line-height: normal; ">cache目录初始化可能花费一些时间，依赖于cache目录的大小和数量，以及磁盘驱动器的速度。假如你想观察这个过程，请使用-X选项：</p><p style="line-height: normal; "># squid -zX</p><p style="line-height: normal; ">3). 启动squid服务</p><p style="line-height: normal; "># service squid start</p><p style="line-height: normal; ">假定squid安装在/usr/local/squid目录下,也可以</p><p style="line-height: normal; "># /usr/local/squid/sbin/squid -sD</p><p style="line-height: normal; ">4). 停止squid</p><p style="line-height: normal; ">最安全的停止squid的方法是使用squid -k shutdown命令：</p><p style="line-height: normal; "># squid -k shutdown</p><p style="line-height: normal; ">5). 重配置运行中的squid进程</p><p style="line-height: normal; ">在你了解了更多关于squid的知识后，你会发现对squid.conf文件做了许多改动。为了让新设置生效，你可以关闭和重启squid,或者在squid运行时，重配置它。</p><p style="line-height: normal; ">重配置运行中的squid最好的方法是使用squid -k reconfigure命令：</p><p style="line-height: normal; "># squid -k reconfigure</p><p style="line-height: normal; ">6). 滚动日志文件</p><p style="line-height: normal; ">除非你在squid.conf里禁止，squid会写大量的日志文件。你必须周期性的滚动日志文件，以阻止它们变得太大。squid将大量的重要信息写入日志，假如写不进去了，squid会发生错误并退出。为了合理控制磁盘空间消耗，在cron里使用如下命令：</p><p style="line-height: normal; ">%squid -k rotate</p><p style="line-height: normal; ">例如，如下任务接口在每天的早上4点滚动日志：</p><p style="line-height: normal; ">0 4 * * * /usr/local/squid/sbin/squid -k rotate</p><p style="line-height: normal; ">该命令做两件事。首先，它关闭当前打开的日志文件。然后，通过在文件名后加数字扩展名，它重命名cache.log,store.log,和 access.log。例如，cache.log变成cache.log.0,cache.log.0变成cache.log.1,如此继续，滚动到 logfile_rotate选项指定的值。</p><p style="line-height: normal; ">squid仅仅保存每个日志文件的最后logfile_rotate版本。更老的版本在重命名过程中被删除。假如你想保存更多的拷贝，你需要增加logfile_rotate限制，或者编写脚本用于将日志文件移动到其他位置。 请见13.7章关于滚动日志的其他信息。</p><h3>3. 访问控制示例</h3><p style="line-height: normal; ">1) 禁止访问某个网站</p><p style="line-height: normal; ">在squid配置文件中添加以下acl名称及访问规则,并重新加载配置文件</p><p style="line-height: normal; ">acl sina dstdomain .sina.com.cn .sina.com<br />http_access deny sina</p><p style="line-height: normal; ">或</p><p style="line-height: normal; ">acl sina dst 58.63.236.26 58.63.236.27 58.63.236.28 58.63.236.29 58.63.236.30 58.63.236.31 58.63.236.32 58.63.236.33 58.63.236.34 58.63.236.35 58.63.236.36 58.63.236.37 58.63.236.38 58.63.236.39 58.63.236.49 58.63.236.50<br />http_access deny sina</p><p style="line-height: normal; ">或</p><p style="line-height: normal; ">acl sina dst www.sina.com.cn<br />http_access deny sina</p><p style="line-height: normal; ">2) 禁止来自某些IP地址的访问</p><p style="line-height: normal; ">在squid配置文件中添加以下acl名称及访问规则,并重新加载配置文件</p><p style="line-height: normal; ">acl zhang src 192.168.63.6/32<br />http_access deny zhang</p><p style="line-height: normal; ">3) 禁止在某些时段访问</p><p style="line-height: normal; ">acl Working_hours MTWHF 08:00-17:00<br />http_access allow Working_hours<br />http_access deny !Working_hours</p>4) 禁止某个代理客户建立过多连接<p style="line-height: normal; ">acl OverConnLimit maxconn 4&nbsp;<br />http_access deny OverConnLimit</p><h2><a name="transconf" style="text-decoration: none; color: rgb(81, 191, 224); "></a>三. 透明代理</h2><p style="line-height: normal; "><a href="http://www.linux.gov.cn/netweb/squid.htm#top" style="text-decoration: none; color: #4d4d4d; ">返回</a></p><p style="line-height: normal; ">让我们现在来想象一个联机状态，就是你有一整组内部网络，而这个内部网络都是透过 NAT 主机联机出去的。那么我们谈过，就是在一个内部网很大的情况下，使用 Proxy 是一个很不错的选择，因为至少他可以减轻带宽负荷！不过，遗憾的是，架设 Proxy 的时候，也要使用者在浏览器上面设置代理！那么有没有办法在『使用者不需要在浏览器上面进行任何配置，就可以实现以 Proxy 帮助使用者联接Internet？当然有啦！那就是 Transparent Proxy 啦！也有人翻译成『透明代理服务器』，其原理是：</p><p style="line-height: normal; ">当使用者经过 NAT 服务器来联机进入 Internet 时，假如使用的 Internet 协议为 80 (也就是 WWW) ，那么就将这个要求交给 Proxy 来工作，以达到代理服务器的功能。</p><p style="line-height: normal; "><br />呵呵！也就是说，当使用者是经过 NAT 主机联机出去时，只要让 NAT 主机发现『咦！你是要去读取 www 的资料对吧！好！那么这个动作由 Proxy 主机帮你搞定！』如此一来，使用者根本就不需要在浏览器上面配置 Proxy 的相关资料，因为这个动作是『由 NAT 主机自己决定的』，所以只要在 NAT 主机上面配置妥当即可，使用者不必配置任何资料呢！那么要怎么进行呢？只要两个步骤即可：</p><h3>1. 配置 Proxy 主机：</h3><p style="line-height: normal; ">1) 如果是squid 2.5,需要更改squid配置文件中的下列指令:</p><p style="line-height: normal; ">[root@test root]# vi /etc/squid/squid.conf&nbsp;<br />！&nbsp;<br />httpd_accel_host virtual # 告诉web加速器,针对所有的URL</p><p style="line-height: normal; ">httpd_accel_port 80 # 告诉web加速器，要监听的端口是80！</p><p style="line-height: normal; ">httpd_accel_with_proxy on # 这个很重要！因为配置 httpd_accel_host 之后， cache 的配置会自动被终止，必须要加上这个配置为 on 之后，才能提供 cache 的功能！<br />httpd_accel_uses_host_header on</p><p style="line-height: normal; ">2) 如果是squid 2.6,则只需要更改squid配置文件中的一个指令:</p><p style="line-height: normal; ">http_port 192.168.63.50:3128 transparent #192.168.63.50 就是squid服务器的地址</p><p style="line-height: normal; ">[root@test root]# squid -k reconfigure</p><h3>2. 配置 NAT 主机的 port map ：</h3><p style="line-height: normal; ">再来让我们到 NAT 主机上面看看先，因为需要将 80 这个 port 交给 Proxy 的 3128 来帮忙协助，所以你的防火墙 script 必须要加入这一段才行：　</p><p style="line-height: normal; ">#iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 --dport 80 -j REDIRECT --to-ports 3128</p><p style="line-height: normal; ">注意一下，那个 eth0 是『你的 NAT 对内的网卡』，至于 192.168.62.0/24 则是你的内部网域，请依照你的主机实际状态来配置！这样一来，您的 client 端完全不需要进行任何的配置，立刻就可以使用 Proxy 的好处啰</p><h3>3. 配置转发</h3><p style="line-height: normal; ">#echo 1 &gt; /proc/sys/net/ipv4/ip_forward</p><p style="line-height: normal; ">或：</p><p style="line-height: normal; ">#vi /etc/sysctl.conf</p><p style="line-height: normal; ">net_ipv4_forword=1</p><p style="line-height: normal; ">#vi /etc/sysconfig/network</p><p style="line-height: normal; ">FORWARD_IPV4=yes</p><p style="line-height: normal; ">#service network restart</p><h3>4. 配置客户端</h3><p style="line-height: normal; ">将另外一台计算机作为客户机进行测试，需要将网关、首选DNS服务器指向设置透明代理的服务器，清除客户端的浏览器代理设置。</p><h2><a name="reverseconf" style="text-decoration: none; color: rgb(81, 191, 224); "></a>四. 反向代理</h2><p style="line-height: normal; "><a href="http://www.linux.gov.cn/netweb/squid.htm#top" style="text-decoration: none; color: #4d4d4d; ">返回</a></p><p style="line-height: normal; ">代理服务器是使用非常普遍的一种将局域网主机联入互联网的一种方式，使用代理上网可以节约紧缺的IP地址资源，而且可以阻断外部主机对内部主机的访问，使内部网主机免受外部网主机的攻击。但是，如果想让互联网上的主机访问内部网的主机资源（例如：Web站点），又想使内部网主机免受外部网主机攻击，一般的代理服务是不能实现的，需要使用反向代理来实现。</p><p style="line-height: normal; ">什么是反向代理呢？其实，反向代理也就是通常所说的WEB服务器加速，它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器（即：WEB反向代理服务器）来降低实际的WEB服务器的负载。典型的结构如下图所示：</p><p style="line-height: normal; ">Web服务器加速（反向代理）是针对Web服务器提供加速功能的。它作为代理Cache，但并不针对浏览器用户，而针对一台或多台特定Web服务器（这也是反向代理名称的由来）。实施反向代理（如上图所示），只要将Reverse Proxy Cache设备放置在一台或多台Web服务器前端即可。当互联网用户访问某个WEB服务器时，通过DNS服务器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服务器的IP地址,这时Reverse Proxy Server设备充当Web服务器，浏览器可以与它连接，无需再直接与Web服务器相连。因此，大量Web服务工作量被卸载到反向代理服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患，而且能够很大程度上减轻web服务器的负担，提高访问速度。</p><p style="line-height: normal; ">1． Squid反向代理单个后台WEB服务器</p><p style="line-height: normal; "><span style="font-size: 9pt; "><img height="260" src="http://www.linux.gov.cn/netweb/images/reverse_typical.gif" width="230" border="0"  alt="" /></span></p><p style="line-height: normal; ">1) 如果WEB服务器和反向代理服务器是两台单独的机器（一般的反向代理应该有两块网卡分别连接了内外部网络）。那么，应该修改下面的内容来设置反向代理服务。</p><p style="line-height: normal; ">http_port 80 #squid监听的端口<br />httpd_accel_host 172.16.250.250 #内部WEB服务器的IP地址<br />httpd_accel_port 80 #WEB服务的端口号<br />httpd_accel_single_host on #转发没有缓冲的请求到一台单独的机器，squid被设置成仅对单一的web服务器作反向代理<br />httpd_accel_with_proxy on #如果希望squid既作反向代理服务器又作本地机器的上网代理，需要将此设为on，默认是off<br />httpd_accel_uses_host_header off　#在HTTP协议1.1中，HTTP请求包括一个主机头信息，指定URL的主机名或者主机的IP地址。这个选项可以用来完成多个后台WEB服务器的反向代理功能。</p><p style="line-height: normal; ">2) 如果WEB服务器和反向代理服务器是同一台机器。那么，应该设置WEB服务器的监听端口为非80端口（比如：81端口）。要修改的内容如下：</p><p style="line-height: normal; ">http_port 80 #squid监听的端口<br />httpd_accel_host localhost #内部WEB服务器的IP地址<br />httpd_accel_port 81 #WEB服务器的端口号<br />httpd_accel_single_host on<br />httpd_accel_with_proxy on&nbsp;<br />httpd_accel_uses_host_header off</p><p style="line-height: normal; ">2．Squid反向代理多个后台WEB服务器</p><p style="line-height: normal; ">我们可以用Squid反向代理多个后台WEB服务器。例如：我们可以配置squid同时反向代理www.abc.com, www.xyz.com, www.lmn.com三个后台WEB服务器，示意图如下：</p><p style="line-height: normal; "><span style="font-size: 9pt; "><img height="260" src="http://www.linux.gov.cn/netweb/images/reverse_mult.gif" width="230" border="0"  alt="" /></span></p><p style="line-height: normal; ">Squid的配置如下：</p><p style="line-height: normal; ">httpd_accel_host virtual<br />httpd_accel_port 80&nbsp;<br />httpd_accel_single_host off&nbsp;<br />httpd_accel_uses_host_header on</p><p style="line-height: normal; ">（注意:编译Squid时需激活Internal DNS选项）</p><p style="line-height: normal; ">然后设置设置反响代理需要的域名解析（Internet用户通过这里解析三个网站的域名）如下：</p><p style="line-height: normal; ">www.abc.com 202.102.240.74<br />www.xyz.com 202.102.240.74<br />www.lmn.com 202.102.240.74</p><p style="line-height: normal; ">使三个域名都指向反向代理服务器的IP地址202.102.240.74。</p><p style="line-height: normal; ">下面设置反向代理所需要的DNS入口信息（即设置内部DNS，仅仅是squid在内部使用，Internet用户不可见）。有两种方法可以设置内部DNS，使用内部DNS服务器来解析或者使用/etc/hosts文件来实现。</p><p style="line-height: normal; ">使用内部DNS服务器的资源记录如下：<br />www.abc.com IN A 192.168.62.2<br />www.xyz.com IN A 192.168.62.3<br />www.lmn.com IN A 192.168.62.4</p><p style="line-height: normal; ">如果使用/etc/hosts文件来实现内部DNS（编译时应使用disable internal dns选项）,编辑/etc/hosts文件添加如下条目：&nbsp;<br />192.168.62.2 www.abc.com<br />192.168.62.3 www.xyz.com<br />192.168.62.4 www.lmn.com</p><p style="line-height: normal; ">结论：通过本文中的论述和相关实例，可以看出，反向代理方式不单是一种WEB服务器加速器，而且使也一种对外提供Web发布时使用的有效的防火墙技术，使用它不但能节约紧缺的IP地址资源，加速WEB服务器的访问速度，而且能够保护WEB主机，因此能够适应多种应用场合。</p><h2><a name="troubleshoot" style="text-decoration: none; color: rgb(81, 191, 224); "></a>五. 故障处理</h2><p style="line-height: normal; "><a href="http://www.linux.gov.cn/netweb/squid.htm#top" style="text-decoration: none; color: #4d4d4d; ">返回</a></p><p style="line-height: normal; ">1. 如果在启动squid时出现下述信息:</p><p style="line-height: normal; ">% squid -Nd1<br /><br />FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname'</p><p style="line-height: normal; ">则需要在squid的配置文件中设置visible_hostname,如:</p><p style="line-height: normal; ">visible_hostname squid.packet-pushers.net</p><p style="line-height: normal; ">2. 如果在配置squid代理后,客户访问出现以下提示:</p><p style="line-height: normal; ">ERROR<br />The requested URL could not be retrieved</p><p style="line-height: normal; ">While trying to retrieve the URL: http://.../</p><p style="line-height: normal; ">可能需要在squid配置文件中加入以下指令:</p><p style="line-height: normal; ">always_direct allow all</p><h2><a name="example1" style="text-decoration: none; color: rgb(81, 191, 224); "></a>六. 一个范例</h2><p style="line-height: normal; "><a href="http://www.linux.gov.cn/netweb/squid.htm#top" style="text-decoration: none; color: #4d4d4d; ">返回</a></p><p style="line-height: normal; ">http_port 3128<br />icp_port 0</p><p style="line-height: normal; ">cache_mem 64 MB<br />cache_swap_low 80<br />cache_swap_high 85</p><p style="line-height: normal; ">maximum_object_size 32000 KB</p><p style="line-height: normal; ">cache_dir ufs /var/spool/squid 500 64 1024<br />cache_access_log /var/log/squid/access.log<br />cache_log /var/log/squid/cache.log<br />cache_store_log /var/log/squid/store.log</p><p style="line-height: normal; ">pid_filename /var/run/squid.pid</p><p style="line-height: normal; ">acl all src 0.0.0.0/0.0.0.0<br />acl alldst dst 0.0.0.0/0.0.0.0<br />acl manager proto cache_object<br />acl localhost src 127.0.0.1/255.255.255.255<br />acl to_localhost dst 127.0.0.0/8<br />acl 163 url_regex 163.com<br />acl sina url_regex sina.com.cn<br />acl myclient src 192.168.6.0/24</p><p style="line-height: normal; ">http_access allow 163<br />http_access allow sina<br />http_access deny !sina<br />http_access deny !163</p><p style="line-height: normal; ">cache_peer 192.168.1.8 parent 8080 7 no-query default</p><p style="line-height: normal; ">cache_effective_user squid<br />cache_effective_group squid<br />cache_mgr root@net03.org<br />coredump_dir /var/spool/squid</p><h2><a name="example2" style="text-decoration: none; color: rgb(81, 191, 224); "></a>七. 一个限制访问的范例</h2><p style="line-height: normal; "><a href="http://www.linux.gov.cn/netweb/squid.htm#top" style="text-decoration: none; color: #4d4d4d; ">返回</a></p><p style="line-height: normal; ">http_port 3128<br />icp_port 0<br />cache_mem 64 MB<br />cache_swap_low 80<br />cache_swap_high 85<br />maximum_object_size 32000 KB<br />cache_dir ufs /var/spool/squid 500 64 1024<br />cache_access_log /var/log/squid/access.log<br />cache_log /var/log/squid/cache.log<br />cache_store_log /var/log/squid/store.log<br />pid_filename /var/run/squid.pid<br />acl all src 0.0.0.0/0.0.0.0<br />acl manager proto cache_object<br />acl localhost src 127.0.0.1/255.255.255.255<br />acl to_localhost dst 127.0.0.0/8<br />acl SSL_ports port 443 563<br />acl Safe_ports port 80 # http<br />acl Safe_ports port 21 # ftp<br />acl Safe_ports port 443 563 # https, snews<br />acl Safe_ports port 70 # gopher<br />acl Safe_ports port 210 # wais<br />acl Safe_ports port 1025-65535 # unregistered ports<br />acl Safe_ports port 280 # http-mgmt<br />acl Safe_ports port 488 # gss-http<br />acl Safe_ports port 591 # filemaker<br />acl Safe_ports port 777 # multiling http<br />acl CONNECT method CONNECT<br />acl myclient src 192.168.6.0/24<br />acl 163 url_regex 163.com<br />acl sina url_regex sina.com.cn<br /># Only allow cachemgr access from localhost<br />http_access allow manager localhost<br />http_access deny manager<br /># Deny requests to unknown ports<br />http_access deny !Safe_ports<br /># Deny CONNECT to other than SSL ports<br />http_access deny CONNECT !SSL_ports</p><p style="line-height: normal; ">cache_peer 192.168.1.8 parent 8080 7 no-query default</p><p style="line-height: normal; ">acl ip_acl src 192.168.6.0/24<br />acl time_acl time M T W H F A S 9:00-19:00<br />http_access allow ip_acl time_acl</p><p style="line-height: normal; ">cache_peer_access 192.168.1.8 allow 163<br />cache_peer_access 192.168.1.8 deny !163<br />cache_peer_access 192.168.1.8 allow sina<br />cache_peer_access 192.168.1.8 deny !sina</p><p style="line-height: normal; ">cache_effective_user squid<br />cache_effective_group squid<br />cache_mgr root@net03.org<br />coredump_dir /var/spool/squid</p><p style="line-height: normal; ">#acl pl800_arp arp 00:08:c7:9f:34:41<br />#http_access allow pl800_arp</p></div></td></tr></tbody></table><img src ="http://www.cppblog.com/larryliuqing/aggbug/163474.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/larryliuqing/" target="_blank">刘远清</a> 2012-01-03 11:54 <a href="http://www.cppblog.com/larryliuqing/archive/2012/01/03/163474.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]一个本科女生的毕业求职历程</title><link>http://www.cppblog.com/larryliuqing/archive/2008/03/13/44342.html</link><dc:creator>刘远清</dc:creator><author>刘远清</author><pubDate>Thu, 13 Mar 2008 02:37:00 GMT</pubDate><guid>http://www.cppblog.com/larryliuqing/archive/2008/03/13/44342.html</guid><wfw:comment>http://www.cppblog.com/larryliuqing/comments/44342.html</wfw:comment><comments>http://www.cppblog.com/larryliuqing/archive/2008/03/13/44342.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/larryliuqing/comments/commentRss/44342.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/larryliuqing/services/trackbacks/44342.html</trackback:ping><description><![CDATA[<p>我是2005年毕业的，偶尔来这里看看，不常灌水。<br>今天来随意写下一些，如果对各位有任何的帮助，是我衷心所愿。</p>
<p>1。考研与就业：<br>2004年的暑假，我和大多数人一样，艰难的抉择，究竟是考研还是找工作。<br>凭良心说，如果我选择考研并不是因为我真得很想读书很想深造，而是我害怕接触社会，<br>想再窝在学校几年。<br>所以，虽然我非常不喜欢我这个专业，我还是决定做个鸵鸟，情愿去干我唯一最擅长的事情-读书。<br>现在想起来，当时太不了解自己。呵呵。<br>我们寝室4个女生，两个决定考研并且每天早出晚归，整天也见不到人。<br>我决定效仿她们，每天大包小包的拎着啃书。<br>不喜欢终究是不喜欢，2个月以后，我在镜子面前看到一个憔悴的自己，<br>想起我这些日子以来的生活状态，究竟是为了什么？我不是一个聪明的小孩，<br>我没有本领过目不忘，我又没有自己想象的那么勤奋，我怕这怕那，天哪，忽然觉得，自己一无是处。。。</p>
<p>2004年9月，我很没志气放弃了考研。<br>两个字，怕苦。</p>
<p>2004年9月，我在51job上填了我完整的信息，等待工作的降临。<br>2004年9月中旬，我的第一份实习经验开始了。。。</p>
<p>2004年9月中旬，一个很甜美的声音从我的手机传来，约我在徐家汇美罗城面试。<br>我无比激动地。。真的是我比激动地。。。去借了正装，提早了半个多小时到。<br>到了以后我才发现，是一家人寿保险公司。<br>那个面试我的经理居然是同济毕业的，<br>有些人就是有这种魅力，寥寥几句话，就让周围的人围着转。<br>像我这样没见过世面的人，轻易的，魂就被勾走了。<br>在我走出那里的时候，我已经答应要留下来做做看了。<br>我没有考证，所以不可以接单，我就是在里面接触他们是怎样工作的。<br>接下来的1个多月里，我亲眼看到一群斗志高昂的人在没有任何签单以后是如何被经理骂的狗血林头。<br>我也亲眼看到，上海滩上一些有钱人的嘴脸。<br>说实在的，以前我是鄙视做保险的人的，我认为他们素质低下只会粘人。<br>现在，我对他们多了一份理解。<br>并且，他们之中确实有就算是放到任何行业也光彩夺目的精英。</p>
<p>也许是看出了我不是这块料，一个月以后，我被委婉的驱逐了。<br>呵呵。我是高兴的走的，走了以后还在徐家汇逛了一圈。<br>第一次社会经历，让我很真实的触摸到了钱和人的关系。</p>
<p>2004年10月中旬，我迎来了第二次实习，<br>我的一个同学的姐姐，在某知名相机公司做广告的，很急要找人来帮忙处理一个他们举办的赛事。<br>一行找了好几个想我这般年纪的小孩，做的工作无非是更新数据库之类的。<br>我当时是抱着希望，最好做着做着就能留下来的。<br>结果两个礼拜以后，赛事结束，我被驱逐了。。。<br>我拿到了600多元钱，因为我是她弟弟的同学，她算是特别有待我，给我开了一份实习证明。<br>上面写得我是如何如何得好，呵呵，我当时心想，我有着么好？这么好你怎么不留我？！</p>
<p>2004年的10月下旬，<br>我迎来了最好一次实习经历，这次实习决定了我的工作。</p>
<p>大家都有这个经验，网申一般没用。<br>我在51job上申请过n多网申，统统石沉大海。<br>有礼貌一点地会给我回一封信，说我的资料已经到了数据库，他们会慢慢核对。。。<br>所以我真得确实没有印象，我曾经投过这一家公司。</p>
<p>某天早晨当电话通的那头传来，她是某某名气很大的公司的HR的时候，我确实是呆了。<br>因为我根本不记得我投过什么职位。<br>我一路支支吾吾的，居然她也没说什么特别的，最后报了一个很远很远的地方的地址，叫我明天去面试。<br>我挂了电话以后想，这种公司我是肯定没戏的，那就去一次算是锻炼一下我的抗打击能力。<br>第2天面试，没有程序考卷，没有英语面试，什么都没有。两个经理坐在会议室里面，一个在打电话很忙的样子，一个笑容可掬。<br>那个笑容可掬的就问了一句话，你在XX公司（就是那个相机公司）实习过对么？<br>我点点头<br>OK, 就是你了，我们这里时薪10元钱，三个月，有问题么？<br>没问题。<br>好，明天来上班。<br>走出去的时候我彻底晕。<br>接下去的日子我不太记得是怎么过的，就是每天很忙，我就是一个小秘书，什么打杂的都干。</p>
<p>我一直都认为，大公司的门槛很高很高。<br>牛人中的牛人才有机会进去。<br>我也一直认为我不是牛人，所以我莫名的对里面所有的人产生敬仰之心。<br>做事异常小心。<br>就是复印个文件，我也要核对n次才敢拿去给他们看。<br>如果被他们抓到了什么错，我会难过半天。。。<br>我心里想着，我是绝不奢望能留下来。<br>不过这里的经历对将来找工作会有帮助的，说出去也好听。呵呵</p>
<p>我身边的人变化的也很多。<br>感觉有很多人一夕之间长大，<br>22岁之前，我一直觉得学校就是社会，除了食堂的大妈偶尔会摆脸色给我看，没有人会轻视我。<br>我是家里受重视的小孩，一路顺顺当当，<br>一直坚信读书是唯一的路。<br>我到了22岁才明白过来，我真得除了读书，什么都不会。<br>该说什么呢。。。<br>2004年冬天，他们到同济来做宣讲，其实我心里明白，他们根本就没有要招这么多人。<br>可是即便如此，场面还是摆得很大，一幅要招几百人的腔调。<br>我冷眼旁观着，心里想，何必呢，知道你钱多，别来玩弄我们这些可怜人啊。</p>
<p>居然有人叫我，我在公司里不经常能见得到的高级经理。<br>他冲我笑了笑，你要应聘不需要到这里来啊，明天到我办公室来好了。<br>我愣了半天，头一次晚上很没面子的失眠了。<br>原来，我也并不是那么差？！<br>第2天出了办公室以后，我忽然感慨万千，<br>我想在这里说，<br>你的努力，千万不要担心没有人看到，<br>如果让你去做很小很小的事情，千万不要认为不屑做，大材小用，<br>你的价值，点点滴滴的在每一个细微的动作里面体现出来。</p>
<p>2004年12月底，我签好了三方协议。</p>
<p>2004年1月中旬，我面前堆了一大堆的应届生考卷，需要我对着答案批改。<br>我亲眼看到我的同事们是怎样对付这些考卷的-只看答案，还看一下字迹和学校，然后了事。<br>这个世界就是这样，并不是你不优秀，往往差那么一点点，你就和别人走了不一样的路。<br>所以各位如果谁笔试被刷下来的，千万不要气馁。<br>关于笔试的问题我发过帖子的，这里就不多说了。<br>洋洋洒洒才发现写了很多，我没有什么文学功底，好像没什么中心思想。<br>各位有什么问题可以问我。</p>
<p>我想说，很多失败并不是因为你不够好，有的时候就是差那么一点点。但是你怎么知道接下来埃到你的选择不会比你失去的更好？<br>所以，请平心静气的对待埃到你的任何一份工作，<br>你的努力一定会有回报，也许就一点也许早一点。<br>2。工作<br>2005年7月，正式加入，<br>我被分到了一个项目中去，我对项目这个名词没什么概念，貌似就是一份大一点的作业吧<br>我的leader是个严谨的中年人，<br>我见到隔壁桌的同事开着MSN和QQ, 于是很没志气也在自个儿的机器上开了。。<br>结果，被骂了。<br>在leader分配完任务以后，问我有没有问题，我很诚实的回答，时间不够。<br>结果，又被骂了。<br>当时觉得很委屈，为什么别人开msn就没事，我就要挨骂？<br>为什么我说实话也不行？也要挨骂？<br>简直莫名其妙嘛！<br>第2天早上来打开电脑，outlook里面有一封很长很长的信，是leader写给我的。<br>他罗列了一长串我身上的毛病，比如不应该工作场合用聊天工具，<br>不应该在办公室吃早饭，<br>分配的任务应该尽力去完成，确实有困难再提出，不应该一开始就推托，<br>等等等等。<br>他说，我是刚毕业的人，是一张白纸，在一开始就不应该有污渍，这样将来才会越走越好。希望我不要怪他。</p>
<p>那天，我把自己关进厕所大哭，<br>我一直认为我是个到哪里都乖巧的人，真的，从来也没有人会挑剔我这么错。<br>今天一个职位很高的人，一个和我接触不到几天的人就一口气说出了我身上这么多弱点，并写这样一封长长的信来告诫我，简直让我受宠若惊。<br>一个人的优秀，不只体现在这个人本身，当他有本领让身边的人惭愧，并且因此而努力的时候，才不愧为精英两字。<br>自那以后，我对工作有了另一番见解，也慢慢开始会留一个心眼，观察身边的人是如何展现Professional的一面。</p>
<p>小节，是体现一个人各方面的表现。<br>千万不要忽视他。</p>
<p>2005年8月，我第一次加班到深夜<br>因为带着隐形眼镜，晚上不停的流泪水，时间太久，几乎带了一天了。<br>加班是件新奇的事情，以前听人说四大有多么多么恐怖，加班有多么多么厉害。<br>其实，哪里不加班呢？<br>每个人做事情有他自己的底线，有些人觉得做到80分不够，100分达不到的话至少要95分。<br>于是，加班成了自愿的事情，其实没有老板在你背后指着说，你，给我留下来加班！<br>真的没有，但是就是到10点多，仍然有很多人迟迟没有回去。<br>上海的生活压力大，不努力就不会加工资不会升值，你想要混日子也可以，但是看到别人的幸福生活，难道不会懊恼想当年我再努力一点点再一点点，今天就会比他更出色了？<br>所以这里的人，加班很正常。他们的背后有妻有子有沉重的房贷，这一切不见得为了老板，只是为了自己，这个理由已经很充分了。<br>被剥削？奴性？不，这里根本没有愤青，愤青在真实地面对生存的压力之后，我想也会变平和的。</p>
<p>你的底线是多少，做到多少分？<br>我做不到100分，但是我愿意尽力做到100分。</p>
<p>2005年8月底，我拿到生平第一份工资，<br>我咧着嘴乐了半天，真的，看到卡上多了这么多钱，无比的兴奋。<br>于是，第一个月的钱，我全部捐献给了各种商人。<br>第一次感觉，有钱真好！<br>做学生的时候看到稍微贵一点点的东西，是绝对不敢染指的。<br>现在很豪气的说，买！<br>我很没气质的想，工作为了啥？不就是为了买起东西来豪气一点么？<br>对，就是这样。<br>2005年9月，第一次觉得自己是如此幸运。<br>9月的时候，进来了一个复旦的实习生，据说编程很强，还有口译证书，<br>总之就是很厉害。<br>进来做什么？打杂的。。。<br>由于年龄相仿，我跟她很投缘，于是我鼓励她要好好干，机会无处不在。<br>她真的很厉害，就是那种跟你说几句话，你就能从她散发的气息中感觉出这是一个聪慧的人。<br>2个月以后她拜托我去询问leader的意见，看她是否有机会留下来。<br>leader很简单的说了一句，不好意思，今年不招人。<br>我身边的同事偷偷拉着我说，像这样的公司，招不招人招多少人，都是有计划有名额的。<br>他们并不在乎你有多优秀，多出色，对于管理者来说，他不需要天才，他只需要一些肯干，踏实的人。当然，你最好是这批应征者中最棒的，但是为了最棒的你而增加名额是不可能的。<br>实习生哪里都有，到处有人排队抢着做。他没有必要招成正式员工。</p>
<p>很残酷，当你觉得你的才华被这么多迂腐的条条框框给框住的时候，确实令人抓狂！<br>我不禁问，可是我当时就是做实习生然后转正的阿？<br>因为当时正好有人离职，人手不够。</p>
<p>呵呵。不知道该说什么好，当自己意识到幸运多过于自个儿的能力以后，<br>不知道该哭还是笑。<br>复旦的那个小女生坚持着没有走，到了第2年春天终于是熬不住了，走了。<br>之后去了一家咨询公司，但愿她的路一切都好！</p>
<p>一个萝卜一个坑，如果你为自个儿糟糕的运气而懊恼的时候，<br>一定要对自己说，说不定，下一个坑会更好。</p>
<p>2006年3月，<br>我一直觉得自己是个兵，我说话不大声，没有威严<br>我一定不是当领导的料。<br>所以当我被指定为leader的时候，挺激动地。虽然我的组员是外驻，呵呵，不是外驻也轮不到我管。<br>我这边的外驻都是我那年毕业的，大多来自于水产，工技大，上大等等。<br>偶尔会看到几个复旦交大同济的。<br>挑选外驻的时候是我一个人去的，印象比较深的是其中两个女生，<br>第一个是华师大的，说话特溜。感觉很精明的样子。<br>当我问她还有什么问题的时候，她很直接的说，<br>你们这里的人工资待遇怎么样啊，<br>你们是不是配笔记本的阿？什么牌子的阿？<br>你们通常加不加班啊？加班给不给加班费阿。。。<br>我无语。。<br>第二个是水产的，看说话的样子，不精明也不很聪明。<br>可能是受前一个人的影响，我一上来就说，我们这里可能会加班。<br>她连忙一个劲儿的点头，没问题的，我经常加班的。<br>当她准备交卷的时候，又前后扫了一遍，然后递给我<br>卷子上字迹工整，在答不出的题目上写了几个字，抱歉，真的不会。<br>短短的几分钟，我便决定就是她了。</p>
<p>我从来都是被面试的人，当我今天坐在面试者的角度看待被面试者的时候，<br>才发现很多东西都是我们面试的时候忽略的，<br>比如你的眼神，<br>你的谈吐，<br>你该关注的问题，<br>你流露出来的你身上的特质。<br>对一个初次见面的人来说，别人没有时间来了解你这个人有多么讲哥们义气，有多么见识广博，有多么善解人意。<br>这是门学问，我们共勉。<br>2006年4月，<br>项目中来了一个新外驻，同济的，<br>在这么多外驻中，她的卷子得分最高，面试的时候也表现最好。<br>我心想，那是，这是咱们学校的呢。呵呵。</p>
<p>接下来的日子里，他的各方面表现是最好的，<br>我给他打了最高分。<br>有一次我偷偷问他，为什么会进那个公司？<br>他很腼腆的说，呵呵，大学四年天天打游戏，醉生梦死。<br>到了大肆了才发现自己什么证书都没有，什么都不会，极点又低。<br>但是心高气傲总觉得自己有才华此处不留人自有留人处。<br>结果到了6月份，实在是没有办法了，随便找了一家公司，就是现在的公司。<br>工资1000来元钱，现在涨了一点点了。<br>现在还是打游戏，不过没有以前那么疯了，毕竟还是要努力啊。<br>最近正在张罗着跳槽，希望会有好消息。</p>
<p>2个月以后，他在msn上告诉我，他进了ebay<br>我很高兴，走了一小段弯路以后，金子终于还是发光了。<br>所以你是金子，就一定会发光，这是我坚信的。</p>
<p>说到游戏，我想这里的男生们一定很委屈，<br>你们女生就可以沉迷于化妆品和衣服的世界里，我们打个游戏找谁惹谁了？<br>确实是，游戏没怎么样。正常娱乐嘛。<br>但是你真的只是把它当作正常娱乐嘛？<br>如果你一天从挣开眼睛到闭上眼睛，都在打游戏，你还觉得这是正常娱乐嘛？</p>
<p>3。激~一年多情？<br>我是个本地小孩，从小，老爸老妈就教导我，读书要考最高分，这样将来才能有出息。<br>我的老爸老妈是那种天塌下来你都别管，只要给我好好读书就行了的人。<br>我不才，最高分是不可能的，但是倒也不很差就对了。<br>高考填志愿的时候，我从来没想过要走出上海，现在想起来，上海的小孩被保护得太好，以至于觉得自己头顶上的这片天是最蓝的。<br>选专业的时候我彻底晕了，说实在的我根本不知道那些老什子专业出来是干什么的。没有人告诉我，老师也不懂，他就只知道卷子卷子考分考分。</p>
<p>当我真正进入大学知道我接下来的四年将要学习什么的时候，真是很郁闷。<br>但是当我知道，我的三个室友都是以绝对的高分考进同济并且被调剂进这个专业的时候，我把我所有的不满都小心翼翼的收藏了起来。<br>外地学生的辛苦我是有耳闻的，但是我真的没有想到竞争这么残酷。<br>我的室友中，有一个高考的时候外语卷是满分的。<br>她们每个人在考试上的建树都是厉害的角色，但是在面对专业的选择时，都跟我一样彷徨无知。最后白白的扼杀了潜藏在身上的特质。</p>
<p>我们这一行4个女生，<br>最痛苦的事情并不是在于我们没有选到心仪的专业。<br>而是我们根本不知道自己喜欢什么。<br>并且，直到今天，我对自己的喜好也许有了一些轮廓，但却还是抓不住。</p>
<p>不知道各位有没有这样的感觉，就是对什么都没有什么特别的兴趣，<br>但是如果老师或者谁谁谁让你做什么，也还是乖乖的去做，做的质量也不错。仅仅这样而已。<br>我的人生中似乎从未有过一次，因为内心而发的激~一年多情碰撞而努力完成一件得意的事情。<br>不知道该说什么，22岁之前，我就是这样一个没有个性的人，不温不火。</p>
<p>现在我深深为此自卑，随着年龄的增长，深深感觉到没有激~一年多情的努力是绝对没有光彩的。<br>也许你还不赖，但绝不出类拔萃。</p>
<p>我的公司里年轻的孩子很多，让我切实的感受到年轻的活力，<br>我不能表达，当我见到一个大男生coding的时候居然眉飞色舞着的样子。<br>我一直认为coding是人世间最悲惨的事情，呵呵。<br>在看到一张张精神饱满的年轻的脸孔，长指在键盘上敲打怡然自乐的样子。我真地感到很惭愧。<br>我偶尔也会问同事，是装的吧？写代码很开心么？<br>他却不以为意：并不喜欢，不喜欢的人多了去了，但还是不得不做。因为你不做有的是人做。既然躲不了，那就坦然一点，去享受它。<br>很有哲理吧？我不敢相信这是一个像我这般年纪的人说出的话。呵呵。<br>也许从那时开始，我开始后悔了。<br>当初是怀着多么沉重的郁闷读着这个专业过完我的大学时光的，现在想想我的郁闷全浪费了。</p>
<p>我偶尔会看到你们之中很多人，跟我一样在郁闷着自个儿的专业。<br>我觉得大多数人都郁闷，呵呵。<br>但是既然已经这样了，那就把郁闷转化成别的什么吧。<br>郁闷是会变成习惯的，<br>既然一些事情不能改变，那就去享受它。<br>享受的过程就在酝酿着激~一年多情，但你拥有激~一年多情的时候，刚好你还拥有一个不错的头脑。那么你一定会成功的。<br>4。工资<br>呵呵~~~工资是个敏感话题。<br>我们这些小孩子理所当然的把工资当作为衡量自己身价的尺码。<br>大四那年，每当有人签了以后，大家伙儿的问话都浓缩成了两句话：<br>哪？多少钱？<br>是啊，钱很重要。<br>当我偶尔去一下百盛，看到n百元钱的衣服仅仅是因为打了5折以后，n多人簇拥而上疯抢的情景，真是不由得感叹，钱阿，都是钱惹得祸。</p>
<p>2004年找工作的时候，我的心里想，给我2000元就可以了，<br>住的地方嘛反正我老爸老妈暂时还没有赶我出去的打算，<br>吃嘛，我一个人吃得也不多，<br>就是买买衣服化妆品就行了，反正我也不想存钱买房子，事实上我认为不靠父母资助，现在让一个年轻男生买房子娶老婆养家这是不可能的！<br>但是人既然生活在社会里，真的是不由得自己不去攀比和妒嫉。<br>我一直认为我是一个心平气和的人，<br>当我在听到谁谁谁签了个n高的价之后，还是会身不由己的妒嫉。<br>当然我也只是自个儿生生闷气，呵呵。</p>
<p>那时候我身边有很多人，在和我聊天的时候都会有类似的话题，<br>你说那个3200的好，还是2800的好？<br>呵呵，工资成了公司的代名词了。<br>我不能免俗，当时如果是让我选，我一定是要钱多的了，说出去好听，<br>我毕业工资3000多呢。</p>
<p>现在，我遇到了很多人，很多已经成家立业，小孩都满街跑了。<br>加班的时候碰到他们心情好，会聊上几句，<br>他们常常很感慨地说，他们当年毕业的时候，大学生是多么的值钱。<br>我说，现在也值钱阿，只是钱增值了而已。<br>-XX，钱是赚不完的，想要赚钱就不该做技术，做技术不会比做销售赚钱。也许你家门口卖牛肉面的阿姨也比你有钱。既然做技术又不想转行卖牛肉面或者其他什么的话，就不要在乎多1百元还是少1百元钱，其实没有区别。多1000元钱少1000元钱也没什么区别。但是4位数和5位数，那就有区别了。这是一个台阶，一个初级技术员和中级技术员的差别，对读书人来说，这是面子问题，能力问题。想要跨上这个台阶，来日方长。</p>
<p>不知道我转述的这一番话，对各位有没有启发？<br>我想说，我们大家都在乎钱，呵呵，这个是没办法的。<br>但其实我们这些理工科刚毕业的都是初级技术员，<br>少一点多一点只关乎你一个月多吃几顿大餐，多买几件衣服。<br>就你现在的一点钱买不起房子，买不起车，那还计较什么呢？<br>如果你想早一些突破下一个零的话，就不要太介意眼前的得失。<br>不要为了谁谁谁比你多了几百元钱而耿耿于怀，<br>咱们要竞争的，是几年以后！</p>
<p>5。研究生<br>对研究生们，我怀着一颗敬仰的心。<br>这是一条我放弃的路，对坚持到底并取得成功的人，我很钦佩。</p>
<p>我常常看到这样的问题，<br>要不要考研究生？研究生值钱还是本科生值钱？<br>正方观点自然是要考，一定要考！这年头本科生都不值钱了，没有个研究生学位怎么镇的住？<br>反方观点是没必要，反正是骡子是马拿出来遛遛，咱有的是能力不需要靠文凭锦上添花。</p>
<p>我的见识并不多，<br>以我有限的见识来说说看我个人的想法。<br>我始终认为，<br>只有人跟人的差别，没有学位与学位之间的差别。<br>如果你是一个牛人，你本科毕业找工作会很出色；你读完研究生找工作会更出色。<br>如果你不是牛人但是是个勤劳的人，如果你不想读直接去就业的话，前景也会不错的；如果你想读研究生把自己造就成牛人的话，你一定会比本科更出色。<br>如果你不是牛人但是是个懒惰的人，那我觉得你读了跟没读没有什么区别。你还是不要浪费你的时间了吧。<br>很多人都会把找不到工作归咎为，<br>他们只要研究生呀，他们鄙视我们本科生。<br>我倒不觉得如此，你是不是该考虑一下自己身上是不是出了什么问题？<br>作为一个管理者，除非真的是只有专业的知识要应用非得要研究生的话，<br>对他来说，学历低一些反而降低成本。<br>至于你所认为的硕士毕业比本科毕业多的那么一些钱，<br>我刚才说过了，4位数和5位数是有区别的，除此以外，<br>我们都是初级的，没有什么差别。</p>
<p>想读硕士的，我是建议各位读的，做技术嘛，多读点总是好的。<br>但是希望各位不要太过耿耿于怀你的学历，<br>不要把自己短暂的不幸全部归咎于你的学历。<br>你的人生要走怎样的取决于你这个人。</p>
<p>6。心胸<br>都说学生单纯，这是真的，<br>学生时代的攀比，嫉妒，甚至是吵架都是单纯的<br>（当然，除了云南大学那个杀人的。。。）<br>就像我妒忌隔壁寝室的哪个人工资比我高，我也就活动活动心眼，要不怎样？拿把刀把他砍了工作就归我了？怎么可能。。。</p>
<p>学生时代的谈话也是单纯的，问什么答什么，<br>顶多不乐意告诉你了就骗骗你，顶多这样。<br>我们的道德底线都差不多，以至于我也曾经一度认为社会上的人道德底线都这样，如果你现在还和我当初那么想的话，那就请你快醒醒了呵呵</p>
<p>林子大了，各色各样的人也就多了，<br>很多人的确用着不太正大光明的手段取得了比你辉煌得成就，<br>这个时候你该怎么办？</p>
<p>走出校门，你的前途不全部由你的实力决定。<br>校园内，老师可能不太认识你，他也不需要和你打交道，<br>他只需要知道你这门课及格还是不及格。<br>老师和学生之间，学生和学生之间是没有或者很少有利益冲突的，<br>缺少利益冲突的关系是纯净的，<br>让你想说什么就说什么。</p>
<p>但是校园外，走进公司，是不同的年龄阶层，<br>无论是你的上司还是你的同事，<br>都是直接和你有利益冲突的，<br>利益是什么？就是钱啊，大家都想要买车买房子啊，<br>一牵涉到这些，人就变得尖锐起来了，<br>这是人之常情，你，我都一样。</p>
<p>也许你认为某些人工作方面并不如你，<br>什么都没有你好，<br>可是他就是八面玲珑，就是有所谓的手段，最后跑在你前面。<br>这个时候，你身上尖锐得东西会全部都冒了出来，<br>这些刺扎伤了你自己，也扎伤你身边得人。<br>你会开始哀怨，<br>我啊，壮志未酬啊，<br>生不逢时啊，没有伯乐来相中我啊，<br>你们这些人都瞎了眼啊，没看到我这个奇才啊。<br>就着样，慢慢变成怨妇怨夫。。。。<br>渐渐得，你对任何事情都会缺乏积极性，<br>心里想着，<br>反正谁谁谁有后台，他一定会容易就怎么样了，<br>反正是论不到我得，<br>反正。。。。</p>
<p>确实，很多人含着金汤匙出身，<br>很多人很虚伪，为达目的不择手段，<br>那怎么办？<br>我就是生下莱没有这么多后台，<br>我就是没有这么虚伪，<br>但是谁知到不会三十年河东三十年河西，风水轮流转？<br>那我跟他们比什么？有什么好比得。<br>这个时候，一定要心平气和，一定要告诉自己，<br>他们已经没有被你列做竞争对象了，<br>他们得行为并不会影响你，<br>并且他们身上一定还有你需要学习得东西，<br>即使他实在身无长处，你就学学他得穿着，谈吐也是好得。<br>把自己尖锐得心沉静下来，就会豁然开朗，<br>心情愉快自然会做事情得心应手，<br>这个时候，机会就不远了，心胸宽广得人是受人欢迎和赏识得！</p>
<p>有人提到简历的问题，那我在这里说说我看我的领导是怎么看简历的。</p>
<p>我经常能见到的领导有三个，<br>对待简历的方式有一点是不约而同地，<br>他们都不喜欢很长很长的简历。<br>我曾经见过最长的简历中英文加起来居然有12页。。真是让我感觉象论文。<br>通常他们看到这种简历，立马out&#8230;<br>一般中英文3页，是他们比较能接受的。</p>
<p>其中有一个领导比较在意学校，<br>常常也不看，就问，什么学校的，<br>在我的唠叨下，他现在认为交大和同济是没有区别的^^<br>本来嘛，本来就没有区别，对吧！<br>除了学校之外，比较在意你的实习经历，<br>如果是研究生的话比较关注你曾经跟过的项目，<br>所以如果你有跟过比较重要的项目，一定要写得详细。<br>如果你的本科生的话比较在意你曾经实习过哪些东西，<br>如果你这方面是一张白纸的话，那就要去补补了。</p>
<p>他们三位都不看基点<br>通常的做法就是面试前做卷子，基点这个东西在他们觉得。。。比较垃圾<br>因为基点是可以花钱修的很漂亮的，，这个他们知道的。。</p>
<p>你在你的简历上要写上你曾经得的奖学金，<br>你的实习经历，<br>这两块是比较重要的！<br>至于你的个性如何，对自己评价。。。这个。。就少一点吧。<br>我曾经见过一个，写对自己的评价写了一张纸，跟写作文一样，晕阿。。。<br>呵呵，今天又一个人的话把我逗乐了<br>现在找工作弄得跟追女生一样，<br>好吧，我不得不承认，还真是形容的很贴切。<br>那你觉得女生好追么？<br>是不是觉得现在的女生越来越不好追了吧？！<br>几百年前，女生哪用追得？反正年龄到了就一颗青菜配一个萝卜。<br>几十年前，一个蛋糕，一部永久牌自行车就可以哄一个女孩子坐在你的车座后面裙角飞扬了。<br>现在。。。我听到越来越多的人抱怨，现在的女生，怎一个唉字了得。。。唉。。。</p>
<p>呵呵，像不像大学生找工作？<br>像当年可是怎么着也不愁找不到工作的，<br>现在是挤破了脑袋争取同一份工作。<br>好吧，那我们就用谈恋爱的方法来找工作吧，<br>有很多人恋爱失败败就败在怕丢脸，<br>为啥呢？因为怕丢脸而不敢表达，怕被那个人笑说，哦，原来你喜欢我啊。。。<br>其实有什么关系呢？你只管表达自己的，管他呢，<br>她要是鄙视你，那就别理她，反正这件事情只有她知道你知道；<br>她要是鄙视你，还告诉别人一起来嘲笑你，那这个人素质有够差的，你该买鞭炮庆祝你没有得到她；<br>她要是因此而接受了你，那可是苦尽甘来阿，你就偷偷找个地方美上好几天吧；<br>她要是既不说接受你也不说拒绝你，跟你玩暧昧，这你就。。掂量掂量吧，我个人的意见是，咱不缺这一个！呵呵。</p>
<p>拿出你表白时的勇气吧，不要怕，呵呵~~~</p>
<p>还是说说找工作把<br>我们大家都一样，找工作的时候，都会有眼看着身边的人一个一个落实了以后的羡慕，都会仿佛从脚底升腾起一股烦躁不安的情绪。</p>
<p>有好些人跟我说，我啊，没什么个性，要是群面，一定轮不到我说；<br>或者，我啊，没有谁谁谁性格那么活泼，跟别人相处得那么融恰；</p>
<p>很多人都会这样意识无意识的对自己有心理暗示<br>这样的情绪我是带着很多年了，深有感触。</p>
<p>我也是一个不很活泼的人，就是那种把我丢在人群里面，没有人会注意到我的那种；<br>如果很多人聚在一起，我常常是聆听的那个人，我不善于也不打算在许多人面前侃侃而谈；<br>我也会偷偷的想，像我这么没个性，会有公司要我么？</p>
<p>今天我以我这些日子以来的经历转告各位，<br>真的真的不要把自己的想法套到别人的身上，<br>以自己以为的东西来庸人自扰，是最傻最傻的。</p>
<p>别人怎么认为你，怎么想你，太微妙了，又岂是你能揣测的完的，<br>也许你觉得自己这里不好那里不好，但看在别人眼里却是优点，<br>我是一个闷葫芦，不过，据我的同事说，交给我办事很放心，因为我常常闷声不响的，就把事情给做完了。。。<br>呵呵。</p>
<p>不要自己给自己心理暗示说，我这个这个是肯定不行的，<br>你就试一下嘛，实在不行就告诉自己这方面自己不是这块料嘛<br>也不要给自己暗示说，HR一定不喜欢我这个样子的，你看，我没有那个人能说会道，<br>你怎么知道他不喜欢？你又不是他？那你瞎猜什么？还烦恼什么？<br>就做你自己嘛，他不喜欢就不喜欢嘛，你又不跟他过一辈子，总有别人喜欢你这样的，对吧？！</p>
<p>我有好些个大学里认识的学长，研究生快要毕业了呢，<br>有些问我，面试的时候该注意些什么？<br>这个。。我之前有讲过面试的问题，<br>我自己的面试别人的时候，常常是他说话的时候，我喜欢观察他说话时的眼神。<br>有些人说话喜欢看着地板，<br>有些人说话眼神闪烁，也许是习惯问题，总觉得有意无意的偷偷看你几眼的感觉，<br>有些人边说话喜欢边玩东西，或者衣角，或者头发，<br>有些人说话会下意识的抖脚，<br>如果你有以上的问题，你一定要练习，纠正。</p>
<p>说话时眼光还是自然向前为好，但也不用直盯盯的看着对方的眼睛，这样显得很凶。。。<br>最好不要有多余的小动作，这样会显得你似乎很心虚；<br>说话时可以慢一点但一定要逻辑清晰</p>
<p>7.投机</p>
<p>有好些人问我，说，我现在知道错了，我大学四年没有好好努力，<br>但是，请相信我，我是很强的，我绝对不比别人差，我只不过是没有那些老什子的证书而已；现在看着很多人去修改成绩单，做假证书，我也想做，否则我便没有了机会呀。。我是不是该做呢？</p>
<p>问我这些话的人还不在少数，<br>我该说，当你问出这句话的时候可见你早就已了然这是错的，你只是需要有一个人最好肯定一下你的意志，说，这没什么大不了的，大家都这样。然后你便会去做了，是么？</p>
<p>我想我可没有这么大的魅力对你传教中国千百年以来的诚信美德，<br>毕竟的确有太多太多的人用着不诚信的手段，让我也深陷于无奈，嫉妒，甚至暴躁的情绪中。<br>我只想说，<br>当你尝到投机取巧而不劳而获的快感后，你不再会去想回头尝尝努力的滋味了。<br>当你做了几个伪证书以后，你还会去考真证书么？<br>我还想说，我至今所见到的精英并不多，以我有限的见地来说，他们无一例外都有一个共同点，就是踏实。</p>
<p>嗯。。。有点像说教，其实我自己也并不能做得很好，<br>我一直克制着克制着，希望自己不听不看不想身边发生的那些不劳而获的事情，那就像大麻，我觉得我一旦碰触了，便不由自主了。。。<br>到底该怎么做，我想每个人心里都有一张普吧。</p>
<p>每当我被嫉妒冲昏了头的时候，我只能这样安慰自己，路遥知马力。<br>你也可以试试。。。。</p>
<p>有人问我关于英文的问题<br>英文啊。。。我心中永远的痛。。<br>我从小学三年级开始就学英文了，学到现在虽然是六级优秀，但是遇到外国人还是结巴<br>我也曾经考过中级口译证书，可惜我花了近两千元钱愣是没考出口语证书，T_T</p>
<p>我觉得中国人吧有个习惯，凡事都要有个有把握的答案才敢说出口<br>我以前也是一定要在心里面把一句句子搭建好了才说出口<br>以至于恩了半天也说不出什么来。。。。</p>
<p>后来工作了以后，遇到很多项目都是由各国人组成的，美国人法国人日本人韩国人。。。<br>我有的时候要对着这些人说话说上个把小时，根本就容不得我去思考这句话有没有语法，<br>久而久之造成了我现在想到单词就往外嘣，没有什么语法可言，全场下来就我一个人在那边手舞足蹈<br>反正能听懂就行了，呵呵。</p>
<p>如果你遇到英文面试，如果是中国人，那好办，你就随便说，他能知道你在说英文就行了，至于内容让他了解个50%你就肯定过了，因为他即使听不懂也不会好意思叫你再说一遍的，呵呵；<br>如果是外国人，你相反得倒应该讲的慢一点，尽量讲简单句，只要你字正腔圆让他们听明白了你在说什么，就没问题了<br>语言本身就是一个工具，你又不要去做作家，你管它优美不优美呢，放胆子说吧，呵呵</p>
<p>关于考试，我也经常想，这年头以考试成绩论输赢太傻了，多少人活了这大半辈子，竟是除了考试之外啥都不会。<br>可是我不得不说，你能想到比考试更好的办法选拔人才么？<br>我不能，我在招人的时候，不可免俗的，只能先注意他的学校，他的成绩，他的简历。。为什么？因为我根本不认识他，我哪有这么大的本领知道这个人是不是有能力有主见有想法。<br>就算是面谈上三十分钟，又有谁敢说就看出这个人是什么都有，只是不小心缺了好成绩，缺了好简历呢？</p>
<p>我确实相信，很多很多人，就像你所说的，没有那么高的出奇的基点，没有辉煌的奖学金历史，不乐意为了一场考试使出浑身解数，但他们很有想法，很有能力。这样的人全中国不知道多少多少。<br>这么多人有几种出路，<br>一种，就像我说的，金子，一定会发光，也许被世俗所扰，起步不如别人，但加速度一定比别人~网站页面大 WordPress ，这样的人，你就不要着急嘛，呵呵<br>一种，金子，觉得自己吃亏了，明明那么优秀却被那些劳什子的教条所束缚，于是每天哀伤啊，为什么教条就不能改改来迎合自己呢？于是一直沉迷在自己幻想出来的游戏规则的社会里面。<br>金子同志啊，游戏规则永远不可能来迎合你的，那怎么办，你就不过日子啦？？</p>
<p>很多人都说，我写得很真。<br>是啊，因为我，你，咱们大家，都是平凡的人，但是也都希望自己不平凡。。。。<br>但是，我们往往都在对未来的憧憬中，渐渐迷失自己最初的执著，<br>我在这里写下的一切，都希望激励我自己，和我母校里所有的兄弟姐妹们，坚持下去！虽然中国的房价那么高，工作那么难找，生活质量那么糟糕。。。。汗。。。<br>都不可以放弃！那么总有一天我们都会成功的~~</p>
<p>毕业到现在，几年过去了，再次刷新我在这里的帖子，呵呵。<br>我又要来炫耀一下最近的成果了。。。。<br>8过请别把我写的鉴定为炫耀贴。。。。<br>我没办法写别人的经历，我只能写自己的经历，而我的经历就是这样，我只是想所有看到的人都能<br>得到一点点启发也好，咱们互相激励~争取都能成为成功人士~~哈哈<br>呵呵</p>
<p>这里有上班的人么？<br>我不知道你们和我一样么，<br>上班很辛苦，并且也许，上班的地方离家会很远，那么基本上等你回到家洗完澡啊什么的，已经很晚了。这个时候，一般我都会打开电脑，开始上网。。。有时候还打打游戏，然后就睡觉。<br>日子就这样一天一天的过去，<br>经常会有莫名的空虚，<br>我在干吗？我想要的生活就是这样？上班，下班，上网，睡觉，再上班。。。？</p>
<p>上班上的久了，人就开始产生惰性，以前很认真做的事情，开始得过且过起来，<br>不是所有的工作，都像电视剧里面那样，那么富有挑战，让你精神饱满的去面对每一天。<br>重复的多了，自然觉得没意思起来。<br>我也一样。</p>
<p>于是，我也开始偷懒起来。。。。<br>我非常庆幸，我有一个非常严厉的领导。导致我偷懒的不能这么彻底。<br>我的领导今年30多岁了，他一直挂在嘴上的一句话是：你看看你们这些扩招的大学生。。。。<br>他经常说，他们当年这些大学生，都是用高中教育的模式培训出来的，<br>而我们现在这些大学生，考试的时候考点一划，不考的不看，考的就背例题，什么都不懂也能考及格。一点技术含量都没有。。。汗<br>我是经常被他训的，他的口头禅就是，已经没有水平还不勤奋点？！<br>我是唯一一个好脾气在他手下干活的小孩，<br>很多小孩都不愿意跟他，转到别的项目去了，<br>我倒不是逆来顺受，我其实也是懒，就这么待着吧，也挺好。</p>
<p>今年我独立带了个项目，<br>艰苦到啥程度。。。<br>就是我早上7点多跑到公司去，晚上零点左右，打的把我的组员都送回家然后我自己再回家，<br>因为只有我可以报销出租车费。。。。<br>就这样的劳动强度，我坚持了1个月。<br>因为我这么的拼命，我项目里的组员也都愿意跟我一起加班，<br>其实他们完全可以不加，因为我们公司不给他们加班费的。。<br>完全出于人道救助精神，即使住得很远的人都愿意主动帮我分担一些。<br>以至于，我在项目结束后聚餐的时候，差点哭出来。。。。<br>这个项目结束后，我的领导对我说，<br>你还不错。。。。。<br>呵呵。</p>
<p>紧接着的一次国外培训的机会，<br>我的领导力排众议，让我去。<br>反对的人的理由是，我太小了，<br>我的领导说，这小孩有潜质，让她试试看，她如果不行我肯定给你们道歉。<br>这个事情他没有跟我说过，<br>我是通过别人的嘴听到的，听到的时候感动得一塌糊涂。。。<br>我临出发的时候，<br>他对我说，别丢我的脸，你又不聪明，多花点精力。。</p>
<p>我觉得，从毕业以来，这一路，走的都很顺畅，<br>以至于我觉得不真实，<br>还记得我曾经说过的么，<br>你的努力别怕别人看不到，<br>也千万别怕自己吃亏，<br>你的吃亏，别人也看得到。<br>别计较太多，别抱怨太多，<br>你的计较和抱怨，别人同样看得到，<br>你的优点，也许一天两天，<br>别人看不出来，也感受不到，<br>但是路遥知马力，<br>1年2年，只要你坚持，别放弃你最初的执著，<br>你身边的人一定能感受得到，<br>这个过程，也许，就是积累机会的过程吧！</p>
<p>上班很无聊吧，<br>再无聊，也别放弃你的执著，一定一定。</p>
<p>没有一个完全的社会，游戏规则适用于所有人的，当规则不适合于自己的时候，你当然可以坚持自己的理想，就像我们伟大的诸如马克思之类的先驱们，改造这个社会。<br>不过，我很俗，我只能屈服，呵呵，我是个普通人，过好我的小日子，我就很满足了，不知道你觉得呢？我当然也乐于见到一个伟大的时代的先驱诞生，呵呵。</p>
<p>事实上，我个人觉得，考试是中国现今比较公平的规则了。<br>你设想一下如果没有考试，穷人家的小孩还会有机会读名牌大学么？<br>不过千万别被我说的话束缚了思路，我也非常乐于看到来自我们同济的学生发明一个代替考试的规则，真的！<br></p>
<img src ="http://www.cppblog.com/larryliuqing/aggbug/44342.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/larryliuqing/" target="_blank">刘远清</a> 2008-03-13 10:37 <a href="http://www.cppblog.com/larryliuqing/archive/2008/03/13/44342.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用的cmd命令</title><link>http://www.cppblog.com/larryliuqing/archive/2008/01/16/41237.html</link><dc:creator>刘远清</dc:creator><author>刘远清</author><pubDate>Tue, 15 Jan 2008 16:29:00 GMT</pubDate><guid>http://www.cppblog.com/larryliuqing/archive/2008/01/16/41237.html</guid><wfw:comment>http://www.cppblog.com/larryliuqing/comments/41237.html</wfw:comment><comments>http://www.cppblog.com/larryliuqing/archive/2008/01/16/41237.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/larryliuqing/comments/commentRss/41237.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/larryliuqing/services/trackbacks/41237.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 36pt">&nbsp;常用的cmd命令</span><br><br><br>winver检查Windows版本 <br>dxdiag检查DirectX信息 <br>mem.exe显示内存使用情况 <br>Sndvol32音量控制程序 <br>sfc.exe系统文件检查器 <br>gpedit.msc 组策略 <br>regedit.exe 注册表 <br>Msconfig.exe 系统配置实用程序 <br>cmd.exe CMD命令提示符 <br>chkdsk.exe Chkdsk磁盘检查 <br>mem.exe显示内存使用情况 <br>gpedit.msc 组策略 <br>regedit.exe 注册表 <br>Msconfig.exe 系统配置实用程序 <br>cmd.exe CMD命令提示符 <br>services.msc 服务 <br>lusrmgr.msc 本地账户管理 <br>drwtsn32 系统医生 <br>cleanmgr 整理 <br>iexpress 木马捆绑工具，系统自带 <br>mmc 控制台 <br>dcpromo 活动目录安装 <br>ntbackup 系统备份和还原 <br>rononce -p 15秒关机 <br>taskmgr 任务管理器 <br>conf 启动netmeeting <br>devmgmt.msc 设备管理器 <br>diskmgmt.msc NT的磁盘管理器 <br>compmgmt.msc 计算机管理 <br>winchat 局域网聊天 <br>dvdplay DVD播放器 <br>mplayer2 简易widnows media player <br>mspaint 画图板 <br>nslookup 网络管理的工具 <br>syskey 系统加密，一旦加密就不能解开，保护windows xp系统的双重密码 <br>wupdmgr WIDNOWS UPDATE <br>Clipbrd 剪贴板查看器 <br>Odbcad32 ODBC数据源管理器 <br>Nslookup IP地址侦测器 <br><br>开始 运行 命令 集锦 <br><br>winver---------检查Windows版本 <br>wmimgmt.msc----打开windows管理体系结构(WMI) <br>wupdmgr--------windows更新程序 <br>wscript--------windows脚本宿主设置 <br>write----------写字板 <br>winmsd---------系统信息 <br>wiaacmgr-------扫描仪和照相机向导 <br>winchat--------XP自带局域网聊天 <br>mem.exe--------显示内存使用情况 <br>Msconfig.exe---系统配置实用程序 <br>mplayer2-------简易widnows media player <br>mspaint--------画图板 <br>mstsc----------远程桌面连接 <br>mplayer2-------媒体播放机 <br>magnify--------放大镜实用程序 <br>mmc------------打开控制台 <br>mobsync--------同步命令 <br>dxdiag---------检查DirectX信息 <br>drwtsn32------ 系统医生 <br>devmgmt.msc--- 设备管理器 <br>dfrg.msc-------磁盘碎片整理程序 <br>diskmgmt.msc---磁盘管理实用程序 <br>dcomcnfg-------打开系统组件服务 <br>ddeshare-------打开DDE共享设置 <br>dvdplay--------DVD播放器 <br>net stop messenger-----停止信使服务 <br>net start messenger----开始信使服务 <br>notepad--------打开记事本 <br>nslookup-------网络管理的工具向导 <br>ntbackup-------系统备份和还原 <br>narrator-------屏幕&#8220;讲述人&#8221; <br>ntmsmgr.msc----移动存储管理器 <br>ntmsoprq.msc---移动存储管理员操作请求 <br>netstat -an----(TC)命令检查接口 <br>syncapp--------创建一个公文包 <br>sysedit--------系统配置编辑器 <br>sigverif-------文件签名验证程序 <br>sndrec32-------录音机 <br>shrpubw--------创建共享文件夹 <br>secpol.msc-----本地安全策略 <br>syskey---------系统加密，一旦加密就不能解开，保护windows xp系统的双重密码 <br>services.msc---本地服务设置 <br>Sndvol32-------音量控制程序 <br>sfc.exe--------系统文件检查器 <br>sfc /scannow---windows文件保护 <br>tsshutdn-------60秒倒计时关机命令 <br>tourstart------xp简介（安装完成后出现的漫游xp程序） <br>taskmgr--------任务管理器 <br>eventvwr-------事件查看器 <br>eudcedit-------造字程序 <br>explorer-------打开资源管理器 <br>packager-------对象包装程序 <br>perfmon.msc----计算机性能监测程序 <br>progman--------程序管理器 <br>regedit.exe----注册表 <br>rsop.msc-------组策略结果集 <br>regedt32-------注册表编辑器 <br>rononce -p ----15秒关机 <br>regsvr32 /u *.dll----停止dll文件运行 <br>regsvr32 /u zipfldr.dll------取消ZIP支持 <br>cmd.exe--------CMD命令提示符 <br>chkdsk.exe-----Chkdsk磁盘检查 <br>certmgr.msc----证书管理实用程序 <br>calc-----------启动计算器 <br>charmap--------启动字符映射表 <br>cliconfg-------SQL SERVER 客户端网络实用程序 <br>Clipbrd--------剪贴板查看器 <br>conf-----------启动netmeeting <br>compmgmt.msc---计算机管理 <br>cleanmgr-------垃圾整理 <br>ciadv.msc------索引服务程序 <br>osk------------打开屏幕键盘 <br>odbcad32-------ODBC数据源管理器 <br>oobe/msoobe /a----检查XP是否激活 lusrmgr.msc----本机用户和组 logoff---------注销命令 <br>iexpress-------木马捆绑工具，系统自带 <br>Nslookup-------IP地址侦测器 <br>fsmgmt.msc-----共享文件夹管理器 <br>utilman--------辅助工具管理器 <br>gpedit.msc-----组策略 <br><br><br><br><br><br><br><br><br><br>CMD运行指令 <br><br>开始&#8594;运行&#8594;CMD&#8594;键入以下命令即可: <br><br>gpedit.msc-----组策略　　　　　　　　　　　　　　　　 sndrec32-------录音机 <br>Nslookup-------IP地址侦测器　　　　　　　　　　　　　 explorer-------打开资源管理器 <br>logoff---------注销命令　　　　　　　　　　　　　　　 tsshutdn-------60秒倒计时关机命令 <br>lusrmgr.msc----本机用户和组　　　　　　　　　　　　　 services.msc---本地服务设置 <br>oobe/msoobe /a----检查XP是否激活　　　　　　　　　　　notepad--------打开记事本 <br>cleanmgr-------垃圾整理　　　　　　　　　　　　　　　 net start messenger----开始信使服务 <br>compmgmt.msc---计算机管理　　　　　　　　　　　　　　 net stop messenger-----停止信使服务 <br>conf-----------启动netmeeting　　　　　　　　　　　　 dvdplay--------DVD播放器 <br>charmap--------启动字符映射表　　　　　　 　 diskmgmt.msc---磁盘管理实用程序 <br>calc-----------启动计算器　　　　　　　　　　　　　　 dfrg.msc-------磁盘碎片整理程序 <br>chkdsk.exe-----Chkdsk磁盘检查　　　　　　　　　　　　 devmgmt.msc--- 设备管理器 <br>regsvr32 /u *.dll----停止dll文件运行　　　　　　　　　drwtsn32------ 系统医生 <br>rononce -p ----15秒关机　　　　　　　　　　　　　　　 dxdiag---------检查DirectX信息 <br>regedt32-------注册表编辑器　　　　　　　　　　　　　 Msconfig.exe---系统配置实用程序 <br>rsop.msc-------组策略结果集　　　　　　　　　　　　　 mem.exe--------显示内存使用情况 <br>regedit.exe----注册表　　　　　　　　　　　　　　　　 winchat--------XP自带局域网聊天 <br>progman--------程序管理器　　　　　　　　　　　　　　 winmsd---------系统信息 <br>perfmon.msc----计算机性能监测程序　　　　　　　　　　 winver---------检查Windows版本 <br>sfc /scannow-----扫描错误并复原　　　　　　　　　　　 winipcfg-------IP配置 <br>taskmgr-----任务管理器（2000／xp／2003）　　　　　　　command--------cmd <br>fsmgmt.msc 共享文件夹　　　　　　　　　　　　　　　　 netstat -an----查看端口 <br>osk 屏幕键盘　　　　　　　　　　　　　　　　　　　　　install.asp----修改注册网页 <br>eventvwr.msc 时间查看器 <br>secpol.msc 本地安全设置 <br>services.msc 服务 <br>2K <br><br>accwiz.exe &gt; 辅助工具向导　 <br>acsetups.exe &gt; acs setup dcom server executable　 <br>actmovie.exe &gt; 直接显示安装工具　 <br>append.exe &gt; 允许程序打开制定目录中的数据　 <br>arp.exe &gt; 显示和更改计算机的ip与硬件物理地址的对应列表　 <br>at.exe &gt; 计划运行任务　 <br>atmadm.exe &gt; 调用管理器统计　 <br>attrib.exe &gt; 显示和更改文件和文件夹属性　 <br>autochk.exe &gt; 检测修复文件系统　 <br>autoconv.exe &gt; 在启动过程中自动转化系统　 <br>autofmt.exe &gt; 在启动过程中格式化进程　 <br>autolfn.exe &gt; 使用长文件名格式　 <br>bootok.exe &gt; boot acceptance application for registry　 <br>bootvrfy.exe &gt; 通报启动成功　 <br>cacls.exe &gt; 显示和编辑acl　 <br>calc.exe &gt; 计算器　 <br>cdplayer.exe &gt; cd播放器　 <br>change.exe &gt; 与终端服务器相关的查询　 <br>charmap.exe &gt; 字符映射表　 <br>chglogon.exe &gt; 启动或停用会话记录　 <br>chgport.exe &gt; 改变端口（终端服务）　 <br>chgusr.exe &gt; 改变用户（终端服务）　 <br>chkdsk.exe &gt; 磁盘检测程序　 <br>chkntfs.exe &gt; 磁盘检测程序　 <br>cidaemon.exe &gt; 组成ci文档服务　 <br>cipher.exe &gt; 在ntfs上显示或改变加密的文件或目录　 <br>cisvc.exe &gt; 索引内容　 <br>ckcnv.exe &gt; 变换cookie　 <br>cleanmgr.exe &gt; 磁盘清理　 <br>cliconfg.exe &gt; sql客户网络工具　 <br>clipbrd.exe &gt; 剪贴簿查看器　 <br>clipsrv.exe &gt; 运行clipboard服务　 <br>clspack.exe &gt; 建立系统文件列表清单　 <br>cluster.exe &gt; 显示域的集群　 <br>_cmd_.exe &gt; 没什么好说的！　 <br>cmdl32.exe &gt; 自动下载连接管理　 <br>cmmgr32.exe &gt; 连接管理器　 <br>cmmon32.exe &gt; 连接管理器监视　 <br>cmstp.exe &gt; 连接管理器配置文件安装程序　 <br>comclust.exe &gt; 集群　 <br>comp.exe &gt; 比较两个文件和文件集的内容＊　 <br>compact.exe &gt; 显示或改变ntfs分区上文件的压缩状态　 <br>conime.exe &gt; ime控制台　 <br>control.exe &gt; 控制面板　 <br>convert.exe &gt; 转换文件系统到ntfs　 <br>convlog.exe &gt; 转换iis日志文件格式到ncsa格式　 <br>cprofile.exe &gt; 转换显示模式　 <br>cscript.exe &gt; 较本宿主版本　 <br>csrss.exe &gt; 客户服务器runtime进程　 <br>csvde.exe &gt; 日至格式转换程序　 <br>dbgtrace.exe &gt; 和terminal server相关　 <br>dcomcnfg.exe &gt; dcom配置属性　 <br>dcphelp.exe &gt; ?　 <br>dcpromo.exe &gt; ad安装向导　 <br>ddeshare.exe &gt; dde共享　 <br>ddmprxy.exe &gt;　 <br>debug.exe &gt; 就是debug啦！　 <br>dfrgfat.exe &gt; fat分区磁盘碎片整理程序　 <br>dfrgntfs.exe &gt; ntfs分区磁盘碎片整理程序　 <br>dfs_cmd_.exe &gt; 配置一个dfs树　 <br>dfsinit.exe &gt; 分布式文件系统初始化　 <br>dfssvc.exe &gt; 分布式文件系统服务器　 <br>diantz.exe &gt; 制作cab文件　 <br>diskperf.exe &gt; 磁盘性能计数器　 <br>dllhost.exe &gt; 所有com+应用软件的主进程　 <br>dllhst3g.exe &gt;　 <br>dmadmin.exe &gt; 磁盘管理服务　 <br>dmremote.exe &gt; 磁盘管理服务的一部分　 <br>dns.exe &gt; dns applications dns　 <br>doskey.exe &gt; 命令行创建宏　 <br>dosx.exe &gt; dos扩展　 <br>dplaysvr.exe &gt; 直接运行帮助　 <br>drwatson.exe &gt; 华生医生错误检测　 <br>drwtsn32.exe &gt; 华生医生显示和配置管理　 <br>dtcsetup.exe &gt; installs mdtc　 <br>dvdplay.exe &gt; dvd播放　 <br>dxdiag.exe &gt; direct-x诊断工具　 <br>edlin.exe &gt; 命令行的文本编辑器（历史悠久啊！）　 <br>edlin.exe &gt; 命令行的文本编辑器（历史悠久啊！）　 <br>esentutl.exe &gt; ms数据库工具　 <br>eudcedit.exe &gt; type造字程序　 <br>eventvwr.exe &gt; 事件查看器　 <br>evnt_cmd_.exe &gt; event to trap translator; configuration tool　 <br>evntwin.exe &gt; event to trap translator setup　 <br>exe2bin.exe &gt; 转换exe文件到二进制　 <br>expand.exe &gt; 解压缩　 <br>extrac32.exe &gt; 解cab工具　 <br>fastopen.exe &gt; 快速访问在内存中的硬盘文件　 <br>faxcover.exe &gt; 传真封面编辑　 <br>faxqueue.exe &gt; 显示传真队列　 <br>faxsend.exe &gt; 发送传真向导　 <br>faxsvc.exe &gt; 启动传真服务　 <br>fc.exe &gt; 比较两个文件的不同　 <br>find.exe &gt; 查找文件中的文本行　 <br>findstr.exe &gt; 查找文件中的行　 <br>finger.exe &gt; 一个用户并显示出统计结果　 <br>fixmapi.exe &gt; 修复mapi文件　 <br>flattemp.exe &gt; 允许或者禁用临时文件目录　 <br>fontview.exe &gt; 显示字体文件中的字体　 <br>forcedos.exe &gt; forces a file to start in dos mode. 强制文件在dos模式下运行　 <br>freecell.exe &gt; popular windows game 空当接龙　 <br>ftp.exe &gt; file transfer protocol used to transfer files over a network conne <br>ction 就是ftp了　 <br>gdi.exe &gt; graphic device interface 图形界面驱动　 <br>grovel.exe &gt;　 <br>grpconv.exe &gt; program manager group convertor 转换程序管理员组　 <br>help.exe &gt; displays help for windows 2000 commands 显示帮助　 <br>hostname.exe &gt; display hostname for machine. 显示机器的hostname　 <br>ie4uinit.exe &gt; ie5 user install tool ie5用户安装工具　 <br>ieshwiz.exe &gt; customize folder wizard 自定义文件夹向导　 <br>iexpress.exe &gt; create and setup packages for install 穿件安装包　 <br>iisreset.exe &gt; restart iis admin service 重启iis服务　 <br>internat.exe &gt; keyboard language indicator applet 键盘语言指示器　 <br>ipconfig.exe &gt; windows 2000 ip configuration. 察看ip配置　 <br>ipsecmon.exe &gt; ip security monitor ip安全监视器　 <br>ipxroute.exe &gt; ipx routing and source routing control program ipx路由和源路由控制程序　 <br>irftp.exe &gt; setup ftp for wireless communication 无线连接　 <br>ismserv.exe &gt; intersite messaging service 安装或者删除service control manage　 <br>r中的服务　 <br>jdbgmgr.exe &gt; microsoft debugger for java 4 java4的调试器　 <br>jetconv.exe &gt; convert a jet engine database 转换jet engine数据库　 <br>jetpack.exe &gt; compact jet database. 压缩jet数据库　 <br>jview.exe &gt; command-line loader for java java的命令行装载者　 <br>krnl386.exe &gt; core component for windows 2000 2000的核心组件　 <br>label.exe &gt; change label for drives 改变驱动器的卷标　 <br>lcwiz.exe &gt; license compliance wizard for local or remote systems. 许可证符合　 <br>向导　 <br>ldifde.exe &gt; ldif cmd line manager ldif目录交换命令行管理　 <br>licmgr.exe &gt; terminal server license manager 终端服务许可协议管理　 <br>lights.exe &gt; display connection status lights 显示连接状况　 <br>llsmgr.exe &gt; windows 2000 license manager 2000许可协议管理　 <br>llssrv.exe &gt; start the license server 启动许可协议服务器　 <br>lnkstub.exe &gt;　 <br>locator.exe &gt; rpc locator 远程定位　 <br>lodctr.exe &gt; load perfmon counters 调用性能计数　 <br>logoff.exe &gt; log current user off. 注销用户　 <br>lpq.exe &gt; displays status of a remote lpd queue 显示远端的lpd打印队列的状态，　 <br>显示被送到基于unix的服务器的打印任务　 <br>lpr.exe &gt; send a print job to a network printer. 重定向打印任务到网络中的打印　 <br>机。通常用于unix客户打印机将打印任务发送给连接了打印设备的nt的打印机服务器。　 <br><br>lsass.exe &gt; lsa executable and server dll 运行lsa和server的dll　 <br>lserver.exe &gt; specifies the new dns domain for the default server 指定默认se　 <br>rver新的dns域　 <br>os2.exe &gt; an os/2 warp server (os2 /o) os/2　 <br>os2srv.exe &gt; an os/2 warp server os/2　 <br>os2ss.exe &gt; an os/2 warp server os/2　 <br>osk.exe &gt; on screen keyboard 屏幕键盘　 <br>packager.exe &gt; windows 2000 packager manager 对象包装程序　 <br>pathping.exe &gt; combination of ping and tracert 包含ping和tracert的程序　 <br>pax.exe &gt; is a posix program and path names used as arguments must be specif　 <br>ied in posix format. use "//c/users/default" instead of "c:usersdefault."　 <br>启动便携式存档互换 (pax) 实用程序　 <br>pentnt.exe &gt; used to check the pentium for the floating point division error <br>. 检查pentium的浮点错误　 <br>perfmon.exe &gt; starts windows performance monitor 性能监视器　 <br>ping.exe &gt; packet internet groper 验证与远程计算机的连接　 <br>posix.exe &gt; used for backward compatibility with unix 用于兼容unix　 <br>print.exe &gt; cmd line used to print files 打印文本文件或显示打印队列的内容。　 <br>progman.exe &gt; program manager 程序管理器　 <br>proquota.exe &gt; profile quota program　 <br>psxss.exe &gt; posix subsystem application posix子系统应用程序　 <br>qappsrv.exe &gt; displays the available application terminal servers on the net　 <br>work　 <br>在网络上显示终端服务器可用的程序　 <br>qprocess.exe &gt; display information about processes local or remote 在本地或远　 <br>程显示进程的信息（需终端服务）　 <br>query.exe &gt; query termserver user process and sessions 查询进程和对话　 <br>quser.exe &gt; display information about a user logged on 显示用户登陆的信息（需　 <br>终端服务）　 <br>qwinsta.exe &gt; display information about terminal sessions. 显示终端服务的信息　 <br><br>rasadmin.exe &gt; start the remote access admin service 启动远程访问服务　 <br>rasautou.exe &gt; creates a ras connection 建立一个ras连接　 <br>rasdial.exe &gt; dial a connection 拨号连接　 <br>ras.exe &gt; starts a ras connection 运行ras连接　 <br>rcp.exe &gt; copies a file from and to a rcp service. 在 windows 2000 计算机和运　 <br>行远程外壳端口监控程序 rshd 的系统之间复制文件　 <br>rdpclip.exe &gt; rdpclip allows you to copy and paste files between a terminal　 <br>session and client console session. 再终端和本地复制和粘贴文件　 <br>recover.exe &gt; recovers readable information from a bad or defective disk 从坏　 <br>的或有缺陷的磁盘中恢复可读取的信息。　 <br>redir.exe &gt; starts the redirector service 运行重定向服务　 <br>regedt32.exe &gt; 32-bit register service 32位注册服务　 <br>regini.exe &gt; modify registry permissions from within a script 用脚本修改注册　 <br>许可　 <br>register.exe &gt; register a program so it can have special execution character　 <br>istics. 注册包含特殊运行字符的程序　 <br>regsvc.exe &gt;　 <br>regsvr32.exe &gt; registers and unregister's dll's. as to how and where it regi　 <br>ster's them i dont know. 注册和反注册dll　 <br>regtrace.exe &gt; options to tune debug options for applications failing to dum　 <br>p trace statements　 <br>trace 设置　 <br>regwiz.exe &gt; registration wizard 注册向导　 <br>remrras.exe &gt;　 <br>replace.exe &gt; replace files 用源目录中的同名文件替换目标目录中的文件。　 <br>reset.exe &gt; reset an active section 重置活动部分　 <br>rexec.exe &gt; runs commands on remote hosts running the rexec service. 在运行　 <br>rexec 服务的远程计算机上运行命令。rexec 命令在执行指定命令前，验证远程计算机　 <br>上的用户名，只有安装了 tcp/ip 协议后才可以使用该命令。　 <br>risetup.exe &gt; starts the remote installation service wizard. 运行远程安装向导　 <br>服务　 <br>route.exe &gt; display or edit the current routing tables. 控制网络路由表　 <br>routemon.exe &gt; no longer supported 不再支持了！　 <br>router.exe &gt; router software that runs either on a dedicated dos or on an os　 <br>. 检查pentium的浮点错误　 <br>perfmon.exe &gt; starts windows performance monitor 性能监视器　 <br>ping.exe &gt; packet internet groper 验证与远程计算机的连接　 <br>posix.exe &gt; used for backward compatibility with unix 用于兼容unix　 <br>print.exe &gt; cmd line used to print files 打印文本文件或显示打印队列的内容。　 <br>progman.exe &gt; program manager 程序管理器　 <br>proquota.exe &gt; profile quota program　 <br>psxss.exe &gt; posix subsystem application posix子系统应用程序　 <br>qappsrv.exe &gt; displays the available application terminal servers on the net　 <br>work　 <br>在网络上显示终端服务器可用的程序　 <br>qprocess.exe &gt; display information about processes local or remote 在本地或远　 <br>程显示进程的信息（需终端服务）　 <br>query.exe &gt; query termserver user process and sessions 查询进程和对话　 <br>quser.exe &gt; display information about a user logged on 显示用户登陆的信息（需　 <br>终端服务）　 <br>qwinsta.exe &gt; display information about terminal sessions. 显示终端服务的信息　 <br><br>rasadmin.exe &gt; start the remote access admin service 启动远程访问服务　 <br>rasautou.exe &gt; creates a ras connection 建立一个ras连接　 <br>rasdial.exe &gt; dial a connection 拨号连接　 <br>ras.exe &gt; starts a ras connection 运行ras连接　 <br>rcp.exe &gt; copies a file from and to a rcp service. 在 windows 2000 计算机和运　 <br>行远程外壳端口监控程序 rshd 的系统之间复制文件　 <br>rdpclip.exe &gt; rdpclip allows you to copy and paste files between a terminal　 <br>session and client console session. 再终端和本地复制和粘贴文件　 <br>recover.exe &gt; recovers readable information from a bad or defective disk 从坏　 <br>的或有缺陷的磁盘中恢复可读取的信息。　 <br>redir.exe &gt; starts the redirector service 运行重定向服务　 <br>regedt32.exe &gt; 32-bit register service 32位注册服务　 <br>regini.exe &gt; modify registry permissions from within a script 用脚本修改注册　 <br>许可　 <br>register.exe &gt; register a program so it can have special execution character　 <br>istics. 注册包含特殊运行字符的程序　 <br>regsvc.exe &gt;　 <br>regsvr32.exe &gt; registers and unregister's dll's. as to how and where it regi　 <br>ster's them i dont know. 注册和反注册dll　 <br>regtrace.exe &gt; options to tune debug options for applications failing to dum　 <br>p trace statements　 <br>trace 设置　 <br>regwiz.exe &gt; registration wizard 注册向导　 <br>remrras.exe &gt;　 <br>replace.exe &gt; replace files 用源目录中的同名文件替换目标目录中的文件。　 <br>reset.exe &gt; reset an active section 重置活动部分　 <br>rexec.exe &gt; runs commands on remote hosts running the rexec service. 在运行　 <br>rexec 服务的远程计算机上运行命令。rexec 命令在执行指定命令前，验证远程计算机　 <br>上的用户名，只有安装了 tcp/ip 协议后才可以使用该命令。　 <br>risetup.exe &gt; starts the remote installation service wizard. 运行远程安装向导　 <br>服务　 <br>route.exe &gt; display or edit the current routing tables. 控制网络路由表　 <br>routemon.exe &gt; no longer supported 不再支持了！　 <br>router.exe &gt; router software that runs either on a dedicated dos or on an os
<img src ="http://www.cppblog.com/larryliuqing/aggbug/41237.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/larryliuqing/" target="_blank">刘远清</a> 2008-01-16 00:29 <a href="http://www.cppblog.com/larryliuqing/archive/2008/01/16/41237.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IP 助手函数</title><link>http://www.cppblog.com/larryliuqing/archive/2007/10/19/34617.html</link><dc:creator>刘远清</dc:creator><author>刘远清</author><pubDate>Fri, 19 Oct 2007 08:49:00 GMT</pubDate><guid>http://www.cppblog.com/larryliuqing/archive/2007/10/19/34617.html</guid><wfw:comment>http://www.cppblog.com/larryliuqing/comments/34617.html</wfw:comment><comments>http://www.cppblog.com/larryliuqing/archive/2007/10/19/34617.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/larryliuqing/comments/commentRss/34617.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/larryliuqing/services/trackbacks/34617.html</trackback:ping><description><![CDATA[<div class=head>IP 助手函数</div>
<p>使用下面的函数和结构体能够获取和修改本地传输控制协议/网际协议(TCP/IP)配置. 下列函数列表能够帮助你决定在特定的任务下选择最适合的(适配器): </p>
<h4><span class=remark>一.特意加上的函数[MSDN2005中所没有的]:</span></h4>
<p>
<div class=function>
<ul>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/AllocateAndGetTcpExTableFromStack.htm"><strong><font color=#0000ff><u>AllocateAndGetTcpExTableFromStack </u></font></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/AllocateAndGetUdpExTableFromStack.htm"><strong><u><font color=#0000ff>AllocateAndGetUdpExTableFromStack</font></u></strong></a> </li>
</ul>
</div>
<h4>适配器管理</h4>
<p>
<ul>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getadapterindex.htm"><strong><u><font color=#0000ff>GetAdapterIndex</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-4-25&nbsp;&nbsp;&#8730; </span>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getadaptersaddresses.htm"><strong><u><font color=#810081>GetAdaptersAddresses</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-4-26&nbsp;&nbsp;&#8730;</span>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getadaptersinfo.htm"><strong><u><font color=#810081>GetAdaptersInfo</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-4-27&nbsp;&nbsp;&#8730;</span>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getperadapterinfo.htm"><strong><u><font color=#0000ff>GetPerAdapterInfo</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-4-28&nbsp;&nbsp;&#8730;</span>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getunidirectionaladapterinfo.htm"><strong><u><font color=#0000ff>GetUniDirectionalAdapterInfo</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-4-30&nbsp;&nbsp;&#8730;</span> </li>
</ul>
<h4>地址转换协议(<span class=remark>ARP</span>)</h4>
<p>
<ul>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/createipnetentry.htm"><strong><u><font color=#0000ff>CreateIpNetEntry</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-4-30&nbsp;&nbsp;&#8730;</span>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/createproxyarpentry.htm"><strong><u><font color=#0000ff>CreateProxyArpEntry</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-5-1&nbsp;&nbsp;&#8730;</span>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/deleteipnetentry.htm"><strong><u><font color=#0000ff>DeleteIpNetEntry</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-5-1&nbsp;&nbsp;&#8730;</span>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/deleteproxyarpentry.htm"><strong><u><font color=#0000ff>DeleteProxyArpEntry</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-5-8&nbsp;&nbsp;&#8730;</span>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/flushipnettable.htm"><strong><u><font color=#0000ff>FlushIpNetTable</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-5-10&nbsp;&nbsp;&#8730;</span>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getipnettable.htm"><strong><u><font color=#0000ff>GetIpNetTable</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-5-11&nbsp;&nbsp;&#8730;</span>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/sendarp.htm"><strong><u><font color=#0000ff>SendARP</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-5-13&nbsp;&nbsp;&#8730;</span>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/setipnetentry.htm"><strong><u><font color=#0000ff>SetIpNetEntry</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-5-13&nbsp;&nbsp;&#8730;</span> </li>
</ul>
<h4>接口管理</h4>
<p>
<ul>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getfriendlyifindex.htm"><strong><u><font color=#0000ff>GetFriendlyIfIndex</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-5-14&nbsp;&nbsp;&#8730;</span>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getifentry.htm"><strong><u><font color=#0000ff>GetIfEntry</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-5-17&nbsp;&nbsp;&#8730;</span>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getiftable.htm"><strong><u><font color=#0000ff>GetIfTable</font></u></strong></a> <span class=remark>&nbsp;&nbsp;&nbsp;2007-5-22&nbsp;&nbsp;&#8730;</span>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getinterfaceinfo.htm"><strong><u><font color=#0000ff>GetInterfaceInfo</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getnumberofinterfaces.htm"><strong><u><font color=#0000ff>GetNumberOfInterfaces</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/setifentry.htm"><strong><u><font color=#0000ff>SetIfEntry</font></u></strong></a> </li>
</ul>
<h4>Internet Protocol and Internet Control Message Protocol</h4>
<p>
<ul>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/geticmpstatistics.htm"><strong><u><font color=#0000ff>GetIcmpStatistics</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getipstatistics.htm"><strong><u><font color=#0000ff>GetIpStatistics</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/icmpclosehandle.htm"><strong><u><font color=#0000ff>IcmpCloseHandle</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/icmpcreatefile.htm"><strong><u><font color=#0000ff>IcmpCreateFile</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/icmpparsereplies.htm"><strong><u><font color=#0000ff>IcmpParseReplies</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/icmpsendecho.htm"><strong><u><font color=#0000ff>IcmpSendEcho</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/icmpsendecho2.htm"><strong><u><font color=#0000ff>IcmpSendEcho2</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/setipstatistics.htm"><strong><u><font color=#0000ff>SetIpStatistics</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/setipttl.htm"><strong><u><font color=#0000ff>SetIpTTL</font></u></strong></a> </li>
</ul>
<h4>IP Address Management</h4>
<p>
<ul>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/addipaddress.htm"><strong><u><font color=#0000ff>AddIPAddress</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/deleteipaddress.htm"><strong><u><font color=#0000ff>DeleteIPAddress</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getipaddrtable.htm"><strong><u><font color=#0000ff>GetIpAddrTable</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/ipreleaseaddress.htm"><strong><u><font color=#0000ff>IpReleaseAddress</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/iprenewaddress.htm"><strong><u><font color=#0000ff>IpRenewAddress</font></u></strong></a> </li>
</ul>
<h4>Network Configuration</h4>
<p>
<ul>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getnetworkparams.htm"><strong><u><font color=#0000ff>GetNetworkParams</font></u></strong></a> </li>
</ul>
<h4>Notification</h4>
<p>
<ul>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/notifyaddrchange.htm"><strong><u><font color=#0000ff>NotifyAddrChange</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/notifyroutechange.htm"><strong><u><font color=#0000ff>NotifyRouteChange</font></u></strong></a> </li>
</ul>
<h4>Routing</h4>
<p>
<ul>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/createipforwardentry.htm"><strong><u><font color=#0000ff>CreateIpForwardEntry</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/deleteipforwardentry.htm"><strong><u><font color=#0000ff>DeleteIpForwardEntry</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/enablerouter.htm"><strong><u><font color=#0000ff>EnableRouter</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getbestinterface.htm"><strong><u><font color=#0000ff>GetBestInterface</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getbestroute.htm"><strong><u><font color=#0000ff>GetBestRoute</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getipforwardtable.htm"><strong><u><font color=#0000ff>GetIpForwardTable</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getrttandhopcount.htm"><strong><u><font color=#0000ff>GetRTTAndHopCount</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/setipforwardentry.htm"><strong><u><font color=#0000ff>SetIpForwardEntry</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/unenablerouter.htm"><strong><u><font color=#0000ff>UnenableRouter</font></u></strong></a> </li>
</ul>
<h4>Transmission Control Protocol and User Datagram Protocol</h4>
<p>
<ul>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getextendedtcptable.htm"><strong><u><font color=#0000ff>GetExtendedTcpTable</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getextendedudptable.htm"><strong><u><font color=#0000ff>GetExtendedUdpTable</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getownermodulefromtcpentry.htm"><strong><u><font color=#0000ff>GetOwnerModuleFromTcpEntry</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getownermodulefromtcp6entry.htm"><strong><u><font color=#0000ff>GetOwnerModuleFromTcp6Entry</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getownermodulefromudpentry.htm"><strong><u><font color=#0000ff>GetOwnerModuleFromUdpEntry</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getownermodulefromudp6entry.htm"><strong><u><font color=#0000ff>GetOwnerModuleFromUdpEntry</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/gettcpstatistics.htm"><strong><u><font color=#0000ff>GetTcpStatistics</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/gettcptable.htm"><strong><u><font color=#0000ff>GetTcpTable</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/settcpentry.htm"><strong><u><font color=#0000ff>SetTcpEntry</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getudpstatistics.htm"><strong><u><font color=#0000ff>GetUdpStatistics</font></u></strong></a>
    <li><a href="http://www.lovemfc.cn/msdn/iphlp/getudptable.htm"><strong><u><font color=#0000ff>GetUdpTable</font></u></strong></a> </li>
</ul>
<hr>
<div class=bottom>来至于<a href="http://www.lovemfc.cn/"><u><font color=#810081>www.lovemfc.cn</font></u></a></div>
<img src ="http://www.cppblog.com/larryliuqing/aggbug/34617.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/larryliuqing/" target="_blank">刘远清</a> 2007-10-19 16:49 <a href="http://www.cppblog.com/larryliuqing/archive/2007/10/19/34617.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>世界上最小的GUI 操作系统 [源代码]</title><link>http://www.cppblog.com/larryliuqing/archive/2007/10/18/34345.html</link><dc:creator>刘远清</dc:creator><author>刘远清</author><pubDate>Thu, 18 Oct 2007 06:24:00 GMT</pubDate><guid>http://www.cppblog.com/larryliuqing/archive/2007/10/18/34345.html</guid><wfw:comment>http://www.cppblog.com/larryliuqing/comments/34345.html</wfw:comment><comments>http://www.cppblog.com/larryliuqing/archive/2007/10/18/34345.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/larryliuqing/comments/commentRss/34345.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/larryliuqing/services/trackbacks/34345.html</trackback:ping><description><![CDATA[Visopsys&nbsp;自从1997年以来就已经开始开发，目前最新版本为0.69，它非常小巧，光盘版的才5MB左右，而软盘版的也700KB不到。并且它运行起来非常快，而&nbsp;且还是开源软件。它虽然小，但是提供了功能齐全的图形界面，支持实时可占先多任务和虚拟内存。Visopsys尽力与多方兼容，但是它不是任何其他操作系统的一个克隆版本。&nbsp;<br><br>&nbsp;<br><br>下载:&nbsp;<br><br>CD-ROM版本：http://visopsys.org/files/visopsys/visopsys-0.69-iso.zip&nbsp;<br><br>软盘版本：http://visopsys.org/files/visopsys/visopsys-0.69-img.zip&nbsp;<br><br>源代码：http://visopsys.org/files/visopsys/visopsys-0.69-src.zip&nbsp;<br><br>Vmware镜像：http://visopsys.org/files/visopsys/visopsys-0.62-vmware.zip&nbsp;<br>分区工具：<a href="http://partitionlogic.org.uk/index.html">http://partitionlogic.org.uk/index.html</a><br><br>&nbsp;<br><br>Visopsys&nbsp;0.69的主要更新：&nbsp;<br><br>改善了USB子系统包括对USB&nbsp;mice/keyboard和shubs的支持,&nbsp;调整了FAT相关驱动程序,&nbsp;并对用户程序模块，OS内核，C语言库进行了修复以及改进。&nbsp;<br>
<img src ="http://www.cppblog.com/larryliuqing/aggbug/34345.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/larryliuqing/" target="_blank">刘远清</a> 2007-10-18 14:24 <a href="http://www.cppblog.com/larryliuqing/archive/2007/10/18/34345.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Assembler Links</title><link>http://www.cppblog.com/larryliuqing/archive/2007/10/11/33932.html</link><dc:creator>刘远清</dc:creator><author>刘远清</author><pubDate>Thu, 11 Oct 2007 02:35:00 GMT</pubDate><guid>http://www.cppblog.com/larryliuqing/archive/2007/10/11/33932.html</guid><wfw:comment>http://www.cppblog.com/larryliuqing/comments/33932.html</wfw:comment><comments>http://www.cppblog.com/larryliuqing/archive/2007/10/11/33932.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/larryliuqing/comments/commentRss/33932.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/larryliuqing/services/trackbacks/33932.html</trackback:ping><description><![CDATA[<h2>Assembler Links</h2>
<p>WinAsm Studio IDE, tutorials, source code, Assembler board: <a href="http://www.winasm.net/"><u><font color=#810081>http://www.winasm.net</font></u></a></p>
<p>MASM32&nbsp;is a working development for 32 bit Microsoft assembler (MASM): <a href="http://www.masm32.com/"><u><font color=#810081>http://www.masm32.com/</font></u></a></p>
<p>Ewaynes's Win32 Assembly Homepage:&nbsp;<a href="http://asmedit.massmind.org/"><u><font color=#810081>http://asmedit.massmind.org</font></u></a></p>
<p>The site of flat assembler <a href="http://www.flatassembler.net/"><u><font color=#0000ff>http://www.flatassembler.net/</font></u></a></p>
<img src ="http://www.cppblog.com/larryliuqing/aggbug/33932.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/larryliuqing/" target="_blank">刘远清</a> 2007-10-11 10:35 <a href="http://www.cppblog.com/larryliuqing/archive/2007/10/11/33932.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>介绍一些经典的网站和书籍</title><link>http://www.cppblog.com/larryliuqing/archive/2007/10/10/33897.html</link><dc:creator>刘远清</dc:creator><author>刘远清</author><pubDate>Wed, 10 Oct 2007 06:18:00 GMT</pubDate><guid>http://www.cppblog.com/larryliuqing/archive/2007/10/10/33897.html</guid><wfw:comment>http://www.cppblog.com/larryliuqing/comments/33897.html</wfw:comment><comments>http://www.cppblog.com/larryliuqing/archive/2007/10/10/33897.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/larryliuqing/comments/commentRss/33897.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/larryliuqing/services/trackbacks/33897.html</trackback:ping><description><![CDATA[<p align=left></p>
<div class=bword style="LINE-HEIGHT: 18px" align=left>因为要经典，不敢写得太多，欢迎大家继续补充。这里只是涉及编程的东东，如果想要关于破解方面的资料请到&#8220;工具下载&#8221;栏目的置顶帖。<br><br>ps.网上这些书的电子版大都是未经作者同意而发布的，我并不能保证给出的链接长期有效。我的看法是您可以先下载试看;)，如果觉得物有所值，还是推荐去买一本纸质书，也是支持一下作者的辛勤劳动。<br><br>有用的网站：<br><br>MSDN&nbsp;Library<br><br><a href="http://msdn.microsoft.com/library/" target=_blank><font color=#000000>http://msdn.microsoft.com/library/</font></a><br><br>CSDN<br><br><a href="http://www.csdn.net/" target=_blank><font color=#000000>http://www.csdn.net/</font></a><br><br>经典书籍：<br><font color=blue><br>=======================<br>WINDOWS编程类<br>=======================<br></font><font color=red><br>Windows程序设计中文版（Programming&nbsp;Windows，Charles&nbsp;Petzold著）<br></font><br><a href="http://www.a5d.com/SoftView/SoftView_673.asp" target=_blank><font color=#000000>http://www.a5d.com/SoftView/SoftView_673.asp</font></a><br><br>这个不用我多废话了，地球人都知道的经典，用C语言+WinSDK写成。<br><font color=red><br>Windows核心编程（Programming&nbsp;Applications&nbsp;for&nbsp;Microsoft&nbsp;Windows,&nbsp;Fourth&nbsp;Edition,&nbsp;Jeffrey&nbsp;Richter著）<br></font><br><a href="http://www.infoxa.com/asp/book/xxnr.asp?id=494" target=_blank><font color=#000000>http://www.infoxa.com/asp/book/xxnr.asp?id=494</font></a><br><br>内容较深的一本书，同样经典，如果能通读一遍，可以说基本上就掌握了Windows的精髓。<br><font color=red><br>Win32&nbsp;ASM&nbsp;Tutorial&nbsp;Resource&nbsp;Kit<br></font><br><a href="http://www.pediy.com/document/Win32ASMTRK.rar" target=_blank><font color=#000000>http://www.pediy.com/document/Win32ASMTRK.rar</font></a>（解压密码：dREAMtHEATER）<br><br>dREAMtHEATER收集的WIN32ASM教程，内容很全，包括32位汇编的基础知识，Iczelion的经典教程中英文版，罗云彬的32位汇编教程，还有PE格式和VxD的一些内容。<br><font color=red><br>Windows环境下32位汇编语言程序设计（罗云彬著）<br><a href="http://www.infoxa.com/asp/book/xxnr.asp?id=2243" target=_blank><font color=#000000>http://www.infoxa.com/asp/book/xxnr.asp?id=2243</font></a><br></font><br>汇编语言版的Programmin&nbsp;Windows&nbsp;<img class=inlineimg title=微笑 alt="" src="http://bbs.pediy.com/images/smilies/smile.gif" border=0>，可以与上面Iczelion的教程相互参照着学习。<br><font color=blue><br>=======================<br>程序设计语言类<br>=======================<br></font><br><font color=red><br>C语言程序设计（The&nbsp;C&nbsp;Programming&nbsp;Language&nbsp;(2nd&nbsp;Edition),&nbsp;Brian&nbsp;W.Kernighan&nbsp;&amp;&nbsp;Dennis&nbsp;M.Ritchie著）<br></font><br>作者是C语言和UNIX系统的发明人<img class=inlineimg title=124.gif alt="" src="http://bbs.pediy.com/images/smilies/124.gif" border=0>，这一本书是如此经典，以至于两位作者名字的缩写&nbsp;K&amp;R&nbsp;成了一个专有名词，以至于书里的"Hello,World"这个简单的句子被无数人用无数种程序语言写出来。很薄的一本书，却成了一个不朽的传奇。个人看法，学好C语言，这一本小书足矣。<br><font color=red><br>C++语言程序设计（The&nbsp;C++&nbsp;Programming&nbsp;Language&nbsp;(Special&nbsp;Editon),Bjarne&nbsp;Stroustrup著）<br></font><br>作者是C++语言的发明人，这本书之于C++就好比上本书之于C，不同的是这本书巨厚无比，毕竟C++复杂了太多太多。这本书介绍到了C++的方方面面，巨细无遗，毕竟是作者发明的么<img class=inlineimg title=使眼色 alt="" src="http://bbs.pediy.com/images/smilies/wink.gif" border=0>，不过我只看了几章就晕得受不了了。<img class=inlineimg title=伤心 alt="" src="http://bbs.pediy.com/images/smilies/confused.gif" border=0><br>btw:关于C++的好书还有很多，如<font color=red>&lt;&lt;&nbsp;C++&nbsp;Primer&nbsp;&gt;&gt;,&nbsp;&lt;&lt;&nbsp;Thinking&nbsp;in&nbsp;C++&nbsp;&gt;&gt;,&nbsp;&lt;&lt;&nbsp;Essential&nbsp;C++&nbsp;&gt;&gt;、&lt;&lt;&nbsp;Effective&nbsp;C++&nbsp;&gt;&gt;</font>等等，因为我对C++不很感冒，这里不敢妄加评论，请大家多补充。<br>再btw:对Java,&nbsp;.Net,&nbsp;Python这些新东东（Java好像也不新了吧，看来是我老了<img class=inlineimg title=伤心 alt="" src="http://bbs.pediy.com/images/smilies/confused.gif" border=0>）了解不是很多，也不敢乱写，同样请各位补充。<br><font color=blue><br>=======================<br>面用对象WINDOWS编程类<br>=======================<br></font><br>也不知道这么说合适不合适，总之就是像MFC，VCL之类的东东啦。这类图书大概是最多最杂的了，像什么XX从入门到精通啦，XX编程宝典啦，&nbsp;XX编程100例啦&#8230;&#8230;鱼龙混杂，泥沙俱下，也说不出哪个是经典。这里只选出几本有一定深度的，大家基本公认的好书。<br><font color=red><br>深入浅出MFC（第二版）（侯捷著）<br></font><br>侯捷网站:<a href="http://jjhou.csdn.net/" target=_blank><font color=#000000>http://jjhou.csdn.net/</font></a><br>关于侯先生写的和译的书，赞的人很多，骂的人也有，我是很推荐这本书的，虽然我不喜欢MFC，只硬着头皮看了前几章。感觉如果能通读下来，可以试着自己架一个类库了，呵呵。需要注意的是，读这本书先要有一定的SDK编程的基础，这本书不是教你如何用VC写程序的，好像有许多人不明白这一点，所以来骂侯先生，如果你只想快点用VC写个程序出来，建议去看看《21天VC++无师自通》之类的书。<img class=inlineimg title=尴尬 alt="" src="http://bbs.pediy.com/images/smilies/redface.gif" border=0><br>btw:侯先生的网站上有很多有趣的东东，顺便推荐一下。<br><font color=red><br>Delphi源代码分析（周爱民著）<br></font><br>我只在很早之前玩过Delphi，水平就是只知道Form上放几个Button，Edit，双击两下就开始写代码<img class=inlineimg title=伤心 alt="" src="http://bbs.pediy.com/images/smilies/confused.gif" border=0>，因为以前学过Pascal，看着语法很熟悉，玩得不亦乐乎，什么也不管，N久以后才知道有Object&nbsp;Pascal这回事，汗&#8230;&#8230;因为N多大牛推荐这本书，所以我也推荐一下，虽然里面东西基本都不懂<img class=inlineimg title=恐怖! alt="" src="http://bbs.pediy.com/images/smilies/eek.gif" border=0>。同样，这本书也不是教你如何画个窗口摆个控件的，那样的书遍地都是&#8230;&#8230;<br><font color=blue><br>=======================<br>数据结构与算法类<br>=======================<br></font><br>算法、数据结构，这是计算机程序的灵魂所在。下面介绍的书可以在<a href="http://lib.verycd.com/2004/12/16/0000031024.html" target=_blank><font color=#000000>http://lib.verycd.com/2004/12/16/0000031024.html</font></a>找到，而且那里有更详细的评论，强烈推荐！<br><font color=red><br>Introduction&nbsp;to&nbsp;Algorightms&nbsp;（算法导论，Thomas.H.Cormen等著）<br></font><br>此书简称CLRS（四位作者名字的缩写），被人们称做&#8220;计算机算法的圣经&#8221;绝不为过，是ACM竞赛的必读书，影印版由高等教育出版社出版，共1180页，厚度约五公分<img class=inlineimg title=伤心 alt="" src="http://bbs.pediy.com/images/smilies/confused.gif" border=0>虽然书很厚而且是英文，但是由于大师深入浅出的讲解，反而很好读懂，有时候我学一个算法，看相关中文书看得一头雾水，翻翻这本书却能豁然开朗。<br><font color=red><br>The&nbsp;Art&nbsp;of&nbsp;Computer&nbsp;Programming&nbsp;vol1,2,3（计算机程序设计艺术I-III卷，Donald.E.Knuth著）<br></font><br>简称TAOCP，经典中的经典，名气可能比上一本书还大，此系列书原计划出七卷，目前为止只出版了三卷，已经被评为20世纪最重要的20部著作之一。因为里面用一种奇怪的程序语言写成，而且只出了三卷，内容没有CLRS全面，这套我没有买，只在图书馆里翻翻（有中译本），但绝对是值得一看的好书。<br><font color=red><br>Concrete&nbsp;Mathematics&nbsp;A&nbsp;Foundation&nbsp;for&nbsp;Computer&nbsp;Science&nbsp;（具体数学，Donald.E.Knuth&nbsp;&amp;&nbsp;Ronald&nbsp;L.Graham著）<br></font><br>同样是ACM竞赛必读书之一，几乎包含了所有计算机科学里涉及到的数学问题，里面有众多的经典问题与经典解法，对开拓人的数学思路有极大的帮助。看这书给我的感觉是，如果你能把每章后面所有的习题都解出来，估计离图灵奖也不远了<img class=inlineimg title=恐怖! alt="" src="http://bbs.pediy.com/images/smilies/eek.gif" border=0>&nbsp;<br><font color=blue><br>=======================<br>关于编程竞赛<br>=======================<br></font><br>下面是几个比较大的在线提交系统（Online&nbsp;Judge）里面有大量历年的竞赛题目，注册一个ID，然后用自己熟悉的语言（一般有Pascal/C/C++/Java）写好源代码提交即可，会实时返回信息告诉你是否正确。采用黑箱测试，系统里有一套标准的输入输出数据（对外保密，而且通常数据很多很怪），你的程序的输出和标准输出完全符合即可。常见的返回信息有AC（Accepted，通过）WA（Wrong&nbsp;Answer，输出有错误）TLE（Time&nbsp;Limit&nbsp;Exceeded，超时）MLE（Memory&nbsp;Limit&nbsp;Exceeded，内存溢出）RE（Runtime&nbsp;Error，发生实时错误）等，只有AC了才算做对一题。这里只是一个简要介绍，请大家在做题时先看看各网站上的FAQ，Enjoy&nbsp;it~~~<br><font color=red><br>浙江大学&nbsp;Online&nbsp;Judge（ZOJ）<a href="http://acm.zju.edu.cn/" target=_blank><font color=#000000>http://acm.zju.edu.cn</font></a><br></font><br>国内最早也是最有名气的OJ，有很多高手在上面做题。特点是数据比较刁钻，经常会有你想不到的边界数据，很能考验思维的全面性，现在我主要在这个OJ上做题<br><font color=red><br>北京大学&nbsp;Online&nbsp;Judge（POJ）<a href="http://acm.pku.edu.cn/JudgeOnline/" target=_blank><font color=#000000>http://acm.pku.edu.cn/JudgeOnline/</font></a></font><br><br>建立较晚，但题目加得很快，现在题数和ZOJ不相上下，特点是举行在线比赛比较多，数据比ZOJ上的要弱，有时候同样的题同样的程序，在ZOJ上WA，在POJ上就能AC<br><font color=red><br>同济大学&nbsp;Online&nbsp;Judge&nbsp;<a href="http://acm.tongji.edu.cn/index.php" target=_blank><font color=#000000>http://acm.tongji.edu.cn/index.php</font></a><br></font><br>这个OJ题数上不能与上两个相比，推荐这个OJ的原因是它是中文的，这对很多对英文不太感冒的兄弟是个好消息吧。它也因此吸引了众多高中的OIer，毕竟他们的英文还差一些呵呵，上面的题目也更偏向高中的信息学竞赛一些。<br><font color=red><br>西班牙Valladolid大学&nbsp;Online&nbsp;Judge（UVA）<a href="http://online-judge.uva.es/problemset/" target=_blank><font color=#000000>http://online-judge.uva.es/problemset/</font></a><br></font><br>世界上最大最有名的OJ，题目巨多而且巨杂，数据也很刁钻，全世界的顶尖高手都在上面。据说如果你能在UVA上AC一千道题以上，就尽管向IBM、微软什么的发简历吧，绝对不会让你失望的。<img class=inlineimg title=狂笑 alt="" src="http://bbs.pediy.com/images/smilies/biggrin.gif" border=0><br><font color=red><br>俄罗斯Ural立大学&nbsp;Online&nbsp;Judge（URAL）<a href="http://acm.timus.ru/" target=_blank><font color=#000000>http://acm.timus.ru/</font></a><br></font><br>也是一个老牌的OJ，题目不多，但题题经典，我在高中的时候就在这上面做题的。&nbsp;<br><font color=red><br>UsacoGate&nbsp;Online&nbsp;Judge（USACO）<a href="http://ace.delos.com/usacogate" target=_blank><font color=#000000>http://ace.delos.com/usacogate</font></a><br></font><br>全美计算机奥林匹克竞赛（USACO）的训练网站，特点是做完一关才能继续往下做，与前面的OJ不同的是测试数据可以看到，并且做对后可以看标准解答，所以如果大家刚开始的时候在上面那些OJ上总WA却找不到原因的话，可以试着来这里做做，看看测试数据一般是从什么地方阴你的。<img class=inlineimg title=狂笑 alt="" src="http://bbs.pediy.com/images/smilies/biggrin.gif" border=0></div>
<img src ="http://www.cppblog.com/larryliuqing/aggbug/33897.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/larryliuqing/" target="_blank">刘远清</a> 2007-10-10 14:18 <a href="http://www.cppblog.com/larryliuqing/archive/2007/10/10/33897.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IT人的饮食</title><link>http://www.cppblog.com/larryliuqing/archive/2007/10/08/33751.html</link><dc:creator>刘远清</dc:creator><author>刘远清</author><pubDate>Mon, 08 Oct 2007 04:36:00 GMT</pubDate><guid>http://www.cppblog.com/larryliuqing/archive/2007/10/08/33751.html</guid><wfw:comment>http://www.cppblog.com/larryliuqing/comments/33751.html</wfw:comment><comments>http://www.cppblog.com/larryliuqing/archive/2007/10/08/33751.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/larryliuqing/comments/commentRss/33751.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/larryliuqing/services/trackbacks/33751.html</trackback:ping><description><![CDATA[电脑操作者常会感到眼睛疲劳、肩酸背疼。那么，电脑操作者如何避免患上职业病呢？专家建议应合理膳食。<br><br>1、多吃高蛋白的食物。蛋白质是人体细胞的&#8220;灵魂&#8221;，电脑操作者应多吃瘦猪肉、牛肉、羊肉、鸡、鸭、鱼及豆制品，尤其要多吃豆类食品。<br><br>2、多吃些含磷脂高的食物。这些食品是大脑的&#8220;能原&#8221;之一，蛋黄、虾、核桃、牡蛎、乌贼、银鱼、青鱼中都含有较高的磷脂。<br><br>3、多吃些健目食物，应多吃胡萝卜、白菜、豆芽、豆腐、红枣、橘子以及牛奶、鸡蛋、动物肝脏、瘦肉等食物，补充人体内维生素A和蛋白质。<br><br>4、多饮茶，防止视力衰退和恢复视力，并有抗辐射的作用，茶中富含的茶多芬（50％）和脂多糖等可以吸附和捕捉放射性物质并与其结合后排除体外，减少电脑荧光屏射线的&nbsp;&nbsp;&nbsp;辐射危害。枸杞菊茶对保护视力也有很在好处。<br>
<img src ="http://www.cppblog.com/larryliuqing/aggbug/33751.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/larryliuqing/" target="_blank">刘远清</a> 2007-10-08 12:36 <a href="http://www.cppblog.com/larryliuqing/archive/2007/10/08/33751.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[顶]设计C++类和接口的原则</title><link>http://www.cppblog.com/larryliuqing/archive/2007/09/29/33203.html</link><dc:creator>刘远清</dc:creator><author>刘远清</author><pubDate>Sat, 29 Sep 2007 08:51:00 GMT</pubDate><guid>http://www.cppblog.com/larryliuqing/archive/2007/09/29/33203.html</guid><wfw:comment>http://www.cppblog.com/larryliuqing/comments/33203.html</wfw:comment><comments>http://www.cppblog.com/larryliuqing/archive/2007/09/29/33203.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/larryliuqing/comments/commentRss/33203.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/larryliuqing/services/trackbacks/33203.html</trackback:ping><description><![CDATA[<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;介绍一部分类和接口的高质量设计的准则。这些准则不但应该保证设计并且实现的类或者接口本身有高质量代码，而且更重要的是在工业领域应该尽可能的使代码的更新和维护不影响客户的活动，主要也就是保持二进制代码兼容(binary&nbsp;compatibility)和源代码兼容(source&nbsp;compatibility)。我希望这些准则能帮助刚从学校进入工业领域的朋友尽快适应更高标准的编程要求，尽快提升自己的设计能力。&nbsp; <br><br>　　文中以C++类的设计为讨论范围。 <br><br><strong>　</strong>　<strong>总提</strong> <br><br>　　面向对象编程对于产出高质量，易维护的代码是非常有帮助的。面向对象编程的概念构建于三个基本特征之上：封装，继承，多态。在C++中，class是面向对象编程概念的核心和具体形式。class通过私有成员体现&#8220;封装&#8221;，通过直接继承或者组合体现&#8220;继承&#8221;，通过虚函数和动态绑定(dynamic&nbsp;binding)体现&#8220;多态&#8221;。class的设计质量直接决定了整个系统的质量。 <br><br>　　从整体功能层面谈class设计，有这么三条原则： <br><br>　　<strong>&#183;单一功能原则(Single&nbsp;Responsibility&nbsp;Principle)</strong> <br><br>　　一个class就其整体应该只提供单一的服务。如果一个class提供多样的服务，那么就应该把它拆分，反之，如果一个在概念上单一的功能却由几个class负责，这几个class应该合并。 <br><br>　　<strong>&#183;开放/封闭原则(Open/Close&nbsp;Principle)</strong> <br><br>　　一个设计并实现好的class，应该对扩充的动作开放，而对修改的动作封闭。也就是说，这个class应该是允许扩充的，但不允许修改。如果需要功能上的扩充，一般来说应该通过添加新类实现，而不是修改原类的代码。添加新类不单可以通过直接继承，也可以通过组合。 <br><br>　　<strong>&#183;最小惊讶原理(Least&nbsp;Surprise&nbsp;Principle)</strong> <br><br>　　在重载函数，或者子类实现父类虚函数时，应该基本维持函数原来所期望的功能。比如： <br><br>
<table style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellSpacing=0 cellPadding=6 width="95%" align=center border=0>
    <tbody>
        <tr>
            <td style="WORD-WRAP: break-word" bgColor=#fdfddf><font style="FONT-WEIGHT: bold; COLOR: #990000">以下是代码片段：</font><br>class&nbsp;Pet&nbsp;{&nbsp; <br>　public:&nbsp; <br>　　virtual&nbsp;Talk()&nbsp;=&nbsp;0;&nbsp; <br>};&nbsp; <br><br>class&nbsp;Cat&nbsp;:&nbsp;public&nbsp;Pet&nbsp;{&nbsp; <br>　public:&nbsp; <br>　　void&nbsp;Talk()&nbsp;{&nbsp;cout&nbsp;&lt;&lt;&nbsp;"miao";&nbsp;}&nbsp; <br>};&nbsp; <br><br>class&nbsp;Dog&nbsp;:&nbsp;public&nbsp;Pet&nbsp;{&nbsp; <br>　public:&nbsp; <br>　　void&nbsp;Talk()&nbsp;{&nbsp;BiteOwner();&nbsp;}&nbsp; <br>};&nbsp;</td>
        </tr>
    </tbody>
</table>
　　class&nbsp;Dog&nbsp;在实现虚函数Talk的时候，没有像我们期望的那样输出狗吠声，而是咬起主人来了。这是应该避免的。 <br><br><strong>　　接口和实现</strong> <br><br>　　在系统中，观察一个class有两个角度，从外部或者用户角度我们看到的是接口，从内部我们看到的是实现。因为系统肯定要不断修改，因此实现免不了不停的变化，但是接口又被要求尽量保持稳定。这两者的矛盾必须通过良好的设计尽量避免，基本原则就是将实现细节与接口隔离。下面列出几条比较具体点的： <br><br>　　&#183;接口的设计保持最小而完整 <br><br>　　精简接口函数个数，使每一个函数有代表性，函数功能恰好覆盖class的职能。一个最小的接口可以使维护简单，增加潜在的代码重用性，减少客户的迷惑，并且也可以缩小头文件长度和编译时间。当改进函数时，应该用类似函数名实现改进而保留原函数，代码注释里应该有相应的说明。可以增加新函数，但不能删除旧函数。 <br><br>　　&#183;成员变量应该都为私有 <br><br>　　显而易见，public变量破坏封装性以及接口和实现的分离；protected变量也可能使客户编写继承类而依赖于父类的实现细节。 <br><br>　　&#183;避免函数返回成员变量的指针或引用 <br><br>　　这么做也会使客户代码依赖于实现细节。 <br><br>　　&#183;考虑是否禁用编译器缺省产生的函数 <br><br>　　这些函数包括：复制构造函数，赋值操作符(operator&nbsp;=)。如果我们不打算定义自己的版本而不禁用默认版本的话，可能使客户代码在不注意的情况下调用这些函数。当实现发生改动时就可能引起问题，比如class多了一个heap&nbsp;memory指针。如果我们允许对象拷贝，比较稳妥的方法是禁用它们，而定义一个专门的clone()函数。 <br><br><strong>　　兼容性(compatibility)</strong> <br><br>　　不用说，兼容性是非常重要的。Intel和Microsoft之所以如此成功，其中一个重要方面就是他们的产品，不管是硬件还是软件，都做到了很好的兼容老产品。代码的兼容也是如此。难以想象，如果客户依赖于你的library产品，而要因为你的产品的更新而不断的重写他的代码，他还会继续用你的产品。 <br><br>　　代码兼容可以简单分为二进制兼容和源代码兼容。二进制兼容也就是说，客户的已编译代码可以在不用重新编译的情况下，直接使用你的不同版本的已编译代码。源代码兼容就是，如果你的代码更新了，客户的代码不需要修改，只需要重新编译就可正常运行。在C++中，接口一般是由头文件和library二进制代码提供，因此，任何可能造成library代码和旧的头文件不一致的情况都可能破坏二进制兼容，因为客户代码必须和新的头文件重新编译一次。 <br><br>　　因此，遵循几条准则可以使你更轻松地解决兼容性问题： <br><br>　　&#183;不改变类的大小或者改变成员变量的顺序 <br><br>　　包括几个方面：不增加或减少成员变量；不修改成员变量类型；不改变成员变量的声明顺序；不改变虚函数的有无。显而易见，增加或减少成员变量会改变类的大小，并且需要更新头文件，从而可能造成与客户代码不兼容。类型的变化也可能引起类的大小的变化。成员变量的访问一般是由编译器按偏移量确定，顺序如果改变，偏移量也就会改变，破坏了二进制兼容。至于虚函数的有无，决定是否存在虚函数表指针，也就影响了类的大小和成员变量的顺序。 <br><br>　　&#183;不使用inline函数 <br><br>　　inline函数声明于头文件中，并且被编译于客户代码中，如果inline函数访问了private成员，该成员又改变了顺序，那么inline函数虚要被重新编译，破坏了二进制兼容。 <br><br>　　&#183;接口函数不使用虚函数 <br><br>　　虚函数的访问和成员变量类似，是通过虚函数表中的偏移。虚函数顺序的改变会影响偏移。因此，在条件允许时，应该避免使用public虚函数。比如： <br><br>
<table style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellSpacing=0 cellPadding=6 width="95%" align=center border=0>
    <tbody>
        <tr>
            <td style="WORD-WRAP: break-word" bgColor=#fdfddf><font style="FONT-WEIGHT: bold; COLOR: #990000">以下是代码片段：</font><br>class&nbsp;Picture&nbsp;{&nbsp; <br>　public:&nbsp; <br>　　virtual&nbsp;void&nbsp;Draw();&nbsp; <br>};&nbsp; <br><br>　　应该改为&nbsp; <br><br>class&nbsp;Picture&nbsp;{&nbsp; <br>　public:&nbsp; <br>　　void&nbsp;Draw();&nbsp; <br>　private:&nbsp; <br>　　virtual&nbsp;void&nbsp;DoDraw();&nbsp; <br>};&nbsp; <br><br>void&nbsp;Picture::Draw()&nbsp; <br>{&nbsp; <br>　DoDraw();&nbsp; <br>}&nbsp;</td>
        </tr>
    </tbody>
</table>
<br>　　&#183;不改变接口函数的顺序 <br><br>　　在很多嵌入式系统中，链接库通过输出函数表(exported&nbsp;function&nbsp;table)暴露接口以节省空间。此时，对接口函数的访问也是通过索引值进行，因此改变顺序也会破坏兼容性。 <br><br>　　&#183;避免使用函数缺省参数 <br><br>　　给函数形参设定缺省值可以方便客户，但是可能破坏兼容。缺省值随头文件给出，缺省值的改变也就会引起兼容问题。 <br>
<img src ="http://www.cppblog.com/larryliuqing/aggbug/33203.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/larryliuqing/" target="_blank">刘远清</a> 2007-09-29 16:51 <a href="http://www.cppblog.com/larryliuqing/archive/2007/09/29/33203.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开发宝典：[定]程序开发新手入门之D语言</title><link>http://www.cppblog.com/larryliuqing/archive/2007/09/26/32909.html</link><dc:creator>刘远清</dc:creator><author>刘远清</author><pubDate>Wed, 26 Sep 2007 06:33:00 GMT</pubDate><guid>http://www.cppblog.com/larryliuqing/archive/2007/09/26/32909.html</guid><wfw:comment>http://www.cppblog.com/larryliuqing/comments/32909.html</wfw:comment><comments>http://www.cppblog.com/larryliuqing/archive/2007/09/26/32909.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/larryliuqing/comments/commentRss/32909.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/larryliuqing/services/trackbacks/32909.html</trackback:ping><description><![CDATA[<h1 align=center><span>开发宝典：程序开发新手入门之D语言</span></h1>
<h1 align=center><span>2007-09-25 来自：conanpaul&nbsp;&nbsp;[</span><a href="http://sd.csdn.net/page/88c42869-82a2-4d7f-b21d-cafaec7baacd#">收藏到我的网摘</a><span>]</span></h1>
<h2 align=justify>[编者按]D 语言既有 C 语言的强大威力，又有 Python 和 Ruby 的开发效率。它是一种集废料收集、手工内存操作、契约式设计、高级模板技术、内嵌汇编、内置单元测试、Mixin 风格多继承、类 Java 包管理机制、内置同步机制、内建运行时信息的系统级编程语言。有很多人可能还对D语言不是非常了解，下面我们从基础开始。</h2>
<h2 align=center><br><span style="FONT-SIZE: 18pt; COLOR: #100000">D语言认识篇<br></h2>
</span>
<h2 align=center>
<hr>
</h2>
<h2 align=left><br><a href="http://blog.csdn.net/uframer/archive/2005/02/03/279661.aspx">语言概览（一）</a></h2>
<h2 align=left>D 是一种通用的系统和应用编程语言。它是比 C++ 更高级的语言，同时还保持了生成高效代码以及直接访问操作系统API和硬件的能力。D 很适合于编写从中等规模到那些由团队合作完成、数百万行代码规模的各种程序。D 易于学习，为编程者提供了很多便利，并且适用各种野心勃勃的编译器优化技术。<br><br><a href="http://blog.csdn.net/uframer/archive/2005/02/03/279697.aspx">D语言概览（二）</a><br>关联数组是索引可以为任意类型的数组，不像普通数组那样必须使用整数作为索引。本质上，关联数组就是散列表。关联数组使构建快速、高效、无错的符号表变得容易了。</h2>
<h2 align=center>
<hr>
<br><span style="FONT-SIZE: 18pt; COLOR: #100000">D语言基础篇</span></h2>
<h2 align=center>
<hr>
</h2>
<h2 align=left><br><a href="http://blog.csdn.net/uframer/archive/2005/02/04/280926.aspx">D语言词法</a><br>在D中，词法分析独立于语法分析和语义分析。词法分析器将源文件分割成记号。词法描述了如何识别记号。D的词法被设计为适于高速扫描，它拥有最小的特殊规则集合，只有一遍翻译，这使得构造一个正确的扫描程序很容易。对于熟悉 C 和 C++ 的人来说，记号也很容易识别。<br><br><a href="http://blog.csdn.net/uframer/archive/2005/02/05/282101.aspx">D 语言中的模块（Module） </a><br>模块同源文件是一一对应的。模块名就是去掉路径和扩展名的文件名。模块自动为它的内容提供一个名字空间。<br><br><a href="http://blog.csdn.net/uframer/archive/2005/02/14/287293.aspx">D语言中的函数 </a><br>所有的非静态非私有函数都是虚函数。这听起来也许低效，但是因为D编译器在生成代码时知道所有的类层次结构，所有未被重载的函数可以被优化为非虚函数。事实上，因为 C++ 程序员倾向于&#8220;在不确定时，声明它为虚函数&#8221;，D 采用的方法&#8220;声明为虚函数除非我们能够证明它可以是非虚函数&#8221;造成的结果是产生更多更直接的函数调用。由重载非虚函数造成的 bug 也减少了。<br><br><a href="http://blog.csdn.net/uframer/archive/2005/02/06/283540.aspx">D语言中的类型</a> <br>基本数据类型、派生数据类型、用户定义数据类型、转换规则、委托<br><br><a href="http://blog.csdn.net/uframer/archive/2005/02/07/284026.aspx">D语言中的属性（Properties）</a><br>简要介绍了D语言中的属性（Properties）。&nbsp; <br></h2>
<h2 align=center>
<hr>
</h2>
<h2 align=center><br><span style="FONT-SIZE: 18pt; COLOR: #000000">D语言对比</span></h2>
<h2 align=center>
<hr>
</h2>
<h2 align=left><a href="http://blog.csdn.net/uframer/archive/2005/02/05/282095.aspx">D vs 其他语言</a><br>D 同其他经常提到的语言在各个特征上的粗略的比较。尽管各个语言的标准库中也提供了很多功能，但这张表格只考虑内建到语言核心中的特征。我们只考虑官方的标准特征，不考虑被提议的特征、测试版的特征或者非标准的扩展特征。而且，如同所有其他的语言比较一样，提到什么特征、忽略什么特征以及我对这些特征的解释都是带有偏向性的。</h2>
<img src ="http://www.cppblog.com/larryliuqing/aggbug/32909.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/larryliuqing/" target="_blank">刘远清</a> 2007-09-26 14:33 <a href="http://www.cppblog.com/larryliuqing/archive/2007/09/26/32909.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[顶]Log4cpp 中的跨平台类库     选择自 jacklondon 的 Blog </title><link>http://www.cppblog.com/larryliuqing/archive/2007/09/24/32793.html</link><dc:creator>刘远清</dc:creator><author>刘远清</author><pubDate>Mon, 24 Sep 2007 09:26:00 GMT</pubDate><guid>http://www.cppblog.com/larryliuqing/archive/2007/09/24/32793.html</guid><wfw:comment>http://www.cppblog.com/larryliuqing/comments/32793.html</wfw:comment><comments>http://www.cppblog.com/larryliuqing/archive/2007/09/24/32793.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/larryliuqing/comments/commentRss/32793.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/larryliuqing/services/trackbacks/32793.html</trackback:ping><description><![CDATA[<span id=ArticleContent1_ArticleContent1_lblContent>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log4cpp 是 Log4J 的 C++ 移植版本，开放源代码并且完全免费。与 Log4J 能够跨平台一样，Log4cpp 也致力于写出跨平台的 C++ 程序。Log4cpp 主要是用于 C++ 程序中写 log 文件，与此同时，Log4cpp 中有很多有用的类库，对于写跨平台 C++ 程序的人来说，可以直接拿来用，或者作为自己写跨平台类的参考。
<p>Log4cpp 中的跨平台类库有明显的 Java 痕迹，比如 Class、Object 、Loader、Locale 等类。 Log4cpp 中的类都可以根据类名 new 出一个 instance，其实现的方式和 MFC 如出一辙：通过 C++ 强大的宏来实现。</p>
<p>Log4cpp 中的跨平台类库主要有: </p>
<p><strong>信号类</strong>：Condition（broadcast，signal，wait），CriticalSection（lock，unlock），WaitAccess，Event（set，reset，wait），Mutex（lock，unlock），Semaphore（wait，tryWait，post）</p>
<p><strong>网络类</strong>：InetAddress，Socket，ServerSocket，DatagramSocket，SocketInputStream，SocketOutputStream</p>
<p><strong>日期类</strong>：DateFormat，DateTimeDateFormat，System（currentTimeMillis）</p>
<p><strong>文件类</strong>：FileWatchdog（doOnChange）</p>
<p><strong>内存操作类</strong>：基于引用计数机制的智能指针 ObjectPtrT</p>
<p><strong>字符串操作类</strong>：StrictMath，StringHelper（toUpperCase，toLowerCase，trim，equalsIgnoreCase，endsWith，format），StringTokenizer</p>
<p><strong>线程类</strong>：Thread（start，run，join）</p>
<p>使用以上的类不用考虑 thread handle, event handle, socket handle 之类的 handle 问题，所有这些文件已经被封装了。很好用，对不对？</p>
<p>不足之处在于没有 GUI 类。ANSI C++ 中对于目录等文件系统的处理功能较弱，这里面也没有目录处理类。另外 Socket 的 read(void * buf, size_t len) 不能设置 timeout，并且如果读取数据个数小于 len 那么 read 函数将一直堵塞，不太好用，很可惜。实际的使用上面，可以考虑做一个 Socket 子类，重写 read() 函数。</p>
<p>以下是一个示例程序，在 VC6 下编译运行通过，代码中有中文全角空格。 </p>
<pre><br>
#include "stdafx.h"</pre>
<p>#include &lt;log4cxx/helpers/thread.h&gt;<br>#include &lt;log4cxx/helpers/mutex.h&gt;<br>using namespace log4cxx;<br>using namespace log4cxx::helpers;</p>
<p>#include &lt;iostream&gt;<br>#include &lt;vector&gt;<br>using namespace std;</p>
<p>class MyOutputer{<br>private:<br>　　 Mutex m_outputLock;<br>public:<br>　　 void output(const char * msg){<br>　　　　 m_outputLock.lock();<br>　　　　 cout &lt;&lt; msg &lt;&lt; endl;<br>　　　　 m_outputLock.unlock();<br>　　 }<br>};</p>
<p>class MyThread : public Thread{<br>private:<br>　　 bool m_running;<br>　　 MyOutputer m_out;<br>public:<br>　　 MyThread(){m_running = false; }<br>　　 virtual ~MyThread(){}</p>
<p>　　virtual void run(){<br>　　　　 m_running = true;<br>　　　　 //循环十次，执行十秒<br>　　　　 for(int i =0; i &lt; 10 &amp;&amp; m_running; i++){<br>　　　　　　 m_out.output("MyThread running...");<br>　　　　　　 Thread::sleep(1000);<br>　　　　 }<br>　　 }</p>
<p>　　void stop(){<br>　　　　 m_running = false;<br>　　 }<br>};<br>typedef ObjectPtrT&lt;MyThread&gt; MyThreadPtr;</p>
<p>int main(int argc, char* argv[])<br>{<br>　　 MyOutputer out;<br>　　 out.output("main begin..."); </p>
<p>　　vector&lt;MyThreadPtr&gt; threadList;<br>　　 int count = 5, i=0;<br>　　 for(i =0; i&lt; count; i++){<br>　　　　 MyThread *pThread = new MyThread();<br>　　　　 threadList.push_back(pThread);<br>　　 }</p>
<p>　　out.output("main start all threads..."); <br>　　 for(i =0; i&lt; count; i++){<br>　　　　 MyThread *pThread = threadList[i];<br>　　　　 Thread::sleep(300);<br>　　　　 pThread-&gt;start();<br>　　 }</p>
<p>　　out.output("main sleep 4 seconds..."); <br>　　 //等 4 秒，停止所有线程<br>　　 Thread::sleep(4000);</p>
<p>　　out.output("main stop all threads..."); <br>　　 for(i =0; i&lt; count; i++){<br>　　　　 MyThread *pThread = threadList[i];<br>　　　　 pThread-&gt;stop();<br>　　 }<br>　　 <br>　　 out.output("main wait all threads..."); <br>　　 //等待所有线程中止<br>　　 for(i =0; i&lt; count; i++){<br>　　　　 MyThread *pThread = threadList[i];<br>　　　　 pThread-&gt;join();<br>　　 }</p>
<p>　　threadList.clear();<br>　　 //所有线程对象被自动销毁</p>
<p>　　out.output("main end"); </p>
<p>　　return 0;<br>}</p>
<p>&#160;</p>
</span>
<img src ="http://www.cppblog.com/larryliuqing/aggbug/32793.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/larryliuqing/" target="_blank">刘远清</a> 2007-09-24 17:26 <a href="http://www.cppblog.com/larryliuqing/archive/2007/09/24/32793.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[顶]编程是门技术，不是职业</title><link>http://www.cppblog.com/larryliuqing/archive/2007/09/24/32768.html</link><dc:creator>刘远清</dc:creator><author>刘远清</author><pubDate>Mon, 24 Sep 2007 03:04:00 GMT</pubDate><guid>http://www.cppblog.com/larryliuqing/archive/2007/09/24/32768.html</guid><wfw:comment>http://www.cppblog.com/larryliuqing/comments/32768.html</wfw:comment><comments>http://www.cppblog.com/larryliuqing/archive/2007/09/24/32768.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/larryliuqing/comments/commentRss/32768.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/larryliuqing/services/trackbacks/32768.html</trackback:ping><description><![CDATA[<div class=postText>编程是门技术，不是职业<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个人用心学习，好好钻研一下，三四年的积淀后，编程的技术都能达到成熟，这是个学习的过程。而此时才是一个人的职业生涯。有点像武术：&#8220;闭关修炼二十年...&#8221;。欲速则不达。一个人掌握了这些编程技术：操作系统、编译原理、CPU知识、数据结构等等的知识积淀，万物在我心。遇到问题，不是首先东拷贝一下代码、西改改代码，这是还没出山的表现。<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我个人觉得做一名软件工程师非常及其的象建筑师，编程好比工匠的技术，而设计却是建筑师的工作。&nbsp;<br><br>汇编、C是必须掌握的，不会走，不要跑！&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不掌握汇编和C，算不上一个软件工程师。.net、java的确很好用，但那是后事，在此之前，请千万沉住气，好好学习一下汇编和C，结合这Windows操作系统，使用MASM和Visual&nbsp;C++作为开发工具。&nbsp;<br><br>理论与实践，一把双刃剑。&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我觉得，如果不懂操作系统原理，Windows用到再熟悉，也只能沉在应用的层次。不懂编译原理，VC用的在好，也只是浮在表层。&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;多看看实现源码，操作系统可以看2k、wrk、linux的；编译器的可以看看Lcc、fasm的。&nbsp;<br><br>十年磨一剑&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;为功利而学习，是走不远的。兴趣是最好的老师，它能够带你走过别人看来非常漫长艰辛的旅途。不要整天跟着世界转，尤其是微软这些公司。&nbsp; </div>
<img src ="http://www.cppblog.com/larryliuqing/aggbug/32768.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/larryliuqing/" target="_blank">刘远清</a> 2007-09-24 11:04 <a href="http://www.cppblog.com/larryliuqing/archive/2007/09/24/32768.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>