<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
 <channel>
  <title>just-study</title>
  <link>http://just-study.blogbus.com</link>
  <description><![CDATA[远离懒惰，努力去做，就算有错，孰能无过！]]></description>
  <generator> by blogbus.com </generator>
  <lastBuildDate>Mon, 16 Nov 2009 20:42:10 +0800</lastBuildDate>
  <image>
									<url>http://public.blogbus.com/profile/1/6/6/4331661/avatar_4331661_96.jpg</url>
									<title>just-study</title>
									<link>http://just-study.blogbus.com</link>
								</image>  <item>
   <title>打印店病毒感染解决方案---sandboxie</title>
   <description><![CDATA[<!--
 div.p { margin-top: 7pt;}
-->
 <!--
 td div.comp { margin-top: -0.6ex; margin-bottom: -1ex;}
 td div.comb { margin-top: -0.6ex; margin-bottom: -.6ex;}
 td div.hrcomp { line-height: 0.9; margin-top: -0.8ex; margin-bottom: -1ex;}
 td div.norm {line-height:normal;}
 span.roman {font-family: serif; font-style: normal; font-weight: normal;} 
 span.overacc2 {position: relative;  left: .8em; top: -1.2ex;}
 span.overacc1 {position: relative;  left: .6em; top: -1.2ex;}
-->
<h3 style="background-color:#99cc00"><a name="tth_sEc1">
1</a>&nbsp;&nbsp;情景</h3>
<p>
时间：校园招聘会期间<br />
地点：打印店<br />
事件：打印求职简历</p>
<p>
A：你U盘没毒吧。<br />
B：放心，没有病毒。刚格式化过来的。你系统没毒吧，听说打印店电脑上病毒都很多的。<br />
A：放心拉，我今天早上才Ghost重装系统的。<br />
A小心地右键点击打开资源管理器，找到我的U盘，打开，就问你要打印哪个哪个阿？<br />
B：还说你电脑没有病毒，你看，无缘无故多了好多exe文件，上当了。还有autorun.inf文件；<br />
A：不可能阿，早上才重装的系统，装的也是正版的杀毒软件，肯定是你U盘本身有毒；<br />
B：我还一个小时前才格式化U盘的。哎，认倒霉了！以后都不敢到打印店打印了。<br />
A一脸无辜的表情望着B；B一脸愤怒的表情瞪着A；
 </p>
<h3 style="background-color:#99cc00"><a name="tth_sEc2">
2</a>&nbsp;&nbsp;分析</h3>
<div class="p"><!----></div>
<p>
到打印店打印中毒是常有的事情，中招率80%以上，校园招聘期间我的U盘至少中了5次以上。不过还好，对于我来说，搞定这些
病毒是小case。对于那些听到病毒就色变的童鞋来说，中毒了就意味着重装系统！
</p>
<div class="p"><!----></div>
<p>
其实对于杀毒和防毒是存在很多误区的。
</p>
<ol type="1">
<li> 不断网就杀毒；
<div class="p"><!----></div>
</li>
<li> 操作系统不大补丁就杀毒；
<div class="p"><!----></div>
</li>
<li> 过分依赖闪电杀毒，而没有执行全盘扫描；
<div class="p"><!----></div>
</li>
<li> 有正版杀毒软件并不意味着百毒不侵；病毒库是否更新等等；
<div class="p"><!----></div>
</li>
<li> Ghost重装系统不意味着病毒消失了。如果病毒不在系统盘那么这招失效；
<div class="p"><!----></div>
</li>
<li> ...
<div class="p"><!----></div>
</li>
</ol>
<div class="p"><!----></div>
<h3 style="background-color:#99cc00"><a name="tth_sEc3">
3</a>&nbsp;&nbsp;方案</h3>
<p>
其实防毒与杀毒有时候真的很简单，这里要推荐一款防毒软件-sandboxie(沙盘)；
</p>
<dl>
 <dt><strong>sandboxie</strong></dt>
	<dd>
电脑就像一张纸，程序的运行与改动，就像将字写在纸上。而
Sandboxie就相当于在纸上放了块玻璃，程序的运行与改动就像写在了那块玻璃上，除去玻璃，纸上还是一点改变都没有的。Sandboxie就是相当
于在你要运行的程序与系统之间建立一个隔离层，当我们运行程序的时候，就会将程序直接调入该隔层中，此后，程序对系统所做的修改，都会被限制在这个隔离层
中，而不会真正地去触及系统。这样的话，就算电脑感染了病毒和木马，也不会对系统造成真正的伤害。</dd></dl>
<p style="text-align: center;"><img style="border: medium none ;" src="http://www.sandboxie.com/img/FrontPage/FrontPageAnimation.gif" alt="" /></p>
<p>上图中红色箭头表明了一个执行程序到硬盘的改变流向，标有hard disk(no sandbox)的盒子显示在正常情况下程序执行所发生的改变；标有hard disk(with sandbox)的盒子显示在'沙盘环境'下程序执行所发生的改变；上图中动画表明沙盘能够拦截这种改变，并且将这些改变孤立&lsquo;沙盘&rsquo;中(即图中的黄色矩形框);它同时表明把所有的改变组合起来使得一次删除所有的改变变得很简单。</p>
<p>
官网地址：http://www.sandboxie.com/
</p>
<div class="p"><!----></div>
<p>
在沙盘中运行的程序所产生的变化可以随时删除。可用来保护浏览网页时真实系统的安全，也可以用来清除上网、运行程序的痕迹，还可以用来测试软件，测试病毒等用途。即使在沙盘进程中下载的文件，也可以随着沙盘的清空而删除。
</p>
<div class="p"><!----></div>
<p>
具体软件下载以及教程我这里不说了，google下，现在网络世界信息过载，我就不添乱了。
</p>
<div class="p"><!----></div>
<p>
这款工具非常适合于打印店使用；安装后，右键单击U盘，点击"使用sandboxie打开..."，这样任何对U盘存储内容进行的修改都将随着沙盘的清空而删除！就是这么简单；
</p>
<div class="p"><!----></div>
<p>
其实sandboxie的用处很多，我这里只是针对打印店打印资料这一应用说了其中的一个用处。需要详细了解的可以移步到官网。
</p>
<div class="p"><!----></div>
<h3 style="background-color:#99cc00"><a name="tth_sEc4">
4</a>&nbsp;&nbsp;补充</h3>
<p>
关于防毒可以很简单，也可以很复杂。这里针对我平时的一些防毒经验再支几招:-)
</p>
<ol type="1">
<li> 关闭硬盘，U盘AutoRun功能；需要修改一项注册表；
<div class="p"><!----></div>
</li>
<li>  开启显示文件类型的扩展名；这样可以轻易看清楚一些伪装的可执行文件；
<div class="p"><!----></div>
</li>
<li>  打开显示隐藏文件选项；很多病毒是会隐身的；实在不行在dos命令下使用attrib命令；
<div class="p"><!----></div>
</li>
<li> 定期使用软件清理一些临时文件以及回收站，这也是病毒的藏身之地。我常用的垃圾清理工具是wywz；
<div class="p"><!----></div>
</li>
</ol>
<p>
好了，暂时就写这么多了。我对杀毒这么感兴趣，放弃签约金山软件真是亏了:-)</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/48145702.html">Gnome Terminator</a> 2009-10-11</div><div><a href="/logs/46148490.html">程序员常用软件清单-VIM篇</a> 2009-09-10</div><div><a href="/logs/45988285.html">程序员常用软件清单-编程篇</a> 2009-09-08</div><div><a href="/logs/44335609.html">C语言POSIX库中正则表达式函数存在内存泄漏？</a> 2009-08-16</div><div><a href="/logs/31492832.html">Xp安装共享打印机</a> 2008-11-18</div></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://just-study.blogbus.com/logs/51259607.html</link>
   <author>阿僵老卡</author>
   <pubDate>Fri, 13 Nov 2009 18:06:05 +0800</pubDate>
  </item>
  <item>
   <title>近期计划</title>
   <description><![CDATA[<!--
 div.p { margin-top: 7pt;}
-->
 <!--
 td div.comp { margin-top: -0.6ex; margin-bottom: -1ex;}
 td div.comb { margin-top: -0.6ex; margin-bottom: -.6ex;}
 td div.hrcomp { line-height: 0.9; margin-top: -0.8ex; margin-bottom: -1ex;}
 td div.norm {line-height:normal;}
 span.roman {font-family: serif; font-style: normal; font-weight: normal;} 
 span.overacc2 {position: relative;  left: .8em; top: -1.2ex;}
 span.overacc1 {position: relative;  left: .6em; top: -1.2ex;}
-->
<div class="p"><!----></div>
<p>
工作的事情已经基本定下来了，也不想再去找其他的拉。下一步的工作重心要转移到小论文上来。
</p>
<div class="p"><!----></div>
<p>
说到论文就头大，由于之前开题的方向(车载自组织网络下路由协议的改进)不想做了，得换方向；之前一直在指纹识别与三维立体显示器图像融合两个课题上面徘徊；第一个课题感觉太旧了，找不到好点子。而第二个课题比较有挑战性，国内相关的论文很少，但是比较感兴趣；
</p>
<div class="p"><!----></div>
<p>
现在决定攻克第二个课题------三维立体显示器图像融合算法研究；今天拿出之前写的代码，测试发现程序执行结果有问题，OMG，之前没有好好验证和测试，活该；
</p>
<div class="p"><!----></div>
<h3 style="background-color:#99cc00"><a name="tth_sEc1">
1</a>&nbsp;&nbsp;近期blog计划</h3>
<ol type="1">
<li> 软件清单系列只写了2篇，继续补上其他的；
<div class="p"><!----></div>
</li>
<li> 论文没有头绪，查阅文献，整理思路，也可以写一写。
<div class="p"><!----></div>
</li>
<li> 今年看了一些书，有兴趣写写相关的东西；
<div class="p"><!----></div>
</li>
</ol>
<div class="p"><!----></div>
<h3 style="background-color:#99cc00"><a name="tth_sEc2">
2</a>&nbsp;&nbsp;近期学习计划</h3>
<ol type="1">
<li> 了解下linux下集群sever开发；
<div class="p"><!----></div>
</li>
<li> 了解epoll；网络异步I/O；学习（unix网络编程.第二卷）一书；
<div class="p"><!----></div>
</li>
<li> 了解MySQL的SDK，配置等，以及FTP等协议；
<div class="p"><!----></div>
</li>
<li> 了解后台集群，数据挖掘及模型，分布式计算等；
<div class="p"><!----></div>
</li>
<li> 系统学习下LINUX，主要看一下LPI LINUX 认证方面的书；
<div class="p"><!----></div>
</li>
<li> 恶补下C++方面的知识；
<div class="p"><!----></div>
</li>
</ol>
<p>
以上这些学习计划与以后在公司工作有很大关系的，所以必须得努力学习一下。
</p>
<div class="p"><!----></div>
<p>
PS：其实我在blogbus是开了2个blog，一个写生活，一个写技术，所有这个blog名字为just-study；现在决定放弃第一个blog，实在没有时间打理；
以后就在just-study也写写生活相关的内容吧。</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/45738308.html">我是这样排版博客的</a> 2009-09-03</div><div><a href="/logs/44578858.html">vim+google code search</a> 2009-08-19</div><div><a href="/logs/42401119.html">QT无法定位程序输入点*于动态链接库 QtCore4.dll</a> 2009-07-15</div><div><a href="/logs/33715105.html">VC++动态库和静态库创建与使用</a> 2009-01-12</div><div><a href="/logs/23749212.html">面试华为第一轮就OUT</a> 2008-06-28</div></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://just-study.blogbus.com/logs/50916257.html</link>
   <author>阿僵老卡</author>
   <pubDate>Tue, 10 Nov 2009 21:19:25 +0800</pubDate>
  </item>
  <item>
   <title>找工作总结</title>
   <description><![CDATA[<!--
 div.p { margin-top: 7pt;}
-->
 <!--
 td div.comp { margin-top: -0.6ex; margin-bottom: -1ex;}
 td div.comb { margin-top: -0.6ex; margin-bottom: -.6ex;}
 td div.hrcomp { line-height: 0.9; margin-top: -0.8ex; margin-bottom: -1ex;}
 td div.norm {line-height:normal;}
 span.roman {font-family: serif; font-style: normal; font-weight: normal;} 
 span.overacc2 {position: relative;  left: .8em; top: -1.2ex;}
 span.overacc1 {position: relative;  left: .6em; top: -1.2ex;}
-->
<p>
  
  
  随着三方协议书签定完成，今年的找工作也随之结束。虽然关于薪酬方面公司要求不能透露，但是
我非常感谢'迅雷'给了我offer。真得很高兴！
</p>
<div class="p"><!----></div>
<p>
整个找工作比预想中的还顺利很多，但是也持续了一个多月，个中滋味只有经历过的人能体会得到。
所以特地写点东西总结一下。
</p>
<div class="p"><!----></div>
<h3 style="background-color:#99cc00"><a name="tth_sEc1">
1</a>&nbsp;&nbsp;经历</h3>
<h4><span style="color: #3366ff;"><a name="tth_sEc1.1">
1.1</a>&nbsp;&nbsp;前期</span></h4>
<p>
每天就是注册帐号，写简历，投简历，反复修改简历，注册的网站多了到后来帐号都给忘了。
印象最深的属投递中兴通信的简历。 由于网站太慢，我投了一个多星期才成功。
</p>
<div class="p"><!----></div>
<p>
来得最早的公司是广州周立功单片机有限公司，到最后一面的时候被鄙视了。
当时有八个人进入了软件方向的面试，最终好像一个都没有签，因为是研究生，而且还是一个不是很厉害的研究生，所以被鄙视了。
很厉害的研究生会去周立功单片机不?开玩笑。不过从那场招聘会上我还是收获了不少信心。
</p>
<div class="p"><!----></div>
<p>
九月份还有一场中联重科的招聘会，哎，不说了，被忽悠了。
</p>
<div class="p"><!----></div>
<h4><span style="color: #3366ff;"><a name="tth_sEc1.2">
1.2</a>&nbsp;&nbsp;后期</span></h4>
<p>
十月份是最忙的一个月，这个月里参加的招聘会有:三一重工(笔试被鄙视)，网易游戏(笔试被鄙视)，金山软件，迅雷，高阳通联(放弃初面)，广州本田(放弃初面)，深信服(止于初面)，中兴通信，格兰士(浪费简历);<br />
共拿到3个offer，分别是:金山软件，迅雷以及中兴通信；
</p>
<div class="p"><!----></div>
<p>
仔细算一下也不是很多，主要我还是选择性地投递简历，没有兴趣的公司基本没有投;在10月23号拿到迅雷offer之后除了中兴通信外其他的都放弃了。
</p>
<div class="p"><!----></div>
<p>
其中的过程就不细说了。
 </p>
<h3 style="background-color:#99cc00"><a name="tth_sEc2">
2</a>&nbsp;&nbsp;总结</h3>
<p>
网上的笔试经验和面试经验都已经泛滥成灾了。我就不添堵了。随便说几点我的感受。
</p>
<ol type="1">
<li>  要有自己的职业规划；到底要找什么类型的工作；要不然到后面公司多了就会很累的；
<div class="p"><!----></div>
</li>
<li>  要有一份能打动HR和面试官的简历；总得给人家一个招聘你的理由；
<div class="p"><!----></div>
</li>
<li>  我个人觉得面试与其说是一种博弈过程，还不如说是一种真诚交流与沟通；
<div class="p"><!----></div>
</li>
<li>  平时要多看书，多上网看一些技术blog；扩展自己的知识面；
<div class="p"><!----></div>
</li>
<li>  有失必有得；要调整好自己的心态；不管成功与失败，自信心不可以丢；
<div class="p"><!----></div>
</li>
</ol>
<div class="p"><!----></div>
<h3 style="background-color:#99cc00"><a name="tth_sEc3">
3</a>&nbsp;&nbsp;感谢</h3>
<p>
读研就是为了找到一份好工作，有很多人是这样想的。目前为止我认为我找到了。除了工作地点不是在长沙之外，我很满足这份offer。
</p>
<div class="p"><!----></div>
<p>
读了这么多年书，终于要走上社会；这么多年，父母的付出实在是太大了。培养一个研究生对于一个农村家庭来说是何其的艰巨。真的很感激我的父母；
我希望我是你们的骄傲；我也希望他们不要再为我操心忙碌了，要多注意保重身体；
</p>
<div class="p"><!----></div>
<p>
尽管找工作的时间只持续了一个多月，但是其中受到的挫折很多，感谢我丫头一直陪伴着我，为我解忧！
</p>
<div class="p"><!----></div>
<p>
还有我的导师徐成老师，以及一起为找工作而奋斗的实验室成员，室友；</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/48586140.html">google日历共享群发短信</a> 2009-10-17</div><div><a href="/logs/48097398.html">飞信免费订阅宣讲会信息</a> 2009-10-10</div><div><a href="/logs/46652852.html">MBTI职业性格测试(Psytopic特别版)</a> 2009-09-17</div><div><a href="/logs/21039093.html">内存详解（堆与栈）</a> 2008-05-17</div><div><a href="/logs/20885502.html">经典C语言100例之（二十二）</a> 2008-05-14</div></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://just-study.blogbus.com/logs/50911874.html</link>
   <author>阿僵老卡</author>
   <pubDate>Sat, 07 Nov 2009 21:10:17 +0800</pubDate>
  </item>
  <item>
   <title>google日历共享群发短信</title>
   <description><![CDATA[<p>PS：本篇blog不是用来教如何使用google日历，我相信很多人尝试下就会了，而且网上还有一些教程。主要目的是说明google日历有这么一个很好的应用！
  
 </p>
<h3 style="background-color:#99cc00"><a name="tth_sEc1">
1</a>&nbsp;&nbsp;注册</h3>
<p>
  之前以为google日历只能用gmail帐号绑定，今天发现，注册的时候发现没有这样的条款，从细微之处就可以判断出一个网站或服务的好坏，google的服务很多我都在用；注册步骤比较简单。详略。
  
 </p>
<p><a href="http://www.bababian.com/phoinfo/BFB2848DB8776E75C44839B303873B53DT" target="_blank">
</a></p>
<p><a href="http://www.bababian.com/phoinfo/BFB2848DB8776E75C44839B303873B53DT" target="_blank">
</a></p>
<p><a href="http://www.bababian.com/phoinfo/BFB2848DB8776E75C44839B303873B53DT" target="_blank"><img style="border:none;" src="http://photo2.bababian.com/upload1/20091017/BFB2848DB8776E75C44839B303873B53_500.jpg" alt="" /></a></p>
<h3 style="background-color:#99cc00"><a name="tth_sEc2">
2</a>&nbsp;&nbsp;短信设置</h3>
<p>
  进入google日历后点击右上角'设置'，再选择选择项'移动设置'；输入手机号码，得到验证码之后'确认'。这样只是具备了接受短信的条件，还需要在'日历'中设置'短信通知(sms)'提醒。
</p>
<div class="p"><!----></div>
<p>
  如果使用google日历仅限于个人使用，下面的步骤可以不用再看了。
  
 </p>
<p><a href="http://www.bababian.com/phoinfo/B3A5F838B4236DA74E0D90131EC2A5FEDT" target="_blank">
</a></p>
<p><a href="http://www.bababian.com/phoinfo/B3A5F838B4236DA74E0D90131EC2A5FEDT" target="_blank"><img style="border:none;" src="http://photo2.bababian.com/upload1/20091017/B3A5F838B4236DA74E0D90131EC2A5FE_500.jpg" alt="" /></a></p>
<h3 style="background-color:#99cc00"><a name="tth_sEc3">
3</a>&nbsp;&nbsp;团队日历</h3>
<p>
  新建'日历'，可以在里面找到'与特定人共享'选项，可以添加e-mail&lt;前提该帐号goole日历用户&gt;。如果新建'日历'完后还想添加
  '共享人'，当然也可以在左边'我的日历'下面点击'设置'，里面可以找到'添加用户'，而且可以设置共享人的权限；便于共同管理与编辑；
</p>
<div class="p"><!----></div>
<p>
  这一步设置后，google日历会发送e-mail到共享人；共享人在他自己的日历可以看到创建人共享后的日历。这样可以方便查看与编辑！
</p>
<p><a href="http://www.bababian.com/phoinfo/6102861DEDB2C79D3283D97E0FF6DCA1DT" target="_blank">
</a></p>
<p><a href="http://www.bababian.com/phoinfo/6102861DEDB2C79D3283D97E0FF6DCA1DT" target="_blank"><img style="border:none;" src="http://photo2.bababian.com/upload1/20091017/6102861DEDB2C79D3283D97E0FF6DCA1_500.jpg" alt="" /></a></p>
<div class="p"><!----></div>
<h3 style="background-color:#99cc00"><a name="tth_sEc4">
4</a>&nbsp;&nbsp;短信通知</h3>
<p>
之前以为'日历'由创建人设置短信通知后就不用了。但是实验后除了我别人就是接受不到短信，今天才发现需要每个人自行设置。现在想一下，只有这样设置才更
人性化。更自由化。网上有说google的短信通知业务不稳定，我今年一直用，基本没有出问题。免费的就不用追究这么多拉。 </p>
<p><a href="http://www.bababian.com/phoinfo/57B30EDA41478C1D2A479F07CF07000BDT" target="_blank">
</a></p>
<p><a href="http://www.bababian.com/phoinfo/57B30EDA41478C1D2A479F07CF07000BDT" target="_blank"><img style="border:none;" src="http://photo2.bababian.com/upload1/20091017/57B30EDA41478C1D2A479F07CF07000B_500.jpg" alt="" /></a></p>
<p>&nbsp;</p>
<h3 style="background-color:#99cc00"><a name="tth_sEc5">
5</a>&nbsp;&nbsp;应用</h3>
<p>
  最近整个实验室在开始忙找工作，每天都有招聘会，有些天还有很多场，简历每天都填写了不少。时间长了就可能忘了。如果把这个宣讲会时间写入google日历，然后再通过手机定时短信提醒岂不妙哉！目前已经在使用。个人觉得蛮爽；
</p>
<div class="p"><!----></div>
<p>
  设置共享，可以多个人共同编辑，谁知道有什么招聘会信息，只要举手之劳，就可以让大家都了解到。由于招聘信息铺天盖地，这样真的能帮我们节省时间，把握机遇！
</p>
<div class="p"><!----></div>
<p>
  设置提前1天提醒，每天晚上睡觉之前可以看一下第二天有哪些招聘会；
</p>
<div class="p"><!----></div>
<p>
  设置提前1小时提醒，万一忘了哪场招聘会，也许还能赶场。或许你不在电脑面前，或许你忘了宣讲会地点，或许你真的用得上google日历进行团队管理。</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/44781852.html">linux 命令行中英文翻译</a> 2009-08-21</div><div><a href="/logs/44702825.html">使用imagemagick的mogrify命令批处理照片脚本</a> 2009-08-20</div><div><a href="/logs/33710785.html">LINUX下静态/动态链接库的创建与使用</a> 2009-01-12</div><div><a href="/logs/33663555.html">软件安装日志-Gvim Cygwin Gimp</a> 2009-01-10</div><div><a href="/logs/31473516.html">为什么计算机采用二进制?</a> 2008-11-17</div></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://just-study.blogbus.com/logs/48586140.html</link>
   <author>阿僵老卡</author>
   <pubDate>Sat, 17 Oct 2009 16:29:31 +0800</pubDate>
  </item>
  <item>
   <title>Gnome Terminator</title>
   <description><![CDATA[<div class="p"><!----></div>
<h3 style="background-color: #99cc00"><a name="tth_sEc1">
1</a>&nbsp;&nbsp;Instruction</h3>
<p>
  Why do I want to use this software?Because I hope to be a Productive Linux User.
  
</p>
<dl>
 <dt><strong>Terminator</strong></dt>
	<dd> An application
that provides lots of terminals in a single window, saving valuable
screen space otherwise wasted on window decorations and not quite being
able to fill the screen with terminals. It replaces xterm, rxvt, xwsh
and friends on X11 systems, GNOME Terminal, KDE's Konsole, Apple's
Terminal.app, and PuTTY on MS Windows.</dd>
</dl>
<p>
  做程序开发经常碰到的一个问题是开的窗口太多，有时候会把自己给弄晕，窗后之间的切换很浪费时间；我讨厌在linux下使用鼠标，鼠标有害效率，请远离！！！<br />
  现在有了Terminator，只需要花几分钟记住几个快捷键，工作效率可以提高不少。
</p>
<div class="p"><!----></div>
<h3 style="background-color: #99cc00"><a name="tth_sEc2">
2</a>&nbsp;&nbsp;Install</h3>
<p>
 If your linux's version is Ubuntu, it's so easy.just type the following command in the terminal:<br />
sudo apt-get install terminator
</p>
<div class="p"><!----></div>
<p>
 If you want to acquire more info, please visit the official website:<br />
 http://software.jessies.org/terminator/
 </p>
<h3 style="background-color: #99cc00"><a name="tth_sEc3">
3</a>&nbsp;&nbsp;Demo</h3>
<p><a href="http://www.bababian.com/phoinfo/87803AFA82E1E0A02481EE047F464F8EDT" target="_blank">
</a></p>
<p><a href="http://www.bababian.com/phoinfo/F715F58479929397F7B7ACEA994E297DDT" target="_blank"><img style="border:none;" src="http://photo2.bababian.com/upload1/20091011/F715F58479929397F7B7ACEA994E297D.jpg" alt="" /></a></p>
<p>&nbsp;</p>
<h3 style="background-color: #99cc00"><a name="tth_sEc4">
4</a>&nbsp;&nbsp;Usage</h3>
<p>
In this section,I just pick up some import tips for me.If you want to
get details,please type 'man terminator' after intalling in the
terminal.
</p>
<div class="p"><!----></div>
<p>
Considering there is  very little info on terminator  in chinese,so I will list it in chinese.
</p>
<ol type="1">
<li> CTRL+SHIFT+O/E 水平或者垂直新建一个窗口
<div class="p"><!----></div>
</li>
<li> CTRL+SHIFT + LEFT/RIGHT/UP/DOWN 左/右/上/下移动当前窗口
<div class="p"><!----></div>
</li>
<li> CTRL+SHIFT+s 显示/隐藏 scrollbar
<div class="p"><!----></div>
</li>
<li> CTRL+TAB/CTRL+SHIFT+TAB  移动到下/上一窗口
<div class="p"><!----></div>
</li>
<li> ALT+ LEFT/RIGHT/UP/DOWN 分别移动到当前窗口的左/右/上/下窗口
<div class="p"><!----></div>
</li>
<li> CTRL+SHIFT+W 关闭当前窗口
<div class="p"><!----></div>
</li>
<li> CTRL+SHIFT+Q 关闭当前程序
<div class="p"><!----></div>
</li>
<li> CTRL+SHIFT+X/Z 在所有窗口与当前窗口(最大化)之间进行切换
<div class="p"><!----></div>
</li>
<li> CTRL+SHIFT+T 创建新的Tab
<div class="p"><!----></div>
</li>
<li> CTRL+PageDown/PageUp 移动到下/上一Tab
<div class="p"><!----></div>
</li>
<li> CTRL+SHIFT+PageDown/PageUp 当前Tab与上/下一Tab交换前后位置
<div class="p"><!----></div>
</li>
<li> CTRL+Plus(+)/Minus(-) 增加/减少当前窗口的字号
<div class="p"><!----></div>
</li>
<li> CTRL+Zero(0) 还原成默认的字号
<div class="p"><!----></div>
</li>
<li> CTRL+SHIFT+G 清屏
<div class="p"><!----></div>
</li>
<li> F11 全屏/或者在启动程序的时候参数设置为 -f
<div class="p"><!----></div>
</li>
</ol>
<p>
The above shortcuts mostly are made up by CTRL and SHIFT.
</p>
<div class="p"><!----></div>
<h3 style="background-color: #99cc00"><a name="tth_sEc5">
5</a>&nbsp;&nbsp;After the words</h3>
<p>
I will use this tool-"Gnome Terminator" instead of Gnome Terminal in the future!</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/51259607.html">打印店病毒感染解决方案---sandboxie</a> 2009-11-13</div><div><a href="/logs/46148490.html">程序员常用软件清单-VIM篇</a> 2009-09-10</div><div><a href="/logs/45988285.html">程序员常用软件清单-编程篇</a> 2009-09-08</div><div><a href="/logs/44781852.html">linux 命令行中英文翻译</a> 2009-08-21</div><div><a href="/logs/20885484.html">经典C语言100例之（十六）</a> 2008-05-13</div></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://just-study.blogbus.com/logs/48145702.html</link>
   <author>阿僵老卡</author>
   <pubDate>Sun, 11 Oct 2009 18:35:49 +0800</pubDate>
  </item>
  <item>
   <title>飞信免费订阅宣讲会信息</title>
   <description><![CDATA[<!--
 div.p { margin-top: 7pt;}
-->
 <!--
 td div.comp { margin-top: -0.6ex; margin-bottom: -1ex;}
 td div.comb { margin-top: -0.6ex; margin-bottom: -.6ex;}
 td div.hrcomp { line-height: 0.9; margin-top: -0.8ex; margin-bottom: -1ex;}
 td div.norm {line-height:normal;}
 span.roman {font-family: serif; font-style: normal; font-weight: normal;} 
 span.overacc2 {position: relative;  left: .8em; top: -1.2ex;}
 span.overacc1 {position: relative;  left: .6em; top: -1.2ex;}
-->
<div class="p"><!----></div>
<h3 style="background-color:#99cc00"><a name="tth_sEc1">
1</a>&nbsp;&nbsp;发送短信的飞信命令</h3>
<p>
  这个程序主要基于邓东东开发的 libfetion 库,这个库不是开源的,但是作者提供了头文件和库文件，所以我们可以使用它的 API 来写一些自己的程序。
  本篇博客是基于Solrex Shuffling的"<a href="http://blog.solrex.cn/articles/diy-free-weather-forecast-sms.html" target="_blank">定制自己的免费天气预报短信</a>".
</p>
<div class="p"><!----></div>
<p>
  发送信息的源程序以及库文件在Solrex的blog中有下载。需要的可以向我索要khb.hnu@gmail.com
</p>
<div class="p"><!----></div>
<p>
  不过发现 Solrex 的源程序sendsms.cpp文件有一个地方存在内存泄漏；strdup函数的返回值是一个新字符串，该串由malloc申请，所以必须要程序员手动去free掉这个空间；否则会导致内存泄漏；为什么会存在这么危险的函数存在呢？
</p>
<div class="p"><!----></div>
<dl>
 <dt><strong>strdup</strong></dt>
	<dd>The strdup()
function returns a pointer to a new string which is a duplicate of the
strings. Memory for the new string is obtained with malloc(3), and can
be freed with free(3).<br />
      strdup() conforms to SVr4, 4.3BSD, POSIX.1-2001.</dd>
</dl>
<div class="p"><!----></div>
<p>
  同时，为了安全，我把飞信登录帐号和密码隐藏到源程序中。编译成可执行程序后是无法查看到的。
  
 </p>
<h3 style="background-color:#99cc00"><a name="tth_sEc2">
2</a>&nbsp;&nbsp;使用SHELL抓包</h3>
<pre>&nbsp;&nbsp;#!/bin/bash&nbsp;-x

&nbsp;&nbsp;SMS_USER="15874082100,158xxxxxxxx,138xxxxxxx"
&nbsp;&nbsp;URL="http://my.yingjiesheng.com/xuanjianghui_province_18.html"
&nbsp;&nbsp;FILENAME="yjs-xjh.txt"

&nbsp;&nbsp;get_html()
&nbsp;&nbsp;{
&nbsp;&nbsp;wget&nbsp;-nv&nbsp;-O&nbsp;$FILENAME&nbsp;$URL&nbsp;2&gt;&nbsp;/dev/null
&nbsp;&nbsp;}

&nbsp;&nbsp;parse_html()
&nbsp;&nbsp;{
&nbsp;&nbsp;#删除不必要的信息行
&nbsp;&nbsp;grep&nbsp;&nbsp;-v&nbsp;&nbsp;"查看"&nbsp;$FILENAME&nbsp;&gt;temp
&nbsp;&nbsp;grep&nbsp;&nbsp;-v&nbsp;&nbsp;"暂未开通"&nbsp;temp&nbsp;&gt;$FILENAME
&nbsp;&nbsp;grep&nbsp;&nbsp;-v&nbsp;&nbsp;"GA_googleFillSlot"&nbsp;$FILENAME&nbsp;&gt;temp
&nbsp;&nbsp;grep&nbsp;&nbsp;-v&nbsp;&nbsp;"加入手机提醒"&nbsp;temp&nbsp;&gt;$FILENAME
&nbsp;&nbsp;grep&nbsp;&nbsp;-v&nbsp;&nbsp;"最近更新"&nbsp;$FILENAME&nbsp;&gt;temp
&nbsp;&nbsp;mv&nbsp;&nbsp;temp&nbsp;$FILENAME

&nbsp;&nbsp;#delete&nbsp;\n
&nbsp;&nbsp;sed&nbsp;-nr&nbsp;-i&nbsp;&nbsp;'&nbsp;H;&nbsp;$&nbsp;{&nbsp;x;&nbsp;s/\n//g;&nbsp;p&nbsp;}'&nbsp;$FILENAME
&nbsp;&nbsp;#每一天的记录从新行开始
&nbsp;&nbsp;sed&nbsp;-i&nbsp;&nbsp;-e&nbsp;'s$\(&lt;img[^&lt;]\+clock.gif"&nbsp;/&gt;\)$\n\1$g'&nbsp;$FILENAME
&nbsp;&nbsp;#去除html中的标记符
&nbsp;&nbsp;sed&nbsp;-i&nbsp;&nbsp;-e&nbsp;'s/&lt;[^&lt;&gt;]\+&gt;//g'&nbsp;$FILENAME
&nbsp;&nbsp;#删除html中的换行符&amp;nbsp
&nbsp;&nbsp;sed&nbsp;-i&nbsp;-e&nbsp;'s/&amp;nbsp;//g'&nbsp;$FILENAME
&nbsp;&nbsp;#把每一条招聘记录从新行开始
&nbsp;&nbsp;sed&nbsp;-i&nbsp;-e&nbsp;'s/长沙\s/\n长沙/g'&nbsp;$FILENAME

&nbsp;&nbsp;#为节省字符数，连续多个tab转换成单个tab
&nbsp;&nbsp;sed&nbsp;-i&nbsp;-e&nbsp;'s/\t\+/\t/g'&nbsp;$FILENAME

&nbsp;&nbsp;#为节省字符数，删除行首和行尾的多余空格
&nbsp;&nbsp;sed&nbsp;-i&nbsp;-e&nbsp;'s/\s\+$//g'&nbsp;$FILENAME
&nbsp;&nbsp;sed&nbsp;-i&nbsp;-e&nbsp;'s/^\s\+//g'&nbsp;$FILENAME
&nbsp;&nbsp;#由于第1行与最后一行不是我们所需要的信息，可以删除；
&nbsp;&nbsp;sed&nbsp;-i&nbsp;-e&nbsp;'1d'&nbsp;$FILENAME
&nbsp;&nbsp;sed&nbsp;-i&nbsp;-e&nbsp;'$d'&nbsp;$FILENAME

&nbsp;&nbsp;#冗余信息
&nbsp;&nbsp;sed&nbsp;-i&nbsp;-e&nbsp;'s/长沙\t//g'&nbsp;$FILENAME

&nbsp;&nbsp;#获取当前星期
&nbsp;&nbsp;week=`env&nbsp;LANG=en_US.UTF-8&nbsp;date&nbsp;+%A`
&nbsp;&nbsp;if&nbsp;[[&nbsp;$week&nbsp;&nbsp;==&nbsp;"Saturday"&nbsp;]]&nbsp;;&nbsp;then
&nbsp;&nbsp;maxday=7;
&nbsp;&nbsp;else
&nbsp;&nbsp;maxday=0;
&nbsp;&nbsp;fi

&nbsp;&nbsp;for((i=0;i&lt;=30;i++))
&nbsp;&nbsp;do
&nbsp;&nbsp;result=`grep&nbsp;-n&nbsp;"：$i&nbsp;天"&nbsp;$FILENAME`
&nbsp;&nbsp;if&nbsp;[[&nbsp;$result&nbsp;!=&nbsp;''&nbsp;]];&nbsp;then
&nbsp;&nbsp;if&nbsp;[&nbsp;$i&nbsp;-gt&nbsp;$maxday&nbsp;]&nbsp;;&nbsp;then
&nbsp;&nbsp;break;
&nbsp;&nbsp;fi
&nbsp;&nbsp;fi
&nbsp;&nbsp;done

&nbsp;&nbsp;#求取最后的行号
&nbsp;&nbsp;echo&nbsp;$result&nbsp;&gt;temp
&nbsp;&nbsp;endno=$((`awk&nbsp;-F:&nbsp;'{print&nbsp;$1}'&nbsp;temp`))

&nbsp;&nbsp;if&nbsp;[&nbsp;$endno&nbsp;-gt&nbsp;2&nbsp;];then
&nbsp;&nbsp;#如果是星期天，则发送未来7天的宣讲会时间，并输出倒计时信息；
&nbsp;&nbsp;#否则，只输出当天的宣讲会时间;
&nbsp;&nbsp;if&nbsp;[[&nbsp;$week&nbsp;&nbsp;==&nbsp;"Saturday"&nbsp;]]&nbsp;;&nbsp;then
&nbsp;&nbsp;sed&nbsp;-i&nbsp;-e&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"1i\
&nbsp;&nbsp;今天是&nbsp;$week&nbsp;未来一周的宣讲会安排如下:"&nbsp;&nbsp;$FILENAME
&nbsp;&nbsp;sed&nbsp;&nbsp;-i&nbsp;-ne&nbsp;&nbsp;&nbsp;"1,$endno"p&nbsp;$FILENAME
&nbsp;&nbsp;else
&nbsp;&nbsp;sed&nbsp;-i&nbsp;-e&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"1a\
&nbsp;&nbsp;`date&nbsp;+%Y-%m-%d`($week)的宣讲会安排如下:"&nbsp;&nbsp;$FILENAME
&nbsp;&nbsp;sed&nbsp;&nbsp;-i&nbsp;-ne&nbsp;&nbsp;&nbsp;"2,$endno"p&nbsp;$FILENAME
&nbsp;&nbsp;fi

&nbsp;&nbsp;else
&nbsp;&nbsp;echo&nbsp;"今天没有宣讲会！"&nbsp;&gt;$FILENAME
&nbsp;&nbsp;fi
&nbsp;&nbsp;}

&nbsp;&nbsp;send_forcast()
&nbsp;&nbsp;{
&nbsp;&nbsp;#字符编码转换后通过飞信发送
&nbsp;&nbsp;iconv&nbsp;-f&nbsp;GB2312&nbsp;-t&nbsp;UTF8&nbsp;$FILENAME&nbsp;|&nbsp;sendsms&nbsp;-vl&nbsp;-t&nbsp;&nbsp;$SMS_USER
&nbsp;&nbsp;}

&nbsp;&nbsp;clear_html()
&nbsp;&nbsp;{
&nbsp;&nbsp;rm&nbsp;-f&nbsp;$FILENAME
&nbsp;&nbsp;rm&nbsp;-f&nbsp;temp
&nbsp;&nbsp;}

&nbsp;&nbsp;get_html
&nbsp;&nbsp;parse_html
&nbsp;&nbsp;send_forcast
&nbsp;&nbsp;#clear_html
&nbsp;&nbsp;
</pre>
<p>
  脚本里面注释很详细就不再唠叨。
</p>
<div class="p"><!----></div>
<p>
  上面的脚本虽然看起来简单，但是我还是花了一下午时间才把所需要的信息包从网页中抓取出来。碰到如下几个问题:
  
</p>
<ol type="1">
<li> 	sed命令对"中文字符串"的处理比较弱，很多在vim下可以完成的正则表达式替换工作使用sed就是无法完成；
<div class="p"><!----></div>
</li>
<li>	字符编码导致乱码问题；GB2312，ISO-8859，UTF8之间转换；最后使用iconv解决；
<div class="p"><!----></div>
</li>
</ol>
<div class="p"><!----></div>
<h3 style="background-color:#99cc00"><a name="tth_sEc3">
3</a>&nbsp;&nbsp;自动定时运行</h3>
<p>
  安装好 sendsms 到 /usr/bin 之后，将上面脚本放到 YOURPATH 下，然后在命令行执行：crontab -e，将下面一行添加进去：<br />
  00 09 * * * /YOURPATH/xjh.sh 1&gt; /tmp/xjh.out 2&gt; /tmp/xjh.err <br />
  这样每天上午9：00就会自动执行；
</p>
<div class="p"><!----></div>
<h3 style="background-color:#99cc00"><a name="tth_sEc4">
4</a>&nbsp;&nbsp;后记</h3>
<ol type="1">
<li>  本打算把所有的程序扔到unix center上运行；后面发现unix center的ubuntu的主机是x84_64，所需要的libcurl需要自己重新编译安装,没权限；
      所以只能用自己的机子跑。设置定时开机，处理完了后定时关机。
<div class="p"><!----></div>
</li>
<li> 上面的脚本只是针对于特定的网页进行抓包；其他的应用需要重新修改脚本；
<div class="p"><!----></div>
</li>
<li> 使用飞信主要是考虑到定时发送宣讲会信息到手机，便于身边没有电脑时查看；
<div class="p"><!----></div>
</li>
<li> 使用脚本抓包目的是提取信息自动化，不用人工干预；
<div class="p"><!----></div>
</li>
<li> 定时运行可以每天自动获取信息，以免因为忘记而错过一场宣讲会；
<div class="p"><!----></div>
</li>
<li> 最大的优点是可以群发，实现信息共享，当然必须对方是我的飞信好友；
</li>
<li>飞信本身还是有些问题，我碰到好几次段错误导致程序崩溃；</li>
</ol><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/51259607.html">打印店病毒感染解决方案---sandboxie</a> 2009-11-13</div><div><a href="/logs/50911874.html">找工作总结</a> 2009-11-07</div><div><a href="/logs/46652852.html">MBTI职业性格测试(Psytopic特别版)</a> 2009-09-17</div><div><a href="/logs/33101007.html">写出漂亮代码的七种方法</a> 2008-12-29</div><div><a href="/logs/26705778.html">面向对象的C语言编程</a> 2008-08-02</div></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://just-study.blogbus.com/logs/48097398.html</link>
   <author>阿僵老卡</author>
   <pubDate>Sat, 10 Oct 2009 22:15:26 +0800</pubDate>
  </item>
  <item>
   <title>MBTI职业性格测试(Psytopic特别版)</title>
   <description><![CDATA[<p>Psytopic分析：您的性格类型是<span style="font-size: 18px;"><span style="color: #3366ff;">&ldquo;<strong>ESTJ</strong>&rdquo;</span></span>(外向+实感+思维+判断) 
<br /><br />讲求实际，注重现实，注重事实。果断，很快作出实际可行的决定。善于将项目和人组织起来将事情完成，并尽可能以最有效率的方法达到目的。能够注意日常例行工作的细节。有一套清晰的逻辑标准，有系统性地遵循， 
并希望他人也同样遵循。会以较强硬的态度去执行计划。 
<br /><br />ESTJ型的人高效率地工作，自我负责，监督他人工作，合理分配和处置资源，主次分明，井井有条；能制定和遵守规则，多喜欢在制度健全、等级分明、比较稳定的企业工作；倾向于选择较为务实的业务，以有形产品为主 
；喜欢工作中带有和人接触、交流的成分，但不以态度取胜；不特别强调工作的行业或兴趣，多以职业角度看待每一份工作。ESTJ型的人很善于完成任务；他们喜欢操纵局势和促使事情发生；他们具有责任感，信守他们的 
承诺。他们喜欢条理性并且能记住和组织安排许多细节。他们及时和尽可能高效率地、系统地开始达到目标。ESTJ型的人被迫做决定。他们常常以自己过去的经历为基础得出结论。他们很客观，有条理性和分析能力，以及 
很强的推理能力。事实上，除了符合逻辑外，其他没有什么可以使他们信服。同时，ESTJ型的人又很现实、有头脑、讲求实际。他们更感兴趣的是&ldquo;真实的事物&rdquo;，而不是诸如抽象的想法和理论等无形的东西。他们往往对 
那些认为没有实用价值的东西不感兴趣。他们知道自己周围将要发生的事情，而首要关心的则是目前。因为ESTJ型的人依照一套固定的规则生活，所以他们坚持不懈和值得依赖。他们往往很传统，有兴趣维护现存的制度。 
虽然对于他们来说，感情生活和社会活动并不像生活的其他方面那样重要，但是对于亲情关系，他们却固守不变。他们不但能很轻松地判断别人，而且还是条理分明的纪律执行者。 
ESTJ型的人直爽坦率，友善合群。通常他们会很容易地了解事物，这是因为他们相信&ldquo;你看到的便是你得到的&rdquo;。 
<br /><br />您适合的领域有：无明显领域特征<br /><br />您适合的职业有：<br /><br />&middot; 公司首席执行官<br />&middot; 军官 <br />&middot; 预算分析师 
<br />&middot; 药剂师 <br />&middot; 房地产经纪人 <br />&middot; 保险经纪人 <br />&middot; 教师（贸易/工商类） <br />&middot; 物业管理<br />&middot; 银行官员<br />&middot; 
项目经理<br />&middot; 数据库经理<br />&middot; 信息总监<br />&middot; 后勤与供应经理<br />&middot; 业务运作顾问<br />&middot; 证券经纪人<br />&middot; 电脑分析人员<br />&middot; 
保险代理<br />&middot; 普通承包商<br />&middot; 工厂主管<br />&middot; 大、中型外资企业员工<br />&middot; 业务经理<br />&middot; 
中层经理（多分布在财务、营运、物流采购、销售管理、项目管理、工厂管理、人事行政部门）<br />&middot; 职业经理人<br />&middot; 各类中小型企业主管和业主</p>
<p><span style="font-size: 18px;"><span style="color: #3366ff;">觉得这个测试还算准.不过这个是内向还是外向,我自己都说不清楚.认识我的人应该会觉得我很外向;不认识我的人可能会觉得我有点难接触.</span></span></p>
<p><span style="font-size: 18px;"><span style="color: #3366ff;">至于其他三项没有其他异议,因为我在大学的时候测试过MBTI完整版的,结果一样.</span></span></p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/50911874.html">找工作总结</a> 2009-11-07</div><div><a href="/logs/48097398.html">飞信免费订阅宣讲会信息</a> 2009-10-10</div><div><a href="/logs/42452019.html">一个月培养一个好习惯</a> 2009-07-16</div><div><a href="/logs/27128934.html">C++程序员常备工具</a> 2008-08-05</div><div><a href="/logs/21043221.html">经典C语言100例之（四十五）</a> 2008-05-17</div></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://just-study.blogbus.com/logs/46652852.html</link>
   <author>阿僵老卡</author>
   <pubDate>Thu, 17 Sep 2009 10:42:27 +0800</pubDate>
  </item>
  <item>
   <title>LaTeX制作的简历图片版</title>
   <description><![CDATA[<p>&nbsp;使用LaTeX的moderncv宏包制作！</p>
<p>
<p><a href="1" target="_blank"><img style="border:none;" src="https://sites.google.com/a/kuanghaibin.co.cc/si-wei-dao-tu/Home/document/page.jpg" alt="" width="592" height="1674" /></a></p>
</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://just-study.blogbus.com/logs/45738308.html">我是这样排版博客的</a> 2009-09-03</div><div><a href="/logs/44335609.html">C语言POSIX库中正则表达式函数存在内存泄漏？</a> 2009-08-16</div><div><a href="/logs/33687346.html">正则表达式之道</a> 2009-01-11</div><div><a href="/logs/23451387.html">32位与64位的数据大小</a> 2008-06-23</div><div><a href="/logs/23116044.html">还是随机数，还是随机种子问题</a> 2008-06-17</div></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://just-study.blogbus.com/logs/46355593.html</link>
   <author>阿僵老卡</author>
   <pubDate>Sun, 13 Sep 2009 22:08:04 +0800</pubDate>
  </item>
  <item>
   <title>程序员常用软件清单-VIM篇</title>
   <description><![CDATA[<!--
 div.p { margin-top: 7pt;}
-->
        <!--
            td div.comp { margin-top: -0.6ex; margin-bottom: -1ex;}
            td div.comb { margin-top: -0.6ex; margin-bottom: -.6ex;}
            td div.hrcomp { line-height: 0.9; margin-top: -0.8ex; margin-bottom: -1ex;}
            td div.norm {line-height:normal;}
            span.roman {font-family: serif; font-style: normal; font-weight: normal;} 
            span.overacc2 {position: relative;  left: .8em; top: -1.2ex;}
            span.overacc1 {position: relative;  left: .6em; top: -1.2ex;}
-->
<h3><span style="color: #ff00ff;"><span style="text-decoration: underline;"><a href="mailto:khb.hnu@gmail.com">khb.hnu@gmail.com  </a></span></span> </h3>
<div class="p"><!----></div>
<h2><a name="tth_sEc1">
                <span style="color: #3366ff;">1</span></a><span style="color: #3366ff;">&nbsp;&nbsp;VIM及插件</span></h2>
<p>
        VIM应该是我近两年时间里用得最多的软件之一吧,从研一开学还不知道Linux,ubuntu是些什么东西,到现在彻底喜欢上Linux系统刚好
        2年的时间.Linux让我着迷很大一部分原因是从VIM开始的.我现在应该可以完全脱离Windows系统工作.</p>
<div class="p"><!----></div>
<p>
        由于VIM的强大,所有这里特别把这款工具作为一个篇来讲述.
        </p>
<div class="p"><!----></div>
<p>
        维基百科：<br />
        <em>VIM is a text editor first released by Bram Moolenaar in 1991
            for the Amiga computer. The name "VIM" is an acronym for "Vi IMproved"
            because VIM was created as an extended version of the vi editor, with many
            additional features designed to be helpful in editing program source code.
            VIM is cross-platform. It is the most popular editor
            amongst Linux Journal readers.Released under a software license compatible
            with the GNU General Public License,VIM is free and open source software.
            The program's license includes some charityware clauses, encouraging
            users who enjoy the software to consider donating to children in Uganda.</em></p>
<div class="p"><!----></div>
<p>
        官方网站地址:www.vim.org.
        </p>
<div class="p"><!----></div>
<p>
        哈哈,突然发现,VIM跟Linux是同一年诞生的.
        </p>
<div class="p"><!----></div>
<p>
        关于VIM的一些具体使用我不列出来,组合命令实在太多罗.需要通过反复的练习才能牢记在心.如果想系统的学习VIM,建议
        看一下VIM的手册,网上有中文翻译版.作为程序员,尤其需要看第29章(之于程序),第30章(程序的编辑).同时第3章(移动),第4章(小幅改动),
        第10章(大刀阔斧)这几章中的内容用得比较多.
        </p>
<div class="p"><!----></div>
<p>
        下面我列举几点学习VIM的注意事项:
        </p>
<ol type="1">
<li>   VIM的入门比较难,要坚持住.一旦熟练使用,效率蹭蹭地往上升.
<div class="p"><!----></div>
</li>
<li>	要明确区分插入模式,命令模式,普通模式,选择模式.
<div class="p"><!----></div>
</li>
<li>   在学习开始阶段要强迫自己使用键盘,而不是鼠标.
<div class="p"><!----></div>
</li>
<li>	要用VIM的思维去操作,例如 上下左右移动分别使用j,k,h,l,而不是键盘上的方向键.
<div class="p"><!----></div>
</li>
<li>	学习下正则表达式吧,在替换等操作时会带来好处的.
<div class="p"><!----></div>
</li>
<li>	不要一次把所有的命令记下来,一次记几个,然后反复使用,孰能生巧.
<div class="p"><!----></div>
</li>
<li> 	多到网上跟别人交流,特别可以参考写别人写得比较好的.vimrc或者_vimrc文件配置.
<div class="p"><!----></div>
</li>
<li>	想要深入学习,尝试自己开发出一个实用的插件吧.
<div class="p"><!----></div>
</li>
</ol>
<div class="p"><!----></div>
<p>
        这篇文章主要是列举一些我平时用得比较多的VIM插件.
        </p>
<h3 style="background-color: #99cc00;"><a name="tth_sEc1.1">
                1.1</a>&nbsp;&nbsp;C-Support</h3>
<dl>
            <dt><strong>C-Support:</strong>Write and run programs. Insert statements, idioms, comments etc.</dt>
            
        </dl>
<p>
        它具有如下功能:
        </p>
<ol type="1">
<li>  Statement oriented editing of  C/C++ programs
<div class="p"><!----></div>
</li>
<li>  Speed up writing new code considerably
<div class="p"><!----></div>
</li>
<li>  Write code and comments with a professional appearance from the beginning
<div class="p"><!----></div>
</li>
<li>  Use code snippets
<div class="p"><!----></div>
</li>
</ol>
<div class="p"><!----></div>
<p>
        教程(google能搜索到):Make VIM as Your C/C++ IDE Using c.vim Plugin
        </p>
<div class="p"><!----></div>
<p>
        之所以第一个介绍这个插件,是因为它确实能够为我编写程序节省不少时间,还能减少程序的bug.同时我很喜欢它里面默认的一个makefile模板,真的
        很通用,只要把自己所需要的额外的头文件路径,库路径,以及源程序文件名相应的填写进去,就可以使用.源程序的依赖关系是通过sed工具处理自动完成.
        使用VIM进行C/C++编程,这个插件绝对会让你满意！
        </p>
<div class="p"><!----></div>
<p>
        注：在VIM下需要记住一些常用的命令,如果是在GVIM下,可以点击菜单选项进行操作.
        </p>
<div class="p"><!----></div>
<h3 style="background-color: #99cc00;"><a name="tth_sEc1.2">
                1.2</a>&nbsp;&nbsp;Bash-Support</h3>
<dl>
            <dt><strong>Bash-Support:</strong>Write and run BASH-scripts using menus and hotkeys</dt>
            
        </dl>
<p>
        这个跟第一个基本类似,只是针对的语言是bash,而非c/c++;这里不再详细介绍,这相关的插件还有perl-support;<br />
        两个相关教程如下：<br />
        Make VIM as Your Perl IDE Using bash-support.vim Plugin<br />
        Make VIM as Your Perl IDE Using perl-support.vim Plugin</p>
<div class="p"><!----></div>
<p>
        注:http://www.thegeekstuff.com/tag/vi-vim-tips-and-tricks中有大量关于VIM以及VIM插件使用教程,上面列出来的3篇教程
        都来自该网站.
        </p>
<div class="p"><!----></div>
<h3 style="background-color: #99cc00;"><a name="tth_sEc1.3">
                1.3</a>&nbsp;&nbsp;Ctags与Taglist</h3>
<dl>
            <dt><strong>Taglist:</strong>Source code browser (supports C/C++, java, perl, python, tcl, sql, php, etc)</dt>
            
        </dl>
<p>
        taglist必须要与ctags配合才能使用.taglist需要利用ctags生成的tags文件.在Windows下使用IDE的用户都可能会知道
        Visual.Assist插件可以列出当前源程序中的函数名,全局变量,结构体定义等等.taglist实现的就是这个功能.如果再配合
        winmanager这个文件管理插件使用,那基本就可以把VIM打造成一个IDE开发环境.
        </p>
<div class="p"><!----></div>
<p>
        关于这个插件的教程网上一堆堆的,需要的自己google下吧.
        </p>
<div class="p"><!----></div>
<p>
        taglist这个插件我开始使用VIM的时候用得比较多,后来对VIM有进一步了解后,一般通过命令进行跳转,而不调出个新的窗口.
        不过ctags这个插件我是少不了,"CTRL+] CTRL+T" 这对组合不知道用过多少次,太爽啦.跳转就在一瞬间.
        </p>
<div class="p"><!----></div>
<h3 style="background-color: #99cc00;"><a name="tth_sEc1.4">
                1.4</a>&nbsp;&nbsp;Code-Complete</h3>
<div class="p"><!----></div>
<dl>
            <dt><strong>Code-Complete:</strong>Function parameter complete,Code snippets,and much more.</dt>
            
        </dl>
<p>
        看插件名称就知道这个插件的功能是什么吧,没错,就是代码补全.
        </p>
<div class="p"><!----></div>
<p>
        这个插件使用比较简单.下面贴出官方网站的说明:
</p>
<pre>	In&nbsp;insert&nbsp;mode,&nbsp;when&nbsp;you&nbsp;type&nbsp;"&lt;tab&gt;"(default&nbsp;value&nbsp;of&nbsp;g:completekey)
    after&nbsp;function&nbsp;name&nbsp;with&nbsp;a&nbsp;"(",function&nbsp;parameters&nbsp;will&nbsp;be&nbsp;append&nbsp;behind,
    use&nbsp;"&lt;tab&gt;"&nbsp;key&nbsp;again&nbsp;to&nbsp;switch&nbsp;between&nbsp;parameters.
    This&nbsp;key&nbsp;is&nbsp;also&nbsp;used&nbsp;to&nbsp;complete&nbsp;code&nbsp;snippets.
    Example:
    press&nbsp;&lt;tab&gt;&nbsp;after&nbsp;function&nbsp;name&nbsp;and&nbsp;(
&nbsp;&nbsp;	foo&nbsp;(&nbsp;&lt;tab&gt;
    becomes:
&nbsp;&nbsp;	foo&nbsp;(&nbsp;`&lt;first&nbsp;param&gt;`,`&lt;second&nbsp;param&gt;`&nbsp;)
    press&nbsp;&lt;tab&gt;&nbsp;after&nbsp;code&nbsp;template
&nbsp;	&nbsp;if&nbsp;&lt;tab&gt;
    becomes:
&nbsp;	&nbsp;if(&nbsp;`&lt;...&gt;`&nbsp;)
&nbsp;	&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	`&lt;...&gt;`
&nbsp;&nbsp;	}
&nbsp;&nbsp;	NOTE:Use&nbsp;the&nbsp;command&nbsp;below&nbsp;to&nbsp;create&nbsp;tags&nbsp;file&nbsp;including&nbsp;signature&nbsp;field.
&nbsp;&nbsp;&nbsp;		ctags&nbsp;-R&nbsp;--c-kinds=+p&nbsp;--fields=+S&nbsp;.

</pre>
<div class="p"><!----></div>
<h3 style="background-color: #99cc00;"><a name="tth_sEc1.5">
                1.5</a>&nbsp;&nbsp;A</h3>
<dl>
            <dt><strong>A:</strong>Alternate Files quickly (.c - .h etc)</dt>
            
        </dl>
<div class="p"><!----></div>
<p>
        头文件与源文件之间的快速切换,简单,实用,over!
        </p>
<div class="p"><!----></div>
<h3 style="background-color: #99cc00;"><a name="tth_sEc1.6">
                1.6</a>&nbsp;&nbsp;QuickFix</h3>
<p>
        摘自VIM英文手册：<br />
        <em>VIM has a special mode to speedup the edit-compile-edit cycle.  This is
            inspired by the quickfix option of the Manx's Aztec C compiler on the Amiga.
            The idea is to save the error messages from the compiler in a file and use VIM
            to jump to the errors one by one.  You can examine each problem and fix it,
            without having to remember all the error messages.
            VIM has a special mode to speedup the edit-compile-edit cycle.  This is
            inspired by the quickfix option of the Manx's Aztec C compiler on the Amiga.
            The idea is to save the error messages from the compiler in a file and use VIM
            to jump to the errors one by one.  You can examine each problem and fix it,
            without having to remember all the error messages.</em></p>
<div class="p"><!----></div>
<p>
        QuixkFix已经做到VIM 7.0的标准中.在编译源程序出错的时候会弹出这个窗口.在下面要介绍的grep插件中也会用到这个窗口.
        而且还有一个好处,通过命令可以跳转到相应的文件相应的行上.我默认配置F5跳转到上一个错误/匹配成功出现的位置,F6为跳转
        到下一个错误/匹配成功出现的位置.
        </p>
<div class="p"><!----></div>
<h3 style="background-color: #99cc00;"><a name="tth_sEc1.7">
                1.7</a>&nbsp;&nbsp;Grep</h3>
<dl>
            <dt><strong>Grep:</strong>Grep search tools integration with VIM</dt>
            
        </dl>
<div class="p"><!----></div>
<p>
        将grep工具的功能内置到VIM中去,真的很实用.将光标至于某个单词上,按配置好的快捷键,就可以搜索当前文件,或者当前目录下出现
        该单词的每一行信息.匹配成功的项目会显示在QuickFix窗口中.然后通过命令(或者配置快捷键)进行跳转.
        </p>
<div class="p"><!----></div>
<h3 style="background-color: #99cc00;"><a name="tth_sEc1.8">
                1.8</a>&nbsp;&nbsp;New-omni-completion</h3>
<p>
        摘自VIM英文手册：<br />
        <em>This could also be called intellisense", but that is a trademark. It is a
            smart kind of completion.  The text in front of the cursor is inspected to
            figure out what could be following.  This may suggest struct and class
            members, system functions, etc.</em></p>
<div class="p"><!----></div>
<p>
        相信在windows下编程的程序员一定会用过自动补全功能,但输入"-&gt;" "."后,类成员函数或变量,结构体成员变量会自动弹出来,然后就可以
        选择确认,比每次手动输入要快,还能避免错误,VIM的这个插件也具有这个功能.并且这个插件已经称为VIM 7中默认就会安装的标准插件.
        </p>
<div class="p"><!----></div>
<p>
        用法：进入Insert模式, 将光标放在"-&gt;"后面,然后按下"Ctrl+X Ctrl+O", 此时会弹出一个下列菜单, 显示所有匹配的标签.其他的高级用法
        查看VIM手册.
        </p>
<div class="p"><!----></div>
<p>
        注：该插件需要配合tags(有ctags生成)才能使用.</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://just-study.blogbus.com/logs/22855170.html">Vim tips</a> 2008-06-13</div><div><a href="http://just-study.blogbus.com/logs/45988285.html">程序员常用软件清单-编程篇</a> 2009-09-08</div><div><a href="http://just-study.blogbus.com/logs/45411515.html">translate article from ZH to EN with COMMAND under LINUX</a> 2009-08-30</div><div><a href="http://just-study.blogbus.com/logs/44578858.html">vim+google code search</a> 2009-08-19</div><div><a href="http://just-study.blogbus.com/logs/44265657.html">linux下各种文本文件转pdf</a> 2009-08-15</div></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://just-study.blogbus.com/logs/46148490.html</link>
   <author>阿僵老卡</author>
   <pubDate>Thu, 10 Sep 2009 21:11:43 +0800</pubDate>
  </item>
  <item>
   <title>程序员常用软件清单-编程篇</title>
   <description><![CDATA[<!--
 div.p { margin-top: 7pt;}
-->
 <!--
 td div.comp { margin-top: -0.6ex; margin-bottom: -1ex;}
 td div.comb { margin-top: -0.6ex; margin-bottom: -.6ex;}
 td div.hrcomp { line-height: 0.9; margin-top: -0.8ex; margin-bottom: -1ex;}
 td div.norm {line-height:normal;}
 span.roman {font-family: serif; font-style: normal; font-weight: normal;} 
 span.overacc2 {position: relative;  left: .8em; top: -1.2ex;}
 span.overacc1 {position: relative;  left: .6em; top: -1.2ex;}
-->
<h3><span style="color: #ff00ff;"><span style="text-decoration: underline;"><a href="mailto:khb.hnu@gmail.com">khb.hnu@gmail.com  </a></span></span> </h3>
<div class="p"><!----></div>
<h2><a name="tth_sEc1">
1</a>&nbsp;&nbsp;编程相关</h2>
<p>
  作为一名程序员,首先当然得先介绍我喜欢用的一些编程相关的软件.Doxygen,Hexplore,SVN,Pc-Lint,Cygwin,Visio,Source Insight,以及一些
  VC插件等等.下面对每个软件的功能进行简单介绍.至于每个软件的具体用法,google之,这个不是一两句话可以说得完的.</p>
<div class="p"><!----></div>
<p>
  注:商业软件用C(commence)表示,免费软件用F(free)表示.
  
     </p>
<h3 style="background-color: #99cc00"><a name="tth_sEc1.1">
1.1</a>&nbsp;&nbsp;Doxygen(F)</h3>
<p>
  Doxygen 是一个类似 JavaDoc 的文档生成工具.有了它,C++爱好者就可以为自己的源代码很方便地生成美观实用的文档了.C++作为C语言的超集,自然,
  Doxygen也可以生成C语言程序的文档.而且我写得比较多的还是C语言.</p>
<div class="p"><!----></div>
<p>
  Doxygen运行前需要生成并修改一个配置文件,然后就可以使用了.我挺喜欢里面的函数调用与被调用图,当然这需要装一个画图软件Graphviz.
  给一个教程:使用doxygen为C/C++程序生成中文文档(来源:www.fmddlmyy.cn),<br />花1～2小时你就可以掌握这款好软件.教程中教我们生成chm
  文件.我一般就是把这个chm文档交给公司人看的,所有东西都集成在一个文档中,而且不能修改,还具有搜索功能.</p>
<div class="p"><!----></div>
<p>
  官方网址:www.doxygen.org
  
     </p>
<h3 style="background-color: #99cc00"><a name="tth_sEc1.2">
1.2</a>&nbsp;&nbsp;Hexplore(F)</h3>
<p>
Hexplorer
是一款十六进制的文件编辑器,提供了包括用于直观注释的5种配色方案,无限制的取消操作,查找和替换功能,像素浏览器,结构浏览器,分解,变形转换等在内
的许多功能.该软件还允许你导出数据到C或者汇编程序,计算校验和,CRC校验值,寻找样式以及更多方面的功能.</p>
<div class="p"><!----></div>
<p>
  这是一款开源软件,比较小巧,我用得比较习惯;</p>
<div class="p"><!----></div>
<p>
  官方网址:hexplorer.sourceforge.net
  
     </p>
<h3 style="background-color: #99cc00"><a name="tth_sEc1.3">
1.3</a>&nbsp;&nbsp;SVN(F)</h3>
<p>
这款软件的主要功能是版本控制.相类似的软件有CVS,Git等.CVS与SVN的作者是同一个人.SVN可以看成是CVS的升级版. 而git
是一个由Linus
Torvalds为了更好地管理linux内核开发而创立的分布式版本控制,软件配置管理软件.知道linux的应该都知道Linus
Torvalds是谁了,否则面壁去.与常用的版本控制工具
CVS,SVN等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便.Git的速度很快,这对于诸如 Linux
kernel 这样的大项目来说自然很重要.Git 最为出色的是它的合并跟踪（merge tracing）能力.</p>
<div class="p"><!----></div>
<p>
有过开发相对大型项目的人应该都知道这款软件.假如一个项目有1W行以上代码,但是没有用SVN之类的版本控制软件,我不得不说这样项目团队工作效率肯定
很低,而且会经常出错误.上面的版本控制我只用过SVN,并打算有时间的话研究一下git.劝那些还没有用过的同仁,花点时间学习这个软件吧,你将收获很
多.</p>
<div class="p"><!----></div>
<p>
  国内的SVN中文站点:www.subversion.org.cn
  
     </p>
<h3 style="background-color: #99cc00"><a name="tth_sEc1.4">
1.4</a>&nbsp;&nbsp;Pc-Lint(C)</h3>
<p>
  PC-Lint是一个历史悠久,功能异常强劲的静态代码检测工具.它的使用历史可以追溯到计算机编程的远古时代（30多年以前）.</p>
<div class="p"><!----></div>
<p>
  PC-Lint是一种针对c/c++的静态代码检测工具,可以说,PC-LINT是一种更加严格的编译器,不仅可以像普通编译器那样检查出一般的语法错误,
  还可以检查出那些虽然完全合乎语法要求,但很可能是潜在的、不易发现的错误.</p>
<div class="p"><!----></div>
<p>
  对于那些只有程序没有错误,置警告于不理的程序员,你会很厌恶这款软件.它给出了大量的可能出错的警告信息.如果你希望调试阶段能够更加顺利,软件更加稳固,那么你还是使用它吧,它绝对可以帮上你大忙.通过排除大量的警告信息,你也可以了解到更多更深入的语言特性.</p>
<div class="p"><!----></div>
<p>
  它是一款商业软件,不过你很容易下载破解版.这款软件运行平台是:windows;如果你在linux平台下,那么你选择splint吧,不但功能强劲,
  安装和使用也很简单.而且是免费开源的哦.
  
     </p>
<h3 style="background-color: #99cc00"><a name="tth_sEc1.5">
1.5</a>&nbsp;&nbsp;Cygwin(F)</h3>
<p>
  如果你是windows重症患者,或者你不方便切换到linux下,又或者你的内存太小装虚拟机很卡,但是你又舍不得linux平台下那些好用的命令行工具,
  那么你一定要试一下Cygwin吧,它不会让你失望的,相信我.这叫windows下玩linux:-)</p>
<div class="p"><!----></div>
<p>
  来自维基百科:
  
</p>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cygwin是许多自由软件的集合,最初由Cygnus&nbsp;Solutions开发,用于各种版本的Microsoft&nbsp;Windows上,<br />运行UNIX类系统.Cygwin的主要目的是通过重新编译,将POSIX系统（例如Linux、BSD,以及其他Unix系统)<br />上的软件移植到Windows上.Cygwin移植工作在Windows&nbsp;NT、Windows&nbsp;2000、Windows&nbsp;XP<br />以及Windows&nbsp;Server&nbsp;2003上比较好,在Windows&nbsp;95和Windows&nbsp;98上,相对差劲一些.<br />目前Cygwin由Red&nbsp;Hat等负责维护.
&nbsp;&nbsp;
</pre>
<div class="p"><!----></div>
<p>
  国内Cygwin镜像:www.cygwin.cn
  
     </p>
<h3 style="background-color: #99cc00"><a name="tth_sEc1.6">
1.6</a>&nbsp;&nbsp;Visio(C)</h3>
<p>
Visio可以建立流程图、组织图、时间表、营销图和其他更多图表,把特定的图表加入文件,让商业沟通变得更加清晰,令演示更加有趣,使复杂过程更加简
单,文档重点更加突出,使我们的工作在一种视觉化的交流方式下变得更有效率. 作为Microsoft
Office家族的成员,Visio拥有与Office非常相近的操作界面,所以接触过Word的人都不会觉得陌生.</p>
<div class="p"><!----></div>
<p>
      虽然同样是office的家族成员,这款软件知名度不大,它主要用于画图表.但它是商业软件,还是微软制造的.
      安装文件很大,很占空间,我不怎么喜欢.但是有时候又不得不使用.</p>
<div class="p"><!----></div>
<p>
  linux用户可以使用Dia(F).对于绝大多数用户来说,这款软件的功能可以完全替代Visio.
  来自维基百科:
  
</p>
<pre>&nbsp;&nbsp;Dia是开放源码的流程图软件,是GNU计划的一部分,程式创立者是Alexander&nbsp;Larsson.Dia使用<br />single&nbsp;document&nbsp;interface&nbsp;(CSDI)模式,类似于GIMP.Dia将多种需求以模组化来设计,如流程图、网络图、电路图等.<br />各模组之间的符号仍是可以通用的,并没有限制.Dia可以画多种示意图,并且借由XML可以新增多种图形.<br />Dia以客制化XML格式（默认以gzip压缩节省空间）加载及储存流程图.
<br /></pre>
<p>
  这款开源软件有windows版的.如非必要,我会使用Dia替代Visio.当然,你想画出较炫的流程图,可以用思维导图软件,如:MindManage(C),FreeMind(F)等.
</p>
<div class="p"><!----></div>
<h3 style="background-color: #99cc00"><a name="tth_sEc1.7">
1.7</a>&nbsp;&nbsp;source insight(C)</h3>
<p>
看代码的软件,以前用得多,现在基本使用vim/gvim(F)替代.对于那些觉得vim难学的程序员来说,这款软件确实值得一用.特别是对于那些手头有
大项目的程序员有用.现在一般用的是3.5版本吧,是商业的英文软件,网上有破解包和汉化包下载,这里不细说罗.顺便提一下,它只运行于windows平
台哦.linux下的程序员看代码有两款用得比较多的软件:一款是前面提到的vim/gvim,另一款是emace(F),这款我没用过:-( </p>
<h3 style="background-color: #99cc00"><a name="tth_sEc1.8">
1.8</a>&nbsp;&nbsp;C++ test(C)</h3>
<p>
C++Test是一个C/C++单元级测试工具,自动测试C/C++类、函数或部件,而不需要编写测试用例、测试驱动程序或桩调用代码.C++Test能
够自动测试代码构造(白盒测试)、测试代码的功能性(黑盒测试)和维护代码的完整性(回归测试).C++Test是一个易于使用的产品,能够适应任何开发
生命周期.通过将C++Test集成到开发过程中,您能够有效地防止软件错误,提高代码的稳定性,并自动化地实现单元测试(这是极限编程过程的基础).</p>
<div class="p"><!----></div>
<p>
  这同样是一款商业软件,中文资料比较少.不过经过一段时间的使用,基本上能熟悉使用该工具.我喜欢它的自动化测试,当然,你也可以自己添加测试用例和桩函数.
  
     </p>
<h3 style="background-color: #99cc00"><a name="tth_sEc1.9">
1.9</a>&nbsp;&nbsp;cmockery(F)</h3>
<p>
  cmockery是google发布的用于C单元测试的一个轻量级的框架.</p>
<div class="p"><!----></div>
<p>
  主要特点: 免费且开源,google提供技术支持; 轻量级的框架,使测试更加快速简单;避免使用复杂的编译器特性,对老版本的编译器来讲,兼容性好;
  并不强制要求待测代码必须依赖C99标准,这一特性对许多嵌入式系统的开发很有用;</p>
<div class="p"><!----></div>
<p>
  java单元测试有JUnit,c++单元测试有CppUnit;唯独C语言找不到一款比较好的单元测试工具.这个工具比较小巧,对代码的侵入比较少,最近才入手,觉得很不错的一款软件,google产品,值得信赖！！！</p>
<div class="p"><!----></div>
<p>
  官方网站地址:code.google.com/p/cmockery
</p>
<div class="p"><!----></div>
<h3 style="background-color: #99cc00"><a name="tth_sEc1.10">
1.10</a>&nbsp;&nbsp;VC插件</h3>
<p>
  VC我用的比较多的是6.0版本,VS2005也用过一段时间.所有这里的插件针对于VC6.0,对VS2005不出意外应该也可以使用,但不敢打包票.
  
      </p>
<h4><span style="color: #3366ff;"><a name="tth_sEc1.10.1"> 1.10.1</a>&nbsp;&nbsp;Visual.Assist(C)</span></h4>
<p>
这一款我相信Vc程序员都用过,如果没用过,我只能说你太土鳖了,你不是地球上的程序员.毫无疑问,这也是一款商业软件,这个破解包不好找,而且不稳定,
经常死掉.对于IDE重症患者,有它总比没有好吧.它确实能够提高编程效率,同时避免一些拼写错误.中文名称：VC助手. 
</p>
<h4><span style="color: #3366ff;"><a name="tth_sEc1.10.2"> 1.10.2</a>&nbsp;&nbsp;Rational PurifyPlus for Windows(C)</span></h4>
<p>
IBM Rational 软件交付平台(Rational Software Delivery
Platform)是一个为软件和基于软件系统的开发提供完整解决方案的集成平台.它允许参与者更有效地操作,并且交付令组织区别于其竞争者的创新的产品
和服务,Rose就是Rational中比较有名的一款工具.PurifyPlus也属于其中之一,它又包括以下三个工具: </p>
<ol type="1">
<li> Purify(C)   		检查运行时内存错误
<div class="p"><!----></div>
</li>
<li> PureCoverage(C)	能自动检查那些代码没有被测试
<div class="p"><!----></div>
</li>
<li> Quantify(C)		性能检测工具,查出系统瓶颈以便改进运行速度
<div class="p"><!----></div>
</li>
</ol>
<p>
  这些工具不能说是Vc插件,它可以独立运行,它只是Rational这个庞大的软件包中相对较小的几个工具,但是它很强大,提供VC插件使用.</p>
<div class="p"><!----></div>
<p>
  使用C/C++开发的团队一定有被其内存问题折磨过的经历,内存问题一直是C/C++开发人员的心头之痛.特别当程序越来越多时,类的继承和关联越来越多时,内存问题也就越来越多,很多时候,开发人员在不经意的时候就带入了内存问题.</p>
<div class="p"><!----></div>
<p>
Purify就是一个用来解决内存问题的利器,它是一个Run-Time的工具,也就是说只有在程序运行过程中,根据程序的运行情况来查看在某种运行条件
下程序是否有内存上的问题,它可以在一个非常复杂的程序中查找内存错误,包括那种多进程或多线程的程序,它也可以进行测试.具体检测原理google
IBM相关网站.</p>
<div class="p"><!----></div>
<p>
  至于PureCoverage与Quantify,使用方法与Purify基本相同.这里不再详细说明.这三款软件对程序开发确实能够起到相当大的作用.这是我喜欢的为数不多的几款商业软件之一.</p>
<div class="p"><!----></div>
<p>
  不过很遗憾的是:Rotional这个工具包我只用得起这三款工具,其他的工具都不会用,上手也太难罗,教程又少,难怪说IBM的培训很贵！</p>
<div class="p"><!----></div>
<p>
  不过linux下有这三款工具对应功能的替代软件,开源的,我喜欢:
  
</p>
<ol type="1">
<li> varigind(F)
<div class="p"><!----></div>
</li>
<li> gcov(F)
<div class="p"><!----></div>
</li>
<li> gporf(F)
<div class="p"><!----></div>
</li>
</ol>
<div class="p"><!----></div>
<p>
以上三款软件具体的不太介绍,开源软件教程也多,随便一搜就一大堆.</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://just-study.blogbus.com/logs/46148490.html">程序员常用软件清单-VIM篇</a> 2009-09-10</div><div><a href="http://just-study.blogbus.com/logs/22789134.html">C 编程最佳实践</a> 2008-06-12</div><div><a href="/logs/51259607.html">打印店病毒感染解决方案---sandboxie</a> 2009-11-13</div><div><a href="/logs/48145702.html">Gnome Terminator</a> 2009-10-11</div><div><a href="/logs/20958435.html">经典C语言100例之（三十三）</a> 2008-05-15</div></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://just-study.blogbus.com/logs/45988285.html</link>
   <author>阿僵老卡</author>
   <pubDate>Tue, 08 Sep 2009 10:32:20 +0800</pubDate>
  </item>
 </channel>
</rss>
