﻿<?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>IT博客-淡泊明志、宁静致远</title><link>http://www.cnitblog.com/houcy/</link><description>A Diamond is just a piece of Coal that did well under Pressure.</description><language>zh-cn</language><lastBuildDate>Wed, 29 Apr 2026 11:40:11 GMT</lastBuildDate><pubDate>Wed, 29 Apr 2026 11:40:11 GMT</pubDate><ttl>60</ttl><item><title>反汇编心得</title><link>http://www.cnitblog.com/houcy/archive/2013/03/16/87075.html</link><dc:creator>挑灯看剑</dc:creator><author>挑灯看剑</author><pubDate>Sat, 16 Mar 2013 07:09:00 GMT</pubDate><guid>http://www.cnitblog.com/houcy/archive/2013/03/16/87075.html</guid><wfw:comment>http://www.cnitblog.com/houcy/comments/87075.html</wfw:comment><comments>http://www.cnitblog.com/houcy/archive/2013/03/16/87075.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/houcy/comments/commentRss/87075.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/houcy/services/trackbacks/87075.html</trackback:ping><description><![CDATA[看汇编代码时一定要牢牢把握栈的变化情况，脑里浮现栈帧图，并时刻跟踪ESP，这样会更容易读懂汇编。<br /><br />下面是函数调用时callee要做的事情（被调用者负责平衡堆栈: 分配和释放栈空间），所有的函数本质上都是callee，由别的函数调用指行，包括main函数：<br /><br />1. 保存旧的帧指针（把新的栈帧链接到栈帧链表中）<br />其实栈被分成一个个连续的栈帧(由于函数调用的原因)，这些栈帧就像链表一样被EBP链接了起来，每次被调用函数callee要做的第一件事情就是把新的栈帧链接到原来的栈帧链表上，即汇编代码:<br />&nbsp;push ebp<br />把EBP的值压栈，而EBP恰是caller函数的帧指针，这就相当于挂接到栈帧链表上。<br /><br />2. 建立新的帧指针<br />&nbsp;mov&nbsp; ebp ,&nbsp;esp<br /><br />3. 分配新的栈空间<br />sub esp , 0xC0h<br /><br />4. 把寄存器压栈<br />push ebx<br />push esi<br />push edi<br /><br />5. 初始化栈空间<br />初始化栈空间为0xCCh，<span lang="EN-US" xml:lang="EN-US">0xCCh</span>是汇编指令<span lang="EN-US" xml:lang="EN-US">int 3</span>的二进制码，便于中断纠错。<br />lea edi , [ebp - 0xC0h]<br />mov ecx , 30h&nbsp; ;长度，30h * 4 = 0xC0h<br />mov eax , 0xCCCCCCCCh <br />rep stosd<br /><br />6. 执行函数的算法代码<br /><br />7. 平衡堆栈：弹出保存的寄存器，恢复栈空间，恢复被保存的EBP，即从栈帧链表中删除callee的栈帧。<br />pop edi<br />pop esi<br />pop ebx<br />mov esp , ebp ;恢复栈空间，重置栈顶esp, 此时esp = ebp = 旧的ebp<br />pop ebp ;恢复旧的EBP，即把新的栈帧从栈帧链表中删除了，此时esp指向被保存的函数返回地址，即call之后的地址<br />retn&nbsp; ; 函数返回，此指令相当于pop eip，把esp指向的函数返回地址赋值给EIP<br /><br />栈帧结构图：<br /><img border="0" alt="" src="http://www.cnitblog.com/images/cnitblog_com/houcy/栈帧图.jpg" width="461" longdesc="" height="624" /><br /><br /><img src ="http://www.cnitblog.com/houcy/aggbug/87075.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/houcy/" target="_blank">挑灯看剑</a> 2013-03-16 15:09 <a href="http://www.cnitblog.com/houcy/archive/2013/03/16/87075.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>matplotlib生成曲线图的python脚本</title><link>http://www.cnitblog.com/houcy/archive/2013/01/22/86938.html</link><dc:creator>挑灯看剑</dc:creator><author>挑灯看剑</author><pubDate>Tue, 22 Jan 2013 09:35:00 GMT</pubDate><guid>http://www.cnitblog.com/houcy/archive/2013/01/22/86938.html</guid><wfw:comment>http://www.cnitblog.com/houcy/comments/86938.html</wfw:comment><comments>http://www.cnitblog.com/houcy/archive/2013/01/22/86938.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/houcy/comments/commentRss/86938.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/houcy/services/trackbacks/86938.html</trackback:ping><description><![CDATA[<p><span style="font-family: 宋体">工作中经常要分析数据，比如网络并发量，</span>DC<span style="font-family: 宋体">响应时间等，借用</span>matplotlib<span style="font-family: 宋体">将数据生成曲线图，可以直观地分析数据的变化情况。</span></p>
<p><span style="font-family: 宋体">下面是生成曲线图的脚本，实际使用时修改某些值定制一下即可。</span><br /><br /></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; font-size: 12pt">&nbsp;1</span><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">!/usr/bin/env&nbsp;python</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">&nbsp;2</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">&nbsp;-*-&nbsp;coding:&nbsp;utf-8&nbsp;-*-</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">&nbsp;3</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000; font-size: 12pt">"""</span><span style="color: #800000"><br /></span><span style="color: #008080; font-size: 12pt">&nbsp;4</span><span style="color: #800000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000; font-size: 12pt">File&nbsp;Function:&nbsp;读取数据文件，生成曲线图<br /></span><span style="color: #008080; font-size: 12pt">&nbsp;5</span><span style="color: #800000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000; font-size: 12pt">data&nbsp;source&nbsp;format:<br /></span><span style="color: #008080; font-size: 12pt">&nbsp;6</span><span style="color: #800000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000; font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;51&nbsp;07:27:46<br /></span><span style="color: #008080; font-size: 12pt">&nbsp;7</span><span style="color: #800000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000; font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;106&nbsp;07:27:47<br /></span><span style="color: #008080; font-size: 12pt">&nbsp;8</span><span style="color: #800000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000; font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;139&nbsp;07:27:48<br /></span><span style="color: #008080; font-size: 12pt">&nbsp;9</span><span style="color: #800000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000; font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;326&nbsp;07:27:49<br /></span><span style="color: #008080; font-size: 12pt">10</span><span style="color: #800000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000; font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;185&nbsp;07:27:50<br /></span><span style="color: #008080; font-size: 12pt">11</span><span style="color: #800000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnitblog.com/Images/dot.gif"  alt="" /></span><span style="color: #800000; font-size: 12pt">..<br /></span><span style="color: #008080; font-size: 12pt">12</span><span style="color: #800000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000; font-size: 12pt">Author:&nbsp;Kevin&nbsp;Hou<br /></span><span style="color: #008080; font-size: 12pt">13</span><span style="color: #800000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000; font-size: 12pt">Date:&nbsp;2013/01/22<br /></span><span style="color: #008080; font-size: 12pt">14</span><span style="color: #800000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #800000; font-size: 12pt">"""</span><span style="color: #000000"><br /></span><span style="color: #008080; font-size: 12pt">15</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">16</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff; font-size: 12pt">import</span><span style="color: #000000; font-size: 12pt">&nbsp;matplotlib.pyplot&nbsp;as&nbsp;pl<br /></span><span style="color: #008080; font-size: 12pt">17</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff; font-size: 12pt">from</span><span style="color: #000000; font-size: 12pt">&nbsp;matplotlib.ticker&nbsp;</span><span style="color: #0000ff; font-size: 12pt">import</span><span style="color: #000000; font-size: 12pt">&nbsp;MultipleLocator,&nbsp;FuncFormatter<br /></span><span style="color: #008080; font-size: 12pt">18</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff; font-size: 12pt">import</span><span style="color: #000000; font-size: 12pt">&nbsp;numpy&nbsp;as&nbsp;np<br /></span><span style="color: #008080; font-size: 12pt">19</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">20</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">MultipleLocator.MAXTICKS&nbsp;</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-size: 12pt">100000</span><span style="color: #000000"><br /></span><span style="color: #008080; font-size: 12pt">21</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">22</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">fig&nbsp;</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #000000; font-size: 12pt">&nbsp;pl.figure(figsize</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #000000; font-size: 12pt">(</span><span style="color: #000000; font-size: 12pt">10</span><span style="color: #000000; font-size: 12pt">,</span><span style="color: #000000; font-size: 12pt">6</span><span style="color: #000000; font-size: 12pt">))<br /></span><span style="color: #008080; font-size: 12pt">23</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">24</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">77为文件数据个数</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">25</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">x&nbsp;</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #000000; font-size: 12pt">&nbsp;np.arange(0,&nbsp;</span><span style="color: #000000; font-size: 12pt">77</span><span style="color: #000000; font-size: 12pt">,&nbsp;</span><span style="color: #000000; font-size: 12pt">1</span><span style="color: #000000; font-size: 12pt">)<br /></span><span style="color: #008080; font-size: 12pt">26</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">y&nbsp;</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #000000; font-size: 12pt">&nbsp;[]<br /></span><span style="color: #008080; font-size: 12pt">27</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">z&nbsp;</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #000000; font-size: 12pt">&nbsp;[]<br /></span><span style="color: #008080; font-size: 12pt">28</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">t&nbsp;</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #000000; font-size: 12pt">&nbsp;[]<br /></span><span style="color: #008080; font-size: 12pt">29</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">30</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">f&nbsp;</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #000000; font-size: 12pt">&nbsp;open(</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #800000; font-size: 12pt">yr_nr.txt</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #000000; font-size: 12pt">,</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #800000; font-size: 12pt">r</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #000000; font-size: 12pt">)<br /></span><span style="color: #008080; font-size: 12pt">31</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">num</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #000000; font-size: 12pt">0<br /></span><span style="color: #008080; font-size: 12pt">32</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff; font-size: 12pt">for</span><span style="color: #000000; font-size: 12pt">&nbsp;l&nbsp;</span><span style="color: #0000ff; font-size: 12pt">in</span><span style="color: #000000; font-size: 12pt">&nbsp;f:<br /></span><span style="color: #008080; font-size: 12pt">33</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;y.append(int(l.strip().split(</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #800000">&nbsp;</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #000000; font-size: 12pt">)[0]))<br /></span><span style="color: #008080; font-size: 12pt">34</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">隔两个点显示一个label，否则x轴显示不下</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">35</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; font-size: 12pt">if</span><span style="color: #000000; font-size: 12pt">&nbsp;num</span><span style="color: #000000; font-size: 12pt">%</span><span style="color: #000000; font-size: 12pt">3</span><span style="color: #000000; font-size: 12pt">==</span><span style="color: #000000; font-size: 12pt">0:<br /></span><span style="color: #008080; font-size: 12pt">36</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t.append(l.strip().split(</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #800000">&nbsp;</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #000000; font-size: 12pt">)[</span><span style="color: #000000; font-size: 12pt">1</span><span style="color: #000000; font-size: 12pt">])<br /></span><span style="color: #008080; font-size: 12pt">37</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;num&nbsp;</span><span style="color: #000000; font-size: 12pt">+=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-size: 12pt">1</span><span style="color: #000000"><br /></span><span style="color: #008080; font-size: 12pt">38</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">f.close()<br /></span><span style="color: #008080; font-size: 12pt">39</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">pl.plot(x,&nbsp;y,&nbsp;label</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #800000; font-size: 12pt">'</span><span style="color: #800000; font-size: 12pt">YR</span><span style="color: #800000; font-size: 12pt">'</span><span style="color: #000000; font-size: 12pt">,&nbsp;color</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #800000; font-size: 12pt">'</span><span style="color: #800000; font-size: 12pt">red</span><span style="color: #800000; font-size: 12pt">'</span><span style="color: #000000; font-size: 12pt">)<br /></span><span style="color: #008080; font-size: 12pt">40</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">41</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">f&nbsp;</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #000000; font-size: 12pt">&nbsp;open(</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #800000; font-size: 12pt">kk_nr.txt</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #000000; font-size: 12pt">,</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #800000; font-size: 12pt">r</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #000000; font-size: 12pt">)<br /></span><span style="color: #008080; font-size: 12pt">42</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff; font-size: 12pt">for</span><span style="color: #000000; font-size: 12pt">&nbsp;l&nbsp;</span><span style="color: #0000ff; font-size: 12pt">in</span><span style="color: #000000; font-size: 12pt">&nbsp;f:<br /></span><span style="color: #008080; font-size: 12pt">43</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;z.append(int(l.strip().split(</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #800000">&nbsp;</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #000000; font-size: 12pt">)[0]))<br /></span><span style="color: #008080; font-size: 12pt">44</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">f.close()<br /></span><span style="color: #008080; font-size: 12pt">45</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">pl.plot(x,&nbsp;z,&nbsp;label</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #800000; font-size: 12pt">'</span><span style="color: #800000; font-size: 12pt">KK</span><span style="color: #800000; font-size: 12pt">'</span><span style="color: #000000; font-size: 12pt">)<br /></span><span style="color: #008080; font-size: 12pt">46</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">47</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">ax&nbsp;</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #000000; font-size: 12pt">&nbsp;pl.gca()<br /></span><span style="color: #008080; font-size: 12pt">48</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">49</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">&nbsp;设置两个坐标轴的范围</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">50</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">pl.ylim(0,</span><span style="color: #000000; font-size: 12pt">800</span><span style="color: #000000; font-size: 12pt">)<br /></span><span style="color: #008080; font-size: 12pt">51</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">pl.xlim(0,&nbsp;np.max(x))<br /></span><span style="color: #008080; font-size: 12pt">52</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">53</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">&nbsp;设置图的底边距</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">54</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">pl.subplots_adjust(bottom&nbsp;</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-size: 12pt">0.15</span><span style="color: #000000; font-size: 12pt">)<br /></span><span style="color: #008080; font-size: 12pt">55</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">56</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">pl.grid()&nbsp;</span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">开启网格</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">57</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br /></span><span style="color: #008080; font-size: 12pt">58</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">&nbsp;主刻度</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">59</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">ax.xaxis.set_major_locator(&nbsp;MultipleLocator(</span><span style="color: #000000; font-size: 12pt">3</span><span style="color: #000000; font-size: 12pt">)&nbsp;)<br /></span><span style="color: #008080; font-size: 12pt">60</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">ax.yaxis.set_major_locator(&nbsp;MultipleLocator(</span><span style="color: #000000; font-size: 12pt">50</span><span style="color: #000000; font-size: 12pt">)&nbsp;)<br /></span><span style="color: #008080; font-size: 12pt">61</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">62</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">&nbsp;主刻度文本用time_formatter函数计算</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">63</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">ax.xaxis.set_major_formatter(&nbsp;FuncFormatter(&nbsp;time_formatter&nbsp;)&nbsp;)</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">64</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br /></span><span style="color: #008080; font-size: 12pt">65</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">&nbsp;副刻度为</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">66</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">ax.xaxis.set_minor_locator(&nbsp;MultipleLocator(np.pi/20)&nbsp;)</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">67</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br /></span><span style="color: #008080; font-size: 12pt">68</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">获取当前x轴的label</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">69</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">locs,labels&nbsp;</span><span style="color: #000000; font-size: 12pt">=</span><span style="color: #000000; font-size: 12pt">&nbsp;pl.xticks()<br /></span><span style="color: #008080; font-size: 12pt">70</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">重新设置新的label,用时间t设置</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">71</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">pl.xticks(locs,&nbsp;t)<br /></span><span style="color: #008080; font-size: 12pt">72</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">73</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">pl.ylabel(</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #800000; font-size: 12pt">Number</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #000000; font-size: 12pt">)<br /></span><span style="color: #008080; font-size: 12pt">74</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">pl.title(</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #800000; font-size: 12pt">WCG&nbsp;=&gt;&nbsp;Samba</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #000000; font-size: 12pt">)<br /></span><span style="color: #008080; font-size: 12pt">75</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">76</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">&nbsp;设置刻度文本的大小</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">77</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">for&nbsp;tick&nbsp;in&nbsp;ax.xaxis.get_major_ticks():</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">78</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;tick.label1.set_fontsize(5)</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">79</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">pl.show()</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">80</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">pl.legend()<br /></span><span style="color: #008080; font-size: 12pt">81</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">82</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">自动调整label显示方式，如果太挤则倾斜显示</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">83</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">fig.autofmt_xdate()<br /></span><span style="color: #008080; font-size: 12pt">84</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080; font-size: 12pt">85</span><span style="color: #000000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000; font-size: 12pt">#</span><span style="color: #008000; font-size: 12pt">保存曲线为图片格式</span><span style="color: #008000"><br /></span><span style="color: #008080; font-size: 12pt">86</span><span style="color: #008000"><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000; font-size: 12pt">pl.savefig(</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #800000; font-size: 12pt">wcg.png</span><span style="color: #800000; font-size: 12pt">"</span><span style="color: #000000; font-size: 12pt">)</span></div><br />生成的曲线图：<br /><br /><img border="0" alt="" src="http://www.cnitblog.com/images/cnitblog_com/houcy/wcg.png" width="1000" height="600" /><img src ="http://www.cnitblog.com/houcy/aggbug/86938.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/houcy/" target="_blank">挑灯看剑</a> 2013-01-22 17:35 <a href="http://www.cnitblog.com/houcy/archive/2013/01/22/86938.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Django配置static文件访问，解决css样式表未被浏览器载入错误</title><link>http://www.cnitblog.com/houcy/archive/2012/12/23/86862.html</link><dc:creator>挑灯看剑</dc:creator><author>挑灯看剑</author><pubDate>Sat, 22 Dec 2012 16:16:00 GMT</pubDate><guid>http://www.cnitblog.com/houcy/archive/2012/12/23/86862.html</guid><wfw:comment>http://www.cnitblog.com/houcy/comments/86862.html</wfw:comment><comments>http://www.cnitblog.com/houcy/archive/2012/12/23/86862.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/houcy/comments/commentRss/86862.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/houcy/services/trackbacks/86862.html</trackback:ping><description><![CDATA[最近用Django为我们Team搭建HTTP Web Server时老是遇到页面布局显示凌乱，用Firebug查看了一下，有下面的错误信息，main.css样式表文件竟然没被浏览器加载，导致页面非正常显示，但是HTTP的请求和返回都是正常的。<br /><br /><div><br />[23:59:56.911] 样式表单 http://192.168.1.111:8000/static/css/main.css 未载入，因为它的MIME类型 "text/html" 不是 "text/css"。 @ http://192.168.1.111:8000/</div><div>[23:59:56.985] GET http://192.168.1.111:8000/static/css/main.css [HTTP/1.0 200 OK 15ms]</div><br /><div>查看了一下页面中确实正确地设置了"text/css"，而且HTTP返回码也是200  OK，查找了半天也没有找到原因，很是郁闷，后来直接在浏览器里尝试加载css文件，返回的竟然不是css文件内容，而是html首页内容，原来是匹配到 了url.py中的default规则了，也就是说css的路径不对，换句话说就是static文件的配置不对，原来是settings.py中 <span style="color: red;">INSTALLED_APPS</span>中把<span style="color: red;">staticfiles</span>莫名地注释掉了，取掉注释后，再重新在浏览器地址栏访问css文件，可以看到css文件内容，然后重新访问首页，一切正常了。</div><br /><br /><img src ="http://www.cnitblog.com/houcy/aggbug/86862.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/houcy/" target="_blank">挑灯看剑</a> 2012-12-23 00:16 <a href="http://www.cnitblog.com/houcy/archive/2012/12/23/86862.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下high CPU分析心得</title><link>http://www.cnitblog.com/houcy/archive/2012/11/28/86801.html</link><dc:creator>挑灯看剑</dc:creator><author>挑灯看剑</author><pubDate>Wed, 28 Nov 2012 05:21:00 GMT</pubDate><guid>http://www.cnitblog.com/houcy/archive/2012/11/28/86801.html</guid><wfw:comment>http://www.cnitblog.com/houcy/comments/86801.html</wfw:comment><comments>http://www.cnitblog.com/houcy/archive/2012/11/28/86801.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnitblog.com/houcy/comments/commentRss/86801.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/houcy/services/trackbacks/86801.html</trackback:ping><description><![CDATA[<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
  <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
  <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-US</w:LidThemeOther>
  <w:LidThemeAsian>ZH-CN</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:SpaceForUL/>
   <w:BalanceSingleByteDoubleByteWidth/>
   <w:DoNotLeaveBackslashAlone/>
   <w:ULTrailSpace/>
   <w:DoNotExpandShiftReturn/>
   <w:AdjustLineHeightInTable/>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:DontVertAlignCellWithSp/>
   <w:DontBreakConstrainedForcedTables/>
   <w:DontVertAlignInTxbx/>
   <w:Word11KerningPairs/>
   <w:CachedColBalance/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math" />
   <m:brkBin m:val="before" />
   <m:brkBinSub m:val="&#45;-" />
   <m:smallFrac m:val="off" />
   <m:dispDef/>
   <m:lMargin m:val="0" />
   <m:rMargin m:val="0" />
   <m:defJc m:val="centerGroup" />
   <m:wrapIndent m:val="1440" />
   <m:intLim m:val="subSup" />
   <m:naryLim m:val="undOvr" />
  </m:mathPr></w:WordDocument>
</xml><![endif]--><br />1.用top命令查看哪个进程占用CPU高<br />gateway网关进程14094占用CPU高达891%，这个数值是进程内各个线程占用CPU的累加值。<br /><br />
<div><span style="font-family: Lucida Console">&nbsp; PID USER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PR&nbsp; NI&nbsp; VIRT&nbsp; RES&nbsp; SHR S %CPU %MEM&nbsp;&nbsp;&nbsp; TIME+&nbsp; COMMAND&nbsp;&nbsp;&nbsp;&nbsp; <br /></span><span style="font-family: Lucida Console; color: red">14094 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15&nbsp;&nbsp; 0&nbsp; 315m&nbsp; 10m 7308 S </span><span style="font-family: Lucida Console; color: red">891%</span><span style="font-family: Lucida Console; color: red">&nbsp; 2.2&nbsp;&nbsp; 1:49.01 gateway</span>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br /><span style="font-family: Lucida Console">20642 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17&nbsp;&nbsp; 0 17784 4148 2220 S&nbsp; 0.5&nbsp; 0.8&nbsp;&nbsp; 2:39.96 microdasys&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;&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><br /><span style="font-family: Lucida Console">&nbsp;1679 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18&nbsp;&nbsp; 0 10984 1856 1556 R&nbsp; 0.3&nbsp; 0.4&nbsp;&nbsp; 0:22.21 sshd&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;&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><br /><span style="font-family: Lucida Console">22563 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18&nbsp;&nbsp; 0&nbsp; 2424 1060&nbsp; 800 R&nbsp; 0.3&nbsp; 0.2&nbsp;&nbsp; 0:00.03 top&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;&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><br /><span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18&nbsp;&nbsp; 0&nbsp; 2156&nbsp; 492&nbsp; 460 S&nbsp; 0.0&nbsp; 0.1&nbsp;&nbsp; 0:01.59 init</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div><br />2.用top -H -p pid命令查看进程内各个线程占用的CPU百分比<br /><br />#top -H -p 14094<br />top中可以看到有107个线程，但是下面9个线程占用CPU很高，下面以线程14086为主，分析其为何high CPU<br /><br />
<div>
<p><span style="font-family: Lucida Console">&nbsp; PID USER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PR&nbsp; NI&nbsp; VIRT&nbsp; RES&nbsp; SHR S %CPU MEM&nbsp;&nbsp;&nbsp; TIME+&nbsp; COMMAND&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></p>
<p><strong><span style="font-family: Lucida Console; color: #003300">14086</span></strong><span style="font-family: Lucida Console"> root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25&nbsp;&nbsp; 0&nbsp; 922m 914m 538m R&nbsp; <span style="font-family: Lucida Console; color: red">101</span></span><span style="font-family: Lucida Console"> 10.0&nbsp; 21:35.46 gateway&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></p>
<p><span style="font-family: Lucida Console">14087 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25&nbsp;&nbsp; 0 &nbsp;922m 914m 538m R&nbsp; <span style="font-family: Lucida Console; color: red">101</span></span><span style="font-family: Lucida Console"> 10.0&nbsp; 10:50.22 gateway&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></p>
<p><span style="font-family: Lucida Console">14081 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25&nbsp;&nbsp; 0&nbsp; 922m 914m 538m S&nbsp;&nbsp; <span style="font-family: Lucida Console; color: red">99</span></span><span style="font-family: Lucida Console"> 10.0&nbsp;&nbsp; 8:57.36 gateway&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></p>
<p><span style="font-family: Lucida Console">14082 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25&nbsp;&nbsp; 0&nbsp; 922m 914m 538m R&nbsp;&nbsp; <span style="font-family: Lucida Console; color: red">99</span></span><span style="font-family: Lucida Console"> 10.0&nbsp; 11:51.92 gateway&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></p>
<p><span style="font-family: Lucida Console">14089 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25&nbsp;&nbsp; 0&nbsp; 922m 914m 538m R&nbsp;&nbsp; <span style="font-family: Lucida Console; color: red">99</span></span><span style="font-family: Lucida Console"> 10.0&nbsp; 21:21.77 gateway&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></p>
<p><span style="font-family: Lucida Console">14092 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25&nbsp;&nbsp; 0&nbsp; 922m 914m 538m R&nbsp;&nbsp; <span style="font-family: Lucida Console; color: red">99</span></span><span style="font-family: Lucida Console"> 10.0&nbsp; 19:55.47 gateway&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></p>
<p><span style="font-family: Lucida Console">14094 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25&nbsp;&nbsp; 0&nbsp; 922m 914m 538m R&nbsp;&nbsp; <span style="font-family: Lucida Console; color: red">99</span></span><span style="font-family: Lucida Console"> 10.0&nbsp; 21:02.21 gateway&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></p>
<p><span style="font-family: Lucida Console">14083 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25&nbsp;&nbsp; 0&nbsp; 922m 914m 538m R&nbsp;&nbsp; <span style="font-family: Lucida Console; color: red">97</span></span><span style="font-family: Lucida Console"> 10.0&nbsp; 21:32.39 gateway&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></p><span style="font-family: Lucida Console; font-size: 11pt">14088&nbsp; root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25&nbsp;&nbsp; 0&nbsp;&nbsp; 922m 914m&nbsp; 538m R&nbsp;&nbsp;&nbsp; <span style="font-family: Lucida Console; color: red">97</span></span><span style="font-family: Lucida Console; font-size: 11pt"> 10.0&nbsp;&nbsp; 11:23.12&nbsp; gateway </span></div><br />3.使用gstack命令查看进程中各线程的函数调用栈<br />#gstack 14094 &gt; gstack.log<br />在gstack.log中查找线程ID14086，由于函数栈会暴露函数细节，因此只显示了两个函数桢，线程ID14086对应线程号是37<br /><br />
<div>Thread <span style="color: #800000">37</span> (Thread 0x4696ab90 (LWP <span style="color: #800000">14086</span>)):<br />#0&nbsp; 0x40000410 in __kernel_vsyscall ()<br />#1&nbsp; 0x40241f33 in poll () from /lib/i686/nosegneg/libc.so.6</div><br />4.使用gcore命令转存进程映像及内存上下文<br /><br />#gcore 14094<br />该命令生成core文件core.14094<br /><br /><br />5。用strace命令查看系统调用和花费的时间<br />#strace -T -r -c -p 14094<br /><br />-c参数显示统计信息，去掉此参数可以查看每个系统调用话费的时间及返回值。<br /><br />
<div>
<p><span style="font-family: 'Courier New'; color: black">% time&nbsp;&nbsp;&nbsp;&nbsp; seconds&nbsp; usecs/call&nbsp;&nbsp;&nbsp;&nbsp; calls&nbsp;&nbsp;&nbsp; errors &nbsp;&nbsp;&nbsp; </span>&nbsp;&nbsp; <span style="font-family: 'Courier New'; color: black">syscall</span></p>
<p><span style="font-family: 'Courier New'; color: black">------ ----------- ----------- --------- --------- ----------------------------</span></p>
<p><span style="font-family: 'Courier New'; color: #c00000">99.99&nbsp;&nbsp; 22.683879&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3385&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6702&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </span>&nbsp;&nbsp; &nbsp;&nbsp; <span style="font-family: 'Courier New'; color: #c00000">poll</span></p>
<p><span style="font-family: 'Courier New'; color: black">&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.001132&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6702&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </span>&nbsp;&nbsp; &nbsp;&nbsp; <span style="font-family: 'Courier New'; color: black">gettimeofday</span></p>
<p><span style="font-family: 'Courier New'; color: black">&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.000127&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 208&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 208 &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; accept</span></p>
<p><span style="font-family: 'Courier New'; color: black">&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.000022&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read</span></p>
<p><span style="font-family: 'Courier New'; color: black">&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write</span></p>
<p><span style="font-family: 'Courier New'; color: black">&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; close</span></p>
<p><span style="font-family: 'Courier New'; color: black">&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; time</span></p>
<p><span style="font-family: 'Courier New'; color: black">&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stat64</span></p>
<p><span style="font-family: 'Courier New'; color: black">&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; clock_gettime</span></p>
<p><span style="font-family: 'Courier New'; color: black">&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; send</span></p>
<p><span style="font-family: 'Courier New'; color: black">&nbsp; 0.00&nbsp;&nbsp;&nbsp; 0.000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recvfrom</span></p>
<p><span style="font-family: 'Courier New'; color: black">------ ----------- ----------- --------- --------- ------------------------------</span></p>
<p><span style="font-family: 'Courier New'; color: black">100.00&nbsp;&nbsp; 22.685160&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13652&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 218 total</span></p></div><br /><br /><br />
<div>6.用gdb调试core文件，并线程切换到37号线程<br />gcore和实际的core dump时产生的core文件几乎一样，只是不能用gdb进行某些动态调试<br /><br />
<div>(gdb) gdb gateway core.14094 <br />(gdb) thread 37<br />[Switching to thread 37 (Thread 0x4696ab90 (LWP 14086))]#0&nbsp; 0x40000410 in __kernel_vsyscall ()<br />(gdb) where<br />#0&nbsp; 0x40000410 in __kernel_vsyscall ()<br />#1&nbsp; 0x40241f33 in poll () from /lib/i686/nosegneg/libc.so.6</div><br />可以根据详细的函数栈进行gdb调试，打印一些变量值，并结合源代码分析为何会poll调用占用很高的CPU。<br />因为代码涉及到公司产权，顾不在此做详细分析，需要明白的是分析的流程和使用的命令。<br /><br />流程为：进程ID-&gt;线程ID-&gt;线程函数调用栈-&gt;函数耗时和调用统计-&gt;源代码分析</div><img src ="http://www.cnitblog.com/houcy/aggbug/86801.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/houcy/" target="_blank">挑灯看剑</a> 2012-11-28 13:21 <a href="http://www.cnitblog.com/houcy/archive/2012/11/28/86801.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>贝叶斯邮件过滤算法理论收集整理［转］</title><link>http://www.cnitblog.com/houcy/archive/2012/10/13/86646.html</link><dc:creator>挑灯看剑</dc:creator><author>挑灯看剑</author><pubDate>Sat, 13 Oct 2012 11:46:00 GMT</pubDate><guid>http://www.cnitblog.com/houcy/archive/2012/10/13/86646.html</guid><wfw:comment>http://www.cnitblog.com/houcy/comments/86646.html</wfw:comment><comments>http://www.cnitblog.com/houcy/archive/2012/10/13/86646.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/houcy/comments/commentRss/86646.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/houcy/services/trackbacks/86646.html</trackback:ping><description><![CDATA[<div><span style="font-size: 10.5pt; font-family: 宋体;">一、 贝叶斯垃圾邮件过滤算法理论介绍<br /><img alt="" src="http://images.cnblogs.com/cnblogs_com/zkliuym/1.gif" border="0" height="418" width="356" /><br /><img alt="" src="http://images.cnblogs.com/cnblogs_com/zkliuym/2.gif" border="0" height="471" width="367" /><br /><img alt="" src="http://images.cnblogs.com/cnblogs_com/zkliuym/3.gif" border="0" height="543" width="392" /><br /><img alt="" src="http://images.cnblogs.com/cnblogs_com/zkliuym/4.gif" border="0" height="543" width="409" /><br /><br />二、 贝叶斯过滤算法的基本步骤<br /><br />　　1. 收集大量的垃圾邮件和非垃圾邮件，建立垃圾邮件集和非垃圾邮件集。 </span> <p><span style="font-size: 10.5pt; font-family: 宋体;">　　2. 提取邮件主题和邮件体中的独立字符串，例如 ABC32，￥234等作为TOKEN串并统计提取出的TOKEN串出现的次数即字频。按照上述的方法分别处理垃圾邮件集和非垃圾邮件集中的所有邮件。 </span></p> <p><span style="font-size: 10.5pt; font-family: 宋体;">　　3. 每一个邮件集对应一个哈希表，hashtable_good对应非垃圾邮件集而hashtable_bad对应垃圾邮件集。表中存储TOKEN串到字频的映射关系。 </span></p> <p><span style="font-size: 10.5pt; font-family: 宋体;">　　4. 计算每个哈希表中TOKEN串出现的概率P=（某TOKEN串的字频）/（对应哈希表的长度） </span></p> <p><span style="font-size: 10.5pt; font-family: 宋体;">　　5. 综合考虑hashtable_good和hashtable_bad，推断出当新来的邮件中出现某个TOKEN串时，该新邮件为垃圾邮件的概率。数学表达式为： </span></p> <p><span style="font-size: 10.5pt; font-family: 宋体;">　　A 事件 ---- 邮件为垃圾邮件； </span></p> <p><span style="font-size: 10.5pt; font-family: 宋体;">　　t1,t2 &#8230;&#8230;.tn 代表 TOKEN 串 </span></p> <p><span style="font-size: 10.5pt; font-family: 宋体;">　　则 P （ A|ti ）表示在邮件中出现 TOKEN 串 ti 时，该邮件为垃圾邮件的概率。 </span></p> <p><span style="font-size: 10.5pt; font-family: 宋体;">　　设 </span></p> <p><span style="font-size: 10.5pt; font-family: 宋体;">　　P1 （ ti ） = （ ti 在 hashtable_good 中的值） </span></p> <p><span style="font-size: 10.5pt; font-family: 宋体;">　　P2 （ ti ） = （ ti 在 hashtable_ bad 中的值） </span></p> <p><span style="font-size: 10.5pt; font-family: 宋体;">　　则 P （ A|ti ） =P2 （ ti ） /[ （ P1 （ ti ） +P2 （ ti ） ] ； </span></p> <span style="font-size: 10.5pt; font-family: 宋体;"> <p><br />　　6. 建立新的哈希表hashtable_probability存储TOKEN串ti到P（A|ti）的映射 </p> <p>　　7. 至此，垃圾邮件集和非垃圾邮件集的学习过程结束。根据建立的哈希表 hashtable_probability可以估计一封新到的邮件为垃圾邮件的可能性。 </p> <p>　　当新到一封邮件时，按照步骤2，生成TOKEN串。查询hashtable_probability得到该TOKEN 串的键值。 </p> <p>　 　假设由该邮件共得到N个TOKEN 串，t1,t2&#8230;&#8230;.tn,hashtable_probability中对应的值为 P1 ， P2 ， &#8230;&#8230;PN ， P(A|t1 ,t2, t3&#8230;&#8230;tn) 表示在邮件中同时出现多个TOKEN串t1,t2&#8230;&#8230;tn时，该邮件为垃圾邮件的概率。 </p> <p>　　由复合概率公式可得 <br />　　P(A|t1 ,t2, t3&#8230;&#8230;tn)=（P1*P2*&#8230;&#8230;PN）/[P1*P2*&#8230;&#8230;PN+（1-P1）*（1-P2）*&#8230;&#8230;（1-PN）] </p> <p>　　当 P(A|t1 ,t2, t3&#8230;&#8230;tn) 超过预定阈值时，就可以判断邮件为垃圾邮件。 <br /><br /><br />三、 贝叶斯过滤算法举例 </p> <p>　　例如：一封含有 &#8220; 某某功 &#8221; 字样的垃圾邮件 A 和一封含有 &#8220; 法律 &#8221; 字样的非垃圾邮件 B 。 根据邮件 A 生成 hashtable_bad ，该哈希表中的记录为 </p> <p>　　某： 1 次 </p> <p>　　某： 1 次 </p> <p>　　功： 1 次 </p> <p>　　计算得在本表中： </p> <p>　　某出现的概率为 0.3 </p> <p>　　某出现的概率为 0.3 </p> <p>　　功出现的概率为 0.3 </p> <p>　　根据邮件B生成hashtable_good，该哈希表中的记录为： </p> <p>　　法： 1 次 </p> <p>　　律： 1 次 </p> <p>　　计算得在本表中： </p> <p>　　法出现的概率为 0.5 </p> <p>　　律出现的概率为 0.5 </p> <p>　　综合考虑两个哈希表，共有四个 TOKEN 串：法 轮 功 律 </p> <p>　　当邮件中出现&#8220;法&#8221;时，该邮件为垃圾邮件的概率为： </p> <p>　　P = 0.3/ （ 0.3 + 0.5 ） = 0.375 </p> <p>　　出现&#8220;轮&#8221;时，该邮件为垃圾邮件的概率为： </p> <p>　　P = 0.3/ （ 0.3 + 0 ） = 1 </p> <p>　　出现&#8220;功&#8221;时，该邮件为垃圾邮件的概率为： </p> <p>　　P = 0.3/ （ 0.3 + 0 ） = 1 </p> <p>　　出现&#8220;律&#8221;时，该邮件为垃圾邮件的概率为： </p> <p>　　P = 0/ （ 0 + 0.5 ） = 0 </p> <p>　　由此可得第三个哈希表 hashtable_probability ，其数据为： </p> <p>　　法： 0.375 </p> <p>　　轮： 1 </p> <p>　　功： 1 </p> <p>　　律： 0&nbsp;<br /><br />&nbsp;&nbsp;&nbsp; （注明：在实际应用中不可以将概率指定为1或者0，可以用相关的高概率或者低概率值来代替。）</p> <p>　　当新到一封含有&#8220;功律&#8221;的邮件时，我们可得到两个TOKEN串：功 律 </p> <p>　　查询哈希表 hashtable_probability 可得： </p> <p>　　P （垃圾邮件 | 功） = 1 </p> <p>　　P （垃圾邮件 | 律） = 0 </p> <p>　　此时该邮件为垃圾邮件的可能性为： </p> <p>　　P= （ 0*1 ） /[0*1+ （ 1-0 ） * （ 1-1 ） ] = 0 </p> <p>　　由此可推出该邮件为非垃圾邮件。 </p></span></div><img src ="http://www.cnitblog.com/houcy/aggbug/86646.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/houcy/" target="_blank">挑灯看剑</a> 2012-10-13 19:46 <a href="http://www.cnitblog.com/houcy/archive/2012/10/13/86646.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>少壮不努力，一生在内地；年少不拼搏，老死在中国；英语学不牢，世代在天朝。</title><link>http://www.cnitblog.com/houcy/archive/2012/10/06/86612.html</link><dc:creator>挑灯看剑</dc:creator><author>挑灯看剑</author><pubDate>Sat, 06 Oct 2012 15:23:00 GMT</pubDate><guid>http://www.cnitblog.com/houcy/archive/2012/10/06/86612.html</guid><wfw:comment>http://www.cnitblog.com/houcy/comments/86612.html</wfw:comment><comments>http://www.cnitblog.com/houcy/archive/2012/10/06/86612.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/houcy/comments/commentRss/86612.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/houcy/services/trackbacks/86612.html</trackback:ping><description><![CDATA[To be or not to be, that's a question!<img src ="http://www.cnitblog.com/houcy/aggbug/86612.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/houcy/" target="_blank">挑灯看剑</a> 2012-10-06 23:23 <a href="http://www.cnitblog.com/houcy/archive/2012/10/06/86612.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个男人关心的东西决定了他的层次 </title><link>http://www.cnitblog.com/houcy/archive/2012/03/22/78214.html</link><dc:creator>挑灯看剑</dc:creator><author>挑灯看剑</author><pubDate>Thu, 22 Mar 2012 04:45:00 GMT</pubDate><guid>http://www.cnitblog.com/houcy/archive/2012/03/22/78214.html</guid><wfw:comment>http://www.cnitblog.com/houcy/comments/78214.html</wfw:comment><comments>http://www.cnitblog.com/houcy/archive/2012/03/22/78214.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/houcy/comments/commentRss/78214.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/houcy/services/trackbacks/78214.html</trackback:ping><description><![CDATA[<div>一、拥有自信和风度<br /><br />男人到了二十几岁后，就要开始学着用心去经营自己了，它体现在自己的思想与涵养上。自信是一个男人最重要的品质，自信的男人就你像一只在暴风雨中战斗的海鸥。海鸥所要说的只有一句话&#8220;让暴风雨来的再猛烈些吧&#8221;，只因为它无所畏惧。一个自信的男人，总是能够感染别人，无论这些人是朋友还是敌人。要使别人对你有信心，就必须要先对自己充满信心。自信的男人可以战胜一切困难。<br />一个有风度的男人就像一片大海，不拒点滴，又包容江河。有风度使男人得到更多的青睐，不争眼前才能够放眼世界，给予别人才能够受益无穷。正所谓&#8220;宰相肚里能撑船&#8221;，一个心如大海的男人，肚中不知能撑多少船呀！风度偏偏让男人看上去潇洒万千。<br /><br />二、养成看书和写作的习惯<br /><br />男人到了二十几岁后，就开始要走入社会了，在与别人交往的过程中，谈吐与修养是最能征服别人的。一个有知识的男人一定是常看书的，一个有智慧的男人一定是常写作的。无论自己多忙，都要抽出时间来看看书，写写文章。因为这样做能够改变一个男人的思想与行为。一个男人要改变自己思想首先要做的就是读一本好书，读一本书就像交了一个好朋友，他能够帮助你走好自己的路。读书的生活是最丰富多彩的，写作的时光是最能启迪智慧的。<br />喜欢看书和写作的男人，一定能够培养出一个好的心态。因为知识与智慧的海洋是无边无际的，但喜欢看书和写作的男人却能做到执著追求。追求是一个男人的思想，也是一个男人的行动，永不放弃地追求，无时不刻的在激励的男人去战斗。在这种战斗中，使一个男人能够经历风雨的洗礼，成长为一棵参天大树。读书使男人变得的冷静，写作使男人变得成熟。<br /><br />三、要试着发现生活里的真、善、美<br /><br />男人到了二十几岁后，就要学会如何去面对生活。什么是&#8220;真&#8221;，现在的男人越来越不懂，那是因为现在的男人都很浮躁，他们不懂什么才是&#8220;真心&#8221;地去生活。 &#8220;真&#8221;，就是对自己实事求是，不要骗自己，也不要骗别人。&#8220;真&#8221;，就是诚实做人，诚实做事，诚实的男人最可爱。&#8220;善&#8221;，自然是善良的意思了。善待别人，就是在善待自己的生活。&#8220;善&#8221;其实就在我们每一个人的身边，不要为难别人，不要挖苦别人，不要侮辱别人，就是善良的行为。有时你的一点点善意就能结出一个善果，使你的生活因此而变得幸福。<br />哲人说，&#8220;生活中本不缺少美，缺少的是发现美的眼睛&#8221;。是的，生活也的确是如此。不要总在惦记着自己的不幸，这样做只能使你生活的更加不幸。你觉得&#8220;不幸&#8221;是因为你无法乐观的面对生活，生活总是充满着希望的。只要你常常抬抬头，看看阳光，你就能感受到温暖。在温暖中乐观地去追美好的人生，你自然能够发现美。<br /><br />四、与有思想的人交朋友<br /><br />男人到了二十几岁后，就要开始有目的性的去选择朋友了。社会中的人脉关系是非常重要的，你的朋友圈子将对你的人生起着很大的影响。男人要广交朋友，多交诤友，不交损友。所谓诤友就是那些对你有帮助的朋友，而这些人往往自身也很优秀。多交诤友对一个人的生活、工作都是非常有益的。但真正的诤友也不易结交，因为这种朋友需要你付出极大的真诚，发自内心的真诚。<br />有思想的朋友，他很清楚你有没有把他当作朋友。如果你只是在利用他，他在心中是不会把你当作朋友来看待的。交朋友有时并没有什么目的性，你只是觉得这个人很有思想，值得你与之相交。但往往就是这些有思想的朋友，在你最困难的时候向你伸出他的手。朋友，是一个男人生命中最重要的元素的之一。一个男人要想使自己像一人真正的男人那样活着，就一定要广交朋友，多交诤友。<br /><br />五、必须改掉自身的不良习惯<br /><br />男人到了二十几岁后，就必须要改掉自身的不良习惯。不良的习惯是养成的，良好的习惯也是养成。培养自己拥有良好的习惯，就是在改掉自身的不良习惯。如果一个男人到了二十几岁后，身上还有这样那样的不良习惯，那就是一件非常糟糕的事情了。这些不良的习惯会阻碍你人生的发展，生活会因此而失去不少光彩，事业也会因此难以取得更大的成功。<br />如果你到现在还爱睡懒觉，那么清晨的第一抹阳光永远也不会照到你的笑脸上。如果你到现在还总是拖拖拉拉的，那么你将永远也无法站在冠军的位置上。如果你到现在还不会主动的去学习和工作，那么你的前途只能是一片暗淡无光的灰色。我相信没有哪一个男人想要灰色的人生，所有的男人都期望自己能有一个绚丽多彩的人生。所以为了使自己的人生绚丽多彩，男人到了二十几岁后，就必须要改掉自身的不良习惯。<br /><br />六、学会忍耐与宽容<br /><br />男人到了二十几岁后，就要学会忍耐与宽容。在社会中常有许多你无法接受的事情，但这些事情你又不得不接受时，这就需要你的忍耐。忍耐别人其实也是在宽容别人，一个能够宽容别人的男人会显得很大度。成功的男人往往也是一个能够忍辱负重的男人。耐得住寂寞的男人从不甘寂寞，男人的忍耐是为了更好的爆发。<br />对那些说我们是傻瓜的人，说一句&#8220;我就是傻瓜&#8221;，使他们不知所措吧！对于那些无故指责我们的人，不要与他们争论，因为这样只会使自己变的愤怒。与其去伤害别人，不如去宽容别人，宽容是治疗他人伤口最好的灵丹圣药。<br /><br />七、保持良好的心态，重视自己的身体<br /><br />男人到了二十几岁后，就要学会调节自己的心态，重视自己的身体。身体是革命的本钱，心态是验钞机。男人要想获取更多的财富就要拥有一副强健的体魄，男人要想长久的做首富就要拥有一种积极乐观的心态。注意饮食，经常锻练，充足的睡眼，是健康身体的保证。不要患得患失，勤奋拼搏，让心态决定一切。<br />你可以不用天天去晨跑，其实那也不会占用你多长的时间，需要的只是恒心和毅力。但你一定要时常去运动一下你的身体，散步是一种不错的选择，这样做会使你充满力量。你在冬天可以不用冷水洗澡，其实那也没有什么大不了的，因为我也曾坚持过一个冬天。但你在冬天一定要经常用冷水洗洗脸，这样做不仅可以防止感冒，还能保持一个清醒的头脑。你可以失败，但你永远要保持一种求胜的心态，战胜自己你就没有敌人。<br /><br />八、时刻保持你的微笑，让礼貌成为你的名片<br /><br />男人到了二十几岁后，要时刻保持你的微笑。笑脸迎人，说明你是一个善良的人，所有的人都愿意与善良的人打交道。不要把苦闷写在你的脸上，这样只会使别人远离你。你是什么样的人，别人通过你是否微笑着与他打招呼来判断。而这种判断对你在人家心中的印象起着很重要的作用。<br />人们常说&#8220;细节决定成败&#8221;，而这细节往往就反应在你是不是一个有礼貌的人。有礼貌的人，知道关心别人。别人也会因为你的礼貌与关心，而给你走向成功的机会。男人的名片是微笑与礼貌，它是男人成就事业的通行证。<br /><br />九、追求一个自己真正爱的女人，你一辈子也不会后悔<br /><br />男人到了二十几岁后，慢慢地就会极渴望爱情。这是非常正常的事情，千万不压抑自己这种发自内心的情感。一个男人最傻最可爱的时候就是当他爱上了一个女人的时候。当你爱上一个女人却不知道她会不会爱上你的时候，你一定要选择一个恰当的时间向他表白。至于他是选择接受还选择拒绝那就要看你们之间的缘份和你的努力了。男人一定要明白，女人最渴望的一定是一个深爱着她的男人。<br />爱情这种事不能强求，男人一定要明白。千万不要因为得不到你的爱情就让你的友情轻易的失去，能与一个自己曾经爱过的女人成为朋友是一件不可多得的好事。爱情之所以神圣不可侵犯，是因为它是人最心甘情愿的选择，它体现的人与人之间的尊重与信任。所以男人一定要尊重你爱着的那个女人的选择，相信她的选择是为了她自己的幸福而做出的决定。只要你曾经追求一个自己真正爱的女人，那么你一辈子也不会后悔。<br /><br />十、为了自己的事业付出一切<br /><br />男人到了二十几岁后，一定要为了自己的事业去努力拼搏。男人最重要的就是事业，没有事业的男人不能算作真正的男人。男人的事业不定要轰轰烈烈，但一定要有所成就，能使自己感到骄傲和自豪。一个事业心强的男人，也是一个求胜心与责任心同样强的男人。求胜心强的男人，从不甘平庸。责任心强的男人，从不惧困难。男人因自己成功的事业而变得高大，从而获得别人的尊重和信任。<br />作为一个男人，就要为了自己的事业付出一切。要想成功你必须付出，而付出就意味你要失去一些东西。如果你不想为事业付出任何代价，那么你只能失去更多的东西，而且最后还一无所获。<br />十一、爱情跟事业是可以共同拥有的<br /><br />男人到了二十几岁后，就应该努力做到爱情跟事业的双丰收。人们常说一个男人如果选择了爱情就会失去事业，如果选择了事业就得不到爱情。我却偏偏不这样认为，我反而觉得爱情越甜蜜的男人，事业越成功。其实爱情和事业本就是两回事，爱得轰轰烈烈的男人，一点也不会妨碍其获得成功的事业。一个有爱情滋润的男人一定比一个不知爱情是什么味道的男人更成熟，更有魅力，更有干一番事业的决心。<br />二十几岁的男人们，千万不要相信那些偏激的人所说的话。就像人们常说的 &#8220;婚姻是爱情的坟墓&#8221;，这种说法太偏激了。婚姻与爱情的区别只是多了一些&#8220;柴米油盐&#8221;，可以说婚姻才是一种完整的爱情，之前的爱情只是处在一种恋爱的阶段。也只有通过婚姻才能使男人和女人彻底的认识什么是爱情。爱情就是相互理解，相互鼓励，相互支持。在生活上彼此帮助，在事业上彼此帮助，让爱情跟事业可以双丰收。<br /><br />十二、一定要努力比女人做的更好<br /><br />男人到了二十几岁后，在任何事上一定要努力比女人做的更好。即使在一些不可能比女人做的更好的事情上，也要努力做的和女人一样好。在这里这不是想说男人天生就应该比女人强，而是要说男人天生就应该比女人做的更好。因为只要女人努力了，就很容易超越男人，所以男人应该知道努力比女人做的更好是天经地义的事情。在如今的社会，女人的地位越来越高了，女人第一次有了选择男人的权力。所以如果作为男人的你，不能比女人做的更好，那么女人凭什么选择你呢？<br />女人们常说&#8220;女子能顶半边天&#8221;，而且现在的女人在本属于男人的某些领域里比男人做的更出色。所以男人不仅要在属于自己的领域里做的非常出色，而且也要能在本属于女人的领域里做得一样的出色。<br /><br />十三、努力帮自己的妻子实现她的梦想<br />男人到了二十几岁后，如果你已经结婚了，那就请你一定要努力帮自己的妻子实现她的梦想。人们学说&#8220;男人靠征服世界来征服女人，女人靠征服男人来征服世界&#8221;，所以一个已经征服了你的女人，你一定要努力帮她征服世界。女人的梦想从不会因为和一个男人生活在一起了而消失掉，只会因此而变得更加强烈。女人这种强烈的愿望和梦想也许不会表现在你的面前，但你的心中一定要明白。<br />妻子是一个男人生命的核心，妻子生活得是否幸福，男人一定要关心。不要以为妻子取回家，就是来为你服务的。每一个男人的妻子都会关心自己的丈夫，每一个男人也要学会关心自己的妻子。而最关心妻子的事，莫过于关心她的梦想是什么，怎么做才能帮妻子实现她的梦想。<br /><br />十四、学会勇敢一些，去承担起自己肩上的责任<br /><br />男人到了二十几岁后，要学会勇敢一些，挻起自己的肩膀去承担起属于自己的那份义不容辞的责任。孝顺父母是一个男人责任，疼爱妻儿是一个男人的责任，成就事业也是一个男人的责任。男人的责任不外乎家庭和事业。这些责任的确比较沉重，但作为一个男人你必须挻起自己的肩膀去承担。没有什么原因，只因为你是一个男人。<br />男人一样有权力哭泣，但却没有权力哭出声音来。男人一样有权力流泪，但却没有权力在父母妻儿面前流泪。男人一样有权力放弃，但却没有权力放弃家庭与事业上的责任。作为一个男人，你别无选择，你只能选择承担，用你的肩膀去承担。<br /><br /><br />十五、永远不要放弃自己，相信自己一定能行<br /><br />男人到了二十几岁后，就必须做到永远不要放弃自己。别人之所以放弃你，那就因为你已经先放弃了自己。相信只要你不放弃自己，没有哪个人会放弃你或者说没有哪个人能放弃你。相信自己是一个男人战胜一切的力量之源，不相信自己的男人没有成功的理由，因为他的一脚已经跨到了失败的坟墓中。<br />有一句广告语，这样说&#8220;相信自己，力量在心中&#8221;。还有一句广告语，这样说&#8220;我能&#8221;。是的，我想，我也相信只要每一个男人能够做到相信自己，你就一定能行。</div><img src ="http://www.cnitblog.com/houcy/aggbug/78214.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/houcy/" target="_blank">挑灯看剑</a> 2012-03-22 12:45 <a href="http://www.cnitblog.com/houcy/archive/2012/03/22/78214.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++好网站及其他网站收录</title><link>http://www.cnitblog.com/houcy/archive/2011/09/21/75571.html</link><dc:creator>挑灯看剑</dc:creator><author>挑灯看剑</author><pubDate>Wed, 21 Sep 2011 02:43:00 GMT</pubDate><guid>http://www.cnitblog.com/houcy/archive/2011/09/21/75571.html</guid><wfw:comment>http://www.cnitblog.com/houcy/comments/75571.html</wfw:comment><comments>http://www.cnitblog.com/houcy/archive/2011/09/21/75571.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/houcy/comments/commentRss/75571.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/houcy/services/trackbacks/75571.html</trackback:ping><description><![CDATA[<p align="left"><strong>** C++ 灵魂人物(Spirit)</strong></p>
<p align="left">Bjarne Stroustrup&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<a href="http://www.research.att.com/~bs/" target="_blank">http://www.research.att.com/~bs/</a></p>
<p align="left">Stanley B. Lippman&nbsp; &nbsp;&nbsp; &nbsp;<a href="http://people.we.mediaone.net/stanlipp/index.html" target="_blank">http://people.we.mediaone.net/stanlipp/index.html</a></p>
<p align="left">Scott Meyers&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<a href="http://www.aristeia.com/" target="_blank">http://www.aristeia.com/</a></p>
<p align="left">David Musser&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<a href="http://www.cs.rpi.edu/~musser/" target="_blank">http://www.cs.rpi.edu/~musser/</a></p>
<p align="left">Bruce Eckel&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<a href="http://www.cs.rpi.edu/~musser/" target="_blank">http://www.bruceeckel.com</a></p>
<p align="left">Nicolai M. Josuttis&nbsp; &nbsp;<a href="http://www.chinaitpower.com/www.josuttis.com/" target="_blank">&nbsp;[url]http://www.josuttis.com/</a>[/url]</p>
<p align="left">Herb Sutter&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<a href="http://www.gotw.ca/" target="_blank">http://www.gotw.ca/</a></p>
<strong>** C++ 深度探索(Inside)</strong><br />
<strong>C++ 编译器免费下载或试用</strong><br />
Borland C++ 5.5&nbsp;http://www.borland.com/bcppbuilder/freecompiler/cppc55steps.html<br />
cygwin&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;http://sources.redhat.com/cygwin/<br />
KAI C++&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;http://www.kai.com/<br />
GNU C++&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;http://gcc.gnu.org/<br />
C++ 相关资源(很好的C++英文程序网站)G++ FAQ&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;http://www.faqs.org/faqs/g++-FAQ/<br />
ISO IEC JTC1/SC22/WG21 - C++&nbsp;&nbsp;http://anubis.dkuug.dk/jtc1/sc22/wg21/<br />
open source project&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;http://www.sourceforge.net&nbsp;<br />
C++ Boost&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;http://www.boost.org/&nbsp;<br />
中文C++技术网&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<a href="http://flagon.net9.org/" target="_blank">http://flagon.net9.org/&nbsp;</a><br />
<br />
<strong>泛型编程 GP / STL</strong><br />
STLport&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;http://www.stlport.org/&nbsp;<br />
Dinkum C++ Library&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;http://www.dinkumware.com/<br />
SGI STL&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;http://www.sgi.com/tech/stl/&nbsp;<br />
RougeWave Standard C++ Library&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;http: //www.ccd.bnl.gov/bcf/cluster/pgi/pgC++_lib/stdlib.htm<br />
A collection of STL documentation&nbsp; &nbsp;http://www.ge.infn.it/geant4/training/stl.html<br />
<strong>期刊</strong>&nbsp;<br />
Dr. Dobb's Journal&nbsp; &nbsp;&nbsp;http://www.ddj.com/<br />
C/C++ Users Journal&nbsp; &nbsp;&nbsp;http://www.cuj.com/<br />
<br />
<strong>** C++ 网络导向(Net)</strong>&nbsp;<br />
网络编程(programsalon)&nbsp;http://www.programsalon.com/default.asp&nbsp;(附大量网络程序代码)<br />
Linux&nbsp;http://www.linuxbyte.net<br />
永远的UNix 编程&nbsp;http://www.fanqiang.com/<br />
<br />
<strong>** C++ 广度延伸(Explore)</strong><br />
<strong>Patterns</strong>&nbsp;<br />
Pattern Depot&nbsp; &nbsp;http://www.patterndepot.com<br />
Huston Design Patterns&nbsp;&nbsp;http://rampages.onramp.net/~huston/dp/patterns.html<br />
软件工程专家网 [url=file:///F:/server?%27))window.location=%27<a href="http://www.21cmm.com/%27" target="_blank">http://www.21cmm.com/%27</a>]http://www.21cmm.com[/url]&nbsp;***&nbsp;<br />
系统分析员之窗 [url=file:///F:/server?%27))window.location=%27<a href="http://www.sawin.com.cn/%27" target="_blank">http://www.sawin.com.cn/%27</a>]http://www.sawin.com.cn/[/url]&nbsp;&nbsp;**&nbsp;<br />
工程技术资料 [url=file:///F:/server?%27))window.location=%27<a href="http://person.zj.cninfo.net/~yhaiyan/index.htm%27" target="_blank">http://person.zj.cninfo.net/%7Eyhaiyan/index.htm%27</a>]http://person.zj.cninfo.net/~yhaiyan/index.html[/url]**<br />
<strong>UML</strong>&nbsp;UML Resource Page&nbsp; &nbsp;<a href="http://www.omg.org/technology/uml" target="_blank">http://www.omg.org/technology/uml/&nbsp;</a><br />
UML 播种机&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<a href="http://www.umlchina.com/" target="_blank">http://www.umlchina.com</a><br />
<strong>其他技术连结</strong>&nbsp;&nbsp;AT&amp;T Labs Research - Software Tools&nbsp; &nbsp;<a href="http://www.research.att.com/sw/tools/" target="_blank">http://www.research.att.com/sw/tools/</a><br />
MSDN&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<a href="http://www.chinaitpower.com/msdn.microsoft.com" target="_blank">&nbsp;[url]http://msdn.microsoft.com</a>[/url]&nbsp;toGet 软件资料库 [url=file:///F:/toget.pchome.com.tw/intro/network_homepage/network_homepage_effect/20000107_5273.html]toget.pchome.com.tw/intro/network_homepage/network_homepage_effect/20000107_5273.html[/url]<br />
<br />
&nbsp;安全网站<br />
http://www.securityfocus.com<br />
http://www.20cn.net 20cn网络安全小组&nbsp;<br />
http://www.cnns.net/frankie 早期黑客网站(<a href="http://www.cnns.net/frankie/hack/hac1.htm" target="_blank">http://www.cnns.net/frankie/hack/hac1.htm</a>)<br />
http://www.chinawebfan.com/abc/hlc/ 中华黑盟&nbsp;http://www.xfocus.net 不错的安全站点，有一些编程知识<br />
http://www.peckerland.com 有很多网络高手的网站&nbsp;http://www.netxeyes.com 小榕软件&nbsp;++<br />
http://fetag.dhs.org/, coolfire 大师级的黑客个人网站&nbsp;中联绿盟--绿色兵团的商业网站<a href="http://www.nsfocus.com/" target="_blank">http://www.nsfocus.com</a><br />
绿色兵团--国内很老的黑客站<br />
http://www.vertarmy.com&nbsp;红客联盟--近来新崛起势力很旺的黑客网站<br />
http://www.cnhonker.org<br />
白菜乐园--著名的国内解密加密网站<br />
http://secrecy.ayinfo.ha.con&nbsp;中国鹰派--鹰派主站<br />
http://www.chinawill.com<br />
http://www.is01.com&nbsp;http://www.huzhou.zj.cn/~yuange/　　袁哥的技术网<br />
http://www.safefan.com/index1.htm　傲气雄鹰&nbsp;网络技术--外国网站<br />
http://www.hack.co.za&nbsp;<br />
<br />
网络安全评估中心<br />
http://www.msecure.org&nbsp;<strong>其他(计算机)</strong>&nbsp;<br />
http://pande.363.net/ 程序。英语 不少介绍程序员故事及风格的文章<br />
http://www.lili.cc/ 2000年最佳女性网站&nbsp;&nbsp;http://www.xxinfo.net 湘西数码港(<a href="http://www.416000.com/" target="_blank">www.416000.com</a>) http://asm.yeah.net/（<a href="http://bigluo.tz163.net/" target="_blank">http://bigluo.tz163.net</a>） 罗云彬编程乐园　好的汇编网站<br />
http://www.zoudan.com 邹丹 http://www.drbob42.com经典个人Notes和Delphi，Linux结合网站<br />
http://www.codelphi.com (codelphi)中国开发在线，不错的中文delphi网站,用户<br />
http://sunsite.icm.edu.pl delphi经典网站 http://vcl.vclxx.org/ delphi 深度历险　 风魂--以游戏编程为主<br />
http://member.netease.com/~cloudwu&nbsp;<br />
Oracle 技术网，大量的oracle知识　<br />
http://www.oradb.net Lotus 莲花中国官方网站<br />
http://www.lotus.com.cn<br />
很好的英文notes网站，在iris sandbox有不少专家例子<br />
http://www.notes.net 由专家和教授建立的英文网站，在download中心有不少好例<br />
http://www.notes411.com<br />
个人很好的英文网站，有个人产品例子及好贴子<br />
http://www.notesdesign.com 电脑爱好者杂志网<br />
http://www.cfan.cn.net<br />
大众软件杂志网<br />
http://www.popsoft.com.cn 互联网周刊杂志网<br />
http://www.ciweekly.com<br />
问专家　--大量各种编程问题，不明白之处专家会及时答复<br />
http://www.china-askpro.com 电脑教育报杂志网<br />
http://www.cce.com.cn&nbsp;<br />
&nbsp;<br />
<strong>其他(杂项)</strong>&nbsp;&nbsp;网上地图<br />
http://www.go2tomap.com 联合早报&nbsp;<a href="http://www.zaobao.com/" target="_blank">http://www.zaobao.com</a><br />
中国科技网<br />
http://www.cnc.ac.cn/net 中国科普网，大量的科普知识<br />
http://www.kepu.com.cn<br />
冠群金辰，杀毒网站<br />
http://sc.kill.com.cn 渔人码头,九八年最佳清新网站<br />
http://rabbitty.yeah.net<br />
福瑞网免费空间，大量的免费信息<br />
http://www.254free.net http://www.softdo.com<br />
www.rongshu.com 榕树下<br />
http://www.sxsoft.com (sxsoft1004)项目交易平台，有大量交易软件项目、开发&nbsp;<br />
中国安全信息论詓--全国最大的漏洞库<br />
http://www.chinafirst.org<br />
<br />
<br />
@import url(http://www.cnitblog.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://www.cnitblog.com/houcy/aggbug/75571.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/houcy/" target="_blank">挑灯看剑</a> 2011-09-21 10:43 <a href="http://www.cnitblog.com/houcy/archive/2011/09/21/75571.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VS2010中添加ActiveX控件</title><link>http://www.cnitblog.com/houcy/archive/2011/07/14/74693.html</link><dc:creator>挑灯看剑</dc:creator><author>挑灯看剑</author><pubDate>Thu, 14 Jul 2011 10:25:00 GMT</pubDate><guid>http://www.cnitblog.com/houcy/archive/2011/07/14/74693.html</guid><wfw:comment>http://www.cnitblog.com/houcy/comments/74693.html</wfw:comment><comments>http://www.cnitblog.com/houcy/archive/2011/07/14/74693.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/houcy/comments/commentRss/74693.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/houcy/services/trackbacks/74693.html</trackback:ping><description><![CDATA[<p><span lang="EN-US">VC++ 6.0</span><span>中，可以使用</span><span lang="EN-US">ClassWizard</span><span>添加</span><span lang="EN-US">ActiveX</span><span>控件，而</span><span lang="EN-US">VS2005</span><span>以后的版本没有。如果要添加</span><span lang="EN-US">ActiveX</span><span>对应的类，可以&#8220;项目&#8221;&#8594;&#8220;添加类&#8221;&#8594;&#8220;</span><span lang="EN-US">ActiveX</span><span>控件中的</span><span lang="EN-US">MFC</span><span>类&#8221;，打开&#8220;从</span><span lang="EN-US">ActiveX</span><span>控件添加类向导&#8221;对话框。</span></p>
<p>可以选择从注册表添加控件，需要先注册控件；也可选择从文件添加控件。</p>
<p>接口类型选择添加所有接口。</p>
<p><img height="524" alt="" src="http://www.cnitblog.com/images/cnitblog_com/houcy/ax.JPG" width="615" border="0" longdesc="" /></p><img src ="http://www.cnitblog.com/houcy/aggbug/74693.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/houcy/" target="_blank">挑灯看剑</a> 2011-07-14 18:25 <a href="http://www.cnitblog.com/houcy/archive/2011/07/14/74693.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】成大事必备9种能力、9种手段、9种心态</title><link>http://www.cnitblog.com/houcy/archive/2011/07/06/74578.html</link><dc:creator>挑灯看剑</dc:creator><author>挑灯看剑</author><pubDate>Wed, 06 Jul 2011 10:18:00 GMT</pubDate><guid>http://www.cnitblog.com/houcy/archive/2011/07/06/74578.html</guid><wfw:comment>http://www.cnitblog.com/houcy/comments/74578.html</wfw:comment><comments>http://www.cnitblog.com/houcy/archive/2011/07/06/74578.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/houcy/comments/commentRss/74578.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/houcy/services/trackbacks/74578.html</trackback:ping><description><![CDATA[<p>成大事必备9种能力、9种手段、9种心态分享&nbsp;&nbsp;<br />
<br />
一：沉稳<br />
（1）不要随便显露你的情绪。<br />
（2）不要逢人就诉说你的困难和遭遇。<br />
（3）在征询别人的意见之前，自己先思考，但不要先讲。<br />
（4）不要一有机会就唠叨你的不满。<br />
（5）重要的决定尽量有别人商量，最好隔一天再发布。<br />
（6）讲话不要有任何的慌张，走路也是。<br />
二：细心<br />
（1）对身边发生的事情，常思考它们的因果关系。<br />
（2）对做不到位的执行问题，要发掘它们的根本症结。<br />
（3）对习以为常的做事方法，要有改进或优化的建议。<br />
（4）做什么事情都要养成有条不紊和井然有序的习惯。<br />
（5）经常去找几个别人看不出来的毛病或弊端。<br />
（6）自己要随时随地对有所不足的地方补位。<br />
三：胆识<br />
（1）不要常用缺乏自信的词句<br />
（2）不要常常反悔，轻易推翻已经决定的事。<br />
（3）在众人争执不休时，不要没有主见。<br />
（4）整体氛围低落时，你要乐观、阳光。<br />
（5）做任何事情都要用心，因为有人在看着你。<br />
（6）事情不顺的时候，歇口气，重新寻找突破口，就结束也要干净利落。<br />
四：大度<br />
（1）不要刻意把有可能是伙伴的人变成对手。<br />
（2）对别人的小过失、小错误不要斤斤计较。<br />
（3）在金钱上要大方，学习三施（财施、法施、无畏施）<br />
（4）不要有权力的傲慢和知识的偏见。<br />
（5）任何成果和成就都应和别人分享。<br />
（6）必须有人牺牲或奉献的时候，自己走在前面。<br />
五：诚信<br />
（1）做不到的事情不要说，说了就努力做到。<br />
（2）虚的口号或标语不要常挂嘴上。<br />
（3）针对客户提出的&#8220;不诚信'问题，拿出改善的方法。<br />
（4）停止一切&#8220;不道德'的手段。<br />
（5）耍弄小聪明，要不得！<br />
（6）计算一下产品或服务的诚信代价，那就是品牌成本。<br />
六：担当<br />
（1）检讨任何过失的时候，先从自身或自己人开始反省。<br />
（2）事项结束后，先审查过错，再列述功劳。<br />
（3）认错从上级开始，表功从下级启动<br />
（4）着手一个计划，先将权责界定清楚，而且分配得当。<br />
（5）对&#8220;怕事'的人或组织要挑明了说。<br />
（6）因为勇于承担责任所造成的损失，公司应该承担<br />
<br />
成大事的九种手段：<br />
1、敢于决断－－克服犹豫不定的习性　<br />
很多人之所以一事无成，最大的毛病就是缺乏敢于决断的手段，总是左顾右盼、思前想后，从而错失成功的最佳时机。成大事者在看到事情的成功可能性到来时，敢于做出重大决断，因此取得先机。<br />
2、挑战弱点－－彻底改变自己的缺陷<br />
人人都有弱点，不能成大事者总是固守自己的弱点，一生都不会发生重大转变；能成大事者总是善于从自己的弱点上开刀，去把自己变成一个能力超强的人。一个连自己的缺陷都不能纠正的人，只能是失败者！<br />
3、突破困境－－从失败中撮成功的资本<br />
人生总要面临各种困境的挑战，甚至可以说困境就是&#8220;鬼门关&#8221;。一般人会在困境面前浑身发抖，而成大事者则能把困境变为成功的有力跳板。<br />
4、抓住机遇－－善于选择、善于创造　<br />
机遇就是人生最大的财富。有些人浪费机遇轻而易举，所以一个个有巨大潜力的机遇都悄然溜跑，成大事都是绝对不允许溜走，并且能纵身扑向机遇。<br />
5、发挥强项－－做自己最擅长的事情<br />
一个能力极弱的人肯定难以打开人生局面，他必定是人生舞台上重量级选手的牺牲品；成大事者关于在自己要做的事情上，充分施展才智，一步一步地拓宽成功之路。<br />
6、调整心态－－切忌让情绪伤害自己　<br />
心态消极的人，无论如何都挑不起生活和重担，因为他们无法直面一个个人生挫折，成大事者则关于高速心态，即使在毫无希望时，也能看到一线成功的亮光。<br />
7、立即行动－－只说不做，徒劳无益<br />
一次行动胜过百遍心想。有些人是&#8220;语言的巨人，行动的矮子&#8221;，所以看不到更为实际现实的事情在他身上发生；成大事者是每天都靠行动来落实自己的人生计划的。<br />
8、善于交往－－巧妙利用人力资源　<br />
一个人不懂得交往，必然会推动人际关系的力量。成大事者的特点之一是：善于靠借力、借热去营造成功的局势，从而能把一件件难以办成的事办成，实现自己人生的规划。<br />
9、重新规划－－站到更高的起点上　<br />
人生是一个过程，成功也是一个过程。你如果满足于小成功，就会推动大成功。成大事者懂得从小到大的艰辛过程，所以在实现了一个个小成功之后，能继续拆开下一个人生的&#8220;密封袋&#8221;。<br />
<br />
可以讲任何一种手段，都可以导致一种结果，但这个结果是不是最佳的结果，恐怕就很难说了。成大事者总是选择最佳的手段，达到最完善的结果，这就是非一般人所能做到的。因此在成功之路上，你要想成大事，首先要解决的问题就是：你的手段对你推动成功的计划是否立竿见影！<br />
<br />
<br />
成大事必备九种能力<br />
挑战生存的能力：善于在现实中寻找答案 &nbsp;&nbsp;<br />
1、　摆正心态，敢于面对现实<br />
对于那些不停地抱怨现实恶劣的人来说，不能称心如意的现实，就如同生活的牢笼，既束缚手脚，又束缚身心，因此常屈从于现实的压力，成为懦弱者；而那些真正成大事的人，则敢于挑战现实，在现实中磨炼自己的生存能力，这就叫强者！<br />
在此，我们可以得出一条成大事的经验：适应现实的变化而迅速改变自己的观念，最重要的是需要我们有一副聪慧的头脑和灵活的眼睛，做生活的有心人。<br />
在现实的压力之下，如果你能改变观念，适时而进，可收到事半功倍的效果。<br />
我们的自下而上须臾离不开现实，随着现实的变化，我们必须随之调整自己的观念、思想、行动及目标。这是生存的必须。<br />
如果我们有办法来改变现实，使之适合我们能力和欲望的发展需要，则是最难能可贵的。<br />
2、　让你拥有过硬的自制能力<br />
自制，就是要克服欲望，不要因为有点压力就心里浮躁，遇到一点不称心的事就大发脾气。<br />
一个人除非先控制了自己，否则将无法控制别人。<br />
一个人只要有成大事的目标，知道自己想要的，然后采取行动，告诉自己绝对不要放弃，成功只是时间早晚而已。<br />
假使你在途中遇上了麻烦或阻碍，你就去面对它、解决它、然后再继续前进，这样问题才不会愈积愈多。<br />
你在一步步向上爬时，千万别对自己说&#8220;不&#8221;，因为&#8220;不&#8221;也许导致你决心的动摇，放弃你的目标，从而前功尽弃。<br />
人最难战胜的是自己，这话的含义是说，一个人成功的最大障碍不是来自于外界是，而是自身。只有控制住自己，才能控制住压力，让压力在你面前屈服。<br />
3、　把情感装入理性之盒<br />
一种抵触情绪的产生往往是潜移默化的，但它对人一生的影响却是巨大的，这种影响从诸多小事上体现出来。我们应尽量消除自己的不良情绪、因为它不仅会给我们造成身心上的伤害，而且在我们通往成功的路途上，不良情绪有时会成为绊脚石。<br />
为了你的成功，你必须把情感装入理性之盒，你必须去适应别人，适应形势，不然的话，你注定成不了大事，注定会被淘汰。<br />
4、　独处可以激发思考的力量<br />
如果你知道怎么独处的话，成大事者都是善于独处的人－－在独处的过程中激发思考的力量。<br />
自卑可以像一座大山把人压倒并让你永远沉默，也可以像推进器产生强大的动力。<br />
比别人先走一步，能创造一种成功的心境。<br />
在独处时，你应当有所思考，不要总人浮于事。<br />
5、　压力是最好的推动力<br />
欲成大事者，因目标高远，压力可能会更大。但若欲成大事，就必须能承受这种压力，把压力当成推进人生的动力。<br />
人们最出色的工作往往是在外于逆境的情况下做出的。人要有所为就要有所不为。应做的一定要做好，不该做的坚决不做。<br />
得到的并不一定就值得庆幸，失去的也并不完全是坏事情。<br />
6、以变应变，才有出路<br />
顺应时势，善于变化，及时调整自己的行动方案，这是成大事者适应现实的一种方法。<br />
一个人如果没有和人打交道的高超技巧，没有把各种情况都考虑周全的头脑，灵活应变的手段，就根本无法驾驭大的局面，将很难成大事。<br />
一个人能看清自己的现状，心态就会平衡许多，就能以一种客观的眼光去看待，认识这个世界，并且相应地调整自己的行为。<br />
7、　自信心是人生的坚强支柱<br />
自信心充足者的适应能力就高，反之则适应能力较低。<br />
一般信心不足较严重的人常有一些身心症状，比如孤僻，害怕与人交往，说话过于偏激，悲观失望。<br />
如果做事成功的经验越多，那么自信心就越强。<br />
自我成功锻炼的机会越少，自信心就越弱，以致产生严重的自卑情绪。<br />
&nbsp; 十九世纪的思想家爱默生说：&#8220;相信自己&#8216;能&#8217;，便会攻无不克。&#8221;拿破仑说：&#8220;在我的字典里没有不可能。&#8221;<br />
8、　把精力投入到自己的强项上<br />
大多数人的生活层次只停留在：为吃饭而吃、为搭公车而搭、为工作而工作、为了回家而回家。<br />
成大事者与不成大事者只差别在一些小小的动作：每天花5分钟阅读、多打一个电话、多努力一点、在适当时机的一个表示、表演上多费一点心思、多做一些研究，或在实验室中多试验一次。<br />
在行动之前你自己就知道你是否足以胜任这一个任务。<br />
没有任何借口可以解释你为会么长时间仍然无法胜任一项工作。<br />
不论你想追求的是什么，你必须强迫自己增强能力以实现目标。<br />
勤加练习、勤加练习、最后还是勤加练习！决不放弃学习，而且一定要将学到的知识运用于日常生活中。<br />
9、　要专心地做好一件事<br />
如果大多数人集中精力专注于一项工作，他们都能把这项工作做得很好。<br />
最成大事者的商人是能够迅速而果断作出决定的人，他们总是首先确定一个明确的目标，并集中精力，专心致志地朝这个目标努力。<br />
一次只专心地做一件事，全身心地投入并积极地希望它成功，这样你的心里就不会感到筋疲力尽。<br />
把你需要做的事想象成是一大排抽屉中的一个小抽屉。不要总想着所有的抽屉，而要将精力集中于你已经打开的那个抽屉。每个人做人办事的手段都是不一样的，可以讲，一个人就有一种手段，一个人就有一种靠自己手段获得成功的途径。无数事实表明，有些人就是太过于自信，想念自己确认的手段能够解决任何问题，但不知道这种往往是起不到任何作用。因此，他们总觉得离成功的目标不是越来越近，而实际上越来越远。</p>
<p><br />
成大事必备的9种心态<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 心态之一：积极向上<br />
1.时刻想着出人头地<br />
2.做&#8220;小人物&#8221;时要向&#8220;大人物&#8221;看齐&nbsp;&nbsp;<br />
3.惟有进取心，才能成大事<br />
4.摒弃逆境的干扰，寻找向上的根源<br />
5.放弃也是一种成功的开始<br />
6.在平凡中做不平凡的事<br />
7.保持年轻的心态很重要<br />
8.永远积极、主动、热忱<br />
&nbsp;&nbsp; 心态之二：勤勉谦恭<br />
1.壮志凌云地想，脚踏实地地干　　<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.勤敬产业，谦恭做人<br />
3.勤勉高于天赋<br />
4.勤奋造就成功，懒惰摧毁天才<br />
5.养成勤奋的习惯会终生受益<br />
6.有一份耕耘，就有一份收获<br />
7.恒心与支持能&#8220;点石成金&#8221;<br />
8.莫道君行早，更有早行人<br />
心态之三：诚实守信<br />
1.诚实是一种源自自身的本质<br />
2.诚实守信才是大赢家<br />
3.以诚信奠定成功基业<br />
4.真诚的友谊会使你的事业更发达<br />
5.做人要有正直的品行<br />
6.诚实守信是成大事的&#8220;信用卡&#8221;<br />
7.要成大事，择友不可草率<br />
8.以真诚待人，用热忱做事<br />
心态之四：敢于挑战<br />
1.敢于挑战自我，克服贬低心理<br />
2.挑战无极限<br />
3.坚持到底造靠勇气，半途而废是懦夫<br />
4.用于挑战激起成大事的信心<br />
5.勇气是战胜困难的良方<br />
6.胜人者力，自胜者强<br />
7.毅力与恒心是成大事的基本功<br />
8.坚持不懈成大事，浅尝辄止无出路<br />
心态之五：善于合作<br />
心态之六：知足平衡<br />
心态之七：乐观豁达<br />
心态之八：宽厚容人<br />
心态之九：永远自信</p><img src ="http://www.cnitblog.com/houcy/aggbug/74578.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/houcy/" target="_blank">挑灯看剑</a> 2011-07-06 18:18 <a href="http://www.cnitblog.com/houcy/archive/2011/07/06/74578.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>