<?xml version="1.0" encoding="UTF-8"?><SCRIPT>
<!--
function fontZoom(size)
{
 document.getElementById('fontzoom').style.fontSize=size+'px'
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
//-->
</SCRIPT>

<rss>
<channel>
<title>Cafe Blue</title>
<link>http://www.cafeblue.cn</link>
<Description>Cafe Blue</Description>
<language>
zh-cn</language>
<copyright>Copyright 2005 www </copyright><webMaster>@heipi.com</webMaster>
<image>
	<title>Cafe Blue</title> 
	<url>http://www.cafeblue.cn/images/logos.gif</url> 
	<link>http://www.cafeblue.cn</link> 
	<description>Cafe Blue</description> 
</image>
<item><link>http://www.cafeblue.cn/blogview.asp?logID=337</link><title><![CDATA[sed 的非贪婪匹配]]></title><author>cafeblue</author><category>软件技术</category><pubDate>2011-11-09 17:28:53</pubDate><guid>http://www.cafeblue.cn/blogview.asp?logID=337</guid><description><![CDATA[<p id=fp>把NT库的Head提出来生成了一个文件，想把这个文件根据GI号为index导入到mysql里面，这样在以后的查询中可以方便的查到注释信息。<br><br>首先产生的head文件就是这样的：<br><br>&amp;gt;gi|4|emb|X17276.1|&nbsp;Giant&nbsp;Panda&nbsp;satellite&nbsp;1&nbsp;DNA<br>&amp;gt;gi|7|emb|X51700.1|&nbsp;Bos&nbsp;taurus&nbsp;mRNA&nbsp;for&nbsp;bone&nbsp;Gla&nbsp;protein<br>&amp;gt;gi|9|emb|X68321.1|&nbsp;B.taurus&nbsp;mRNA&nbsp;for&nbsp;cyclin&nbsp;A<br>&amp;gt;gi|11|emb|X55027.1|&nbsp;Bovine&nbsp;mRNA&nbsp;for&nbsp;chromogranin&nbsp;B<br>&amp;gt;gi|15|emb|Z12029.1|&nbsp;B.indicus&nbsp;gene&nbsp;for&nbsp;alpha-lactalbumin<br>&amp;gt;gi|16|emb|X52700.1|&nbsp;Blue&nbsp;Whale&nbsp;common&nbsp;cetacean&nbsp;component&nbsp;DNA<br>&amp;gt;gi|17|emb|X52701.1|&nbsp;Blue&nbsp;Whale&nbsp;common&nbsp;cetacean&nbsp;component&nbsp;DNA<br>&amp;gt;gi|18|emb|X52702.1|&nbsp;Blue&nbsp;Whale&nbsp;common&nbsp;cetacean&nbsp;component&nbsp;DNA<br>&amp;gt;gi|19|emb|X52706.1|&nbsp;B.musculus&nbsp;heavy&nbsp;satellite&nbsp;DNA<br>&amp;gt;gi|20|emb|X52703.1|&nbsp;Blue&nbsp;Whale&nbsp;heavy&nbsp;satellite&nbsp;DNA<br><br>。。。。<br><br>这里面可以先把前面的gi|给替换掉，然后替换以&quot;|&quot;开始，&quot;|&nbsp;&quot;为结束的部分为空：<br><br>sed&nbsp;-i&nbsp;&#39;s/|.\+|&nbsp;/\t/&#39;&nbsp;nt_head<br><br><br>但是有些不是这样的，有些ID的最后没有&#39;|&#39;，于是刚才那个命令就失效了。但是如果以&#39;&nbsp;&#39;为结束，默认是贪婪匹配，会一直匹配到最后一个空格，然后替换，这样就出错了。如何让sed非贪婪匹配呢？见下例：<br><br>sed&nbsp;-i&nbsp;&#39;s/|[^\&nbsp;]\+\(.*\)/\t\1/g&#39;&nbsp;nt_head<br><br>这个[^\&nbsp;]\+就是非贪婪匹配到第一个空格，同理可以非贪婪匹配到第一个‘/&#39;:&nbsp;&nbsp;这样写：&nbsp;&nbsp;[^\/]*&nbsp;或者&nbsp;[^\/]\+</p>]]></description></item><item><link>http://www.cafeblue.cn/blogview.asp?logID=336</link><title><![CDATA[oracle数据库的中文字符在bash中的查询乱码问题及在perl中匹配特定汉字的问题。]]></title><author>cafeblue</author><category>软件技术</category><pubDate>2011-11-07 11:26:23</pubDate><guid>http://www.cafeblue.cn/blogview.asp?logID=336</guid><description><![CDATA[<p id=fp>不知道什么原因，在bash中总是乱码。服务器端的设置是CHS16GBK，是正确的，没有问题。但是在bash里面，或者说是在Perl里面，全是问号，也没有什么报错信息。<br><br>后来在网上搜了一通，要在环境变量里面设置一个参数：<br><br>export&nbsp;NLS_LANG=&quot;SIMPLIFIED&nbsp;CHINESE_CHINA&quot;.ZHS16GBK<br><br>或者<br><br>export&nbsp;NLS_LANG=&quot;SIMPLIFIED&nbsp;CHINESE_CHINA&quot;<br><br>然后查询出来的就成了中文了。<br><br>再根据自己系统的编码方式encoding就行了。<br><br><br>然后就是&nbsp;匹配的问题。如果是仅仅匹配GBK的汉字就可以的话，就仅仅用下面的匹配就好<br><br>/[\x80-\xff]/<br><br>如果是匹配具体字数，可以用如下匹配方式<br><br>/[\x80-\xff]{6,}/&nbsp;&nbsp;这个是至少匹配三个汉字<br><br>如果是utf-8编码的，就要麻烦一些：<br><br>如果是UTF-8,&nbsp;&nbsp;&nbsp;由于UTF-8字符是1-4个字节不定长,&nbsp;&nbsp;&nbsp;ASCII码一个字节，所以匹配非ASCII的utf-8字符编码的正则表达式为<br>/&nbsp;&nbsp;&nbsp;[\xC2-\xDF][\x80-\xBF]<br>|&nbsp;&nbsp;&nbsp;\xE0[\xA0-\xBF][\x80-\xBF]<br>|&nbsp;&nbsp;&nbsp;[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}<br>|&nbsp;&nbsp;&nbsp;\xED[\x80-\x9F][\x80-\xBF]<br>|&nbsp;&nbsp;&nbsp;\xF0[\x90-\xBF][\x80-\xBF]{2}<br>|&nbsp;&nbsp;&nbsp;[\xF1-\xF3][\x80-\xBF]{3}<br>|&nbsp;&nbsp;&nbsp;\xF4[\x80-\x8F][\x80-\xBF]{2}<br>/<br><br><br>$&nbsp;cat&nbsp;a.pl<br>#!/usr/bin/perl&nbsp;-w<br>use&nbsp;strict;<br>use&nbsp;Encode;<br>my&nbsp;$s=&nbsp;shift&nbsp;||&nbsp;&quot;abc你好wert&quot;;<br><br>####&nbsp;转换为utf8<br>my&nbsp;$a=decode(&#39;cp936&#39;,$s);<br>my&nbsp;($x)=($a=~m/(\p{Han}+)/);<br>#my&nbsp;($x)=($a=~m/({Han}+)/);<br>if&nbsp;($x)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;##&nbsp;有汉字<br>&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;encode(&#39;cp936&#39;,$x),&quot;\n&quot;;<br>}<br>print&nbsp;&#39;-&#39;&nbsp;x&nbsp;30&nbsp;,&nbsp;&quot;\n&quot;;<br>####&nbsp;匹配中文字符的正则表达式：&nbsp;[\u4e00-\u9fa5]<br><br>####匹配双字节字符(包括汉字在内)：[\x00-\xff]<br>my&nbsp;($y)&nbsp;=&nbsp;($s&nbsp;=~&nbsp;m/([\x80-\xff]+)/);<br>if&nbsp;($y)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;##&nbsp;有汉字<br>&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;$y,&nbsp;&quot;\n&quot;;<br>}<br><br>$&nbsp;perl&nbsp;a.pl&nbsp;&quot;企‘业’票¨据&quot;<br>企<br>------------------------------<br>企‘业’票¨据<br><br>GBK的码表可以在如下网战查询：<br><br><a target="_blank" href="http://www.360doc.com/content/05/0801/15/305_4166.shtml">http://www.360doc.com/content/05/0801/15/305_4166.shtml</a><br><br><a target="_blank" href="http://cs.nyu.edu/~yusuke/tools/unicode_to_gb2312_or_gbk_table.html">http://cs.nyu.edu/~yusuke/tools/un ... 12_or_gbk_table.html</a><br><br><a target="_blank" href="http://www.khngai.com/chinese/charmap/tblgbk.php?page=0">http://www.khngai.com/chinese/charmap/tblgbk.php?page=0</a></p>]]></description></item><item><link>http://www.cafeblue.cn/blogview.asp?logID=335</link><title><![CDATA[RPM(TPM)和RPKM的计算]]></title><author>cafeblue</author><category>软件技术</category><pubDate>2011-10-28 11:07:55</pubDate><guid>http://www.cafeblue.cn/blogview.asp?logID=335</guid><description><![CDATA[<p id=fp>之前自己用perl写了代码来计算RPKM值，现在又需要计算RPM值了，没办法，只能好好再重新来理解一下这些东西，然后再来计算了。<br><br>RPM，（Reads&nbsp;Per&nbsp;Million&nbsp;reads）即每百万读段中来自于某基因的读段数。<br><br>RPKM（Reads&nbsp;Per&nbsp;Kilo&nbsp;bases&nbsp;per&nbsp;Million&nbsp;reads）是每百万读段中来自于某基因每千碱基长度的读段数。<br><br>RPKM的计算公式是：<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;基因区读段计数&nbsp;×&nbsp;10^9&nbsp;<br>RPKM&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;----------------------------<br>&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><br>那么我自己可以把RPM的公司推出来大概应该就是：<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;基因组读段计数&nbsp;×&nbsp;10^6<br>RPM&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;------------------------------<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;测序深度</p>]]></description></item><item><link>http://www.cafeblue.cn/blogview.asp?logID=334</link><title><![CDATA[通过Kmer来估计基因组的办法。（jellyfish及其plot）]]></title><author>cafeblue</author><category>软件技术</category><pubDate>2011-10-27 15:36:08</pubDate><guid>http://www.cafeblue.cn/blogview.asp?logID=334</guid><description><![CDATA[<p id=fp>原来帮别人估计过基因组的大小，结果做完之后就忘记了。现在又要做这件事情了，诶。不做笔记害死人呀害死人。<br><br>jellyfish的使用方法还是不太理解。我只是基本会用吧。有些参数的设置可能也不正确。<br><br>首先说说我的步骤吧：<br><br>1.反正数据是需要用velvet去拼接的，于是总得shuffle，我觉得如果是用reads去估计基因组大小，就得直接用shuffle好的fq文件好了：<br><br>jellyfish&nbsp;count&nbsp;-m&nbsp;16&nbsp;-o&nbsp;kmer16_L205-6-1&nbsp;-s&nbsp;1000000000&nbsp;-c&nbsp;200&nbsp;-t&nbsp;16&nbsp;-C&nbsp;../L205-6-1_shuffle.fq<br>jellyfish&nbsp;count&nbsp;-m&nbsp;17&nbsp;-o&nbsp;kmer17_L205-6-1&nbsp;-s&nbsp;1000000000&nbsp;-c&nbsp;200&nbsp;-t&nbsp;16&nbsp;-C&nbsp;../L205-6-1_shuffle.fq<br>jellyfish&nbsp;count&nbsp;-m&nbsp;18&nbsp;-o&nbsp;kmer18_L205-6-1&nbsp;-s&nbsp;1000000000&nbsp;-c&nbsp;200&nbsp;-t&nbsp;16&nbsp;-C&nbsp;../L205-6-1_shuffle.fq<br>jellyfish&nbsp;count&nbsp;-m&nbsp;19&nbsp;-o&nbsp;kmer19_L205-6-1&nbsp;-s&nbsp;1000000000&nbsp;-c&nbsp;200&nbsp;-t&nbsp;16&nbsp;-C&nbsp;../L205-6-1_shuffle.fq<br><br>-m是设置&nbsp;kmer值。<br>-o&nbsp;是output文件的名字。<br>-s&nbsp;我不太明白是什么意思。可能与&nbsp;2**kmer有关，但是太大，内存占用太厉害。我就遇到过。这里的-s如果多一个0，32G内存的机器就受不了了。<br>-c&nbsp;看手册，似乎意思是说kmer覆盖的倍数，于是如果是基因组，只需要&nbsp;-c&nbsp;1&nbsp;或者&nbsp;-c&nbsp;2就差不多了。如果是reads，手册的建议是覆盖的两倍。<br>-t&nbsp;线程数。<br>-C&nbsp;both&nbsp;strand都要计算，对于reads来说，这是必须的。但是如果input是基因组，就不需要了。<br>（我不明白如果已经是一倍覆盖的基因组了，这个计算还有意义吗？）<br><br>2.&nbsp;画图：<br><br>如果hash文件生成了多个需要merge一下。否则就可以直接histo了：<br><br>jellyfish&nbsp;histo&nbsp;kmer16_L205-6-1_0&nbsp;&amp;gt;&nbsp;kmer16.histo<br>jellyfish&nbsp;histo&nbsp;kmer17_L205-6-1_0&nbsp;&amp;gt;&nbsp;kmer17.histo<br>jellyfish&nbsp;histo&nbsp;kmer18_L205-6-1_0&nbsp;&amp;gt;&nbsp;kmer18.histo<br>jellyfish&nbsp;histo&nbsp;kmer19_L205-6-1_0&nbsp;&amp;gt;&nbsp;kmer19.histo<br><br>这样分生成四个histo文件，文件只有两列，第一列表示kmer出现的次数，第二列表示出现这个次数的kmer的个数有多少个。<br><br>然后就可以画图了。<br><br>gnuplot&nbsp;&amp;lt;&nbsp;kmer.gp&nbsp;&amp;gt;&nbsp;L205.png<br><br>kmer.gp的内容为：<br><br><script type="text/javascript">window.attachEvent("onload",function (){AutoSizeDIV('CODE_7643')})</script><OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="code_head"><tr><td>程序代码：</td></tr><tr><td><div class="code_main" id="CODE_7643" style="overflow-y:auto;overflow-x:hidden;height:150px;">set&nbsp;terminal&nbsp;png&nbsp;nocrop&nbsp;size&nbsp;1280,1025<br>set&nbsp;format&nbsp;y&nbsp;&#39;10^(%.0f)&#39;&nbsp;<br>set&nbsp;title&nbsp;&#39;Kmer&nbsp;Distrbution&#39;<br>set&nbsp;xlabel&nbsp;&#39;multiplicity&#39;<br>set&nbsp;ylabel&nbsp;&#39;Number&nbsp;of&nbsp;distict&nbsp;K-mers&nbsp;with&nbsp;given&nbsp;multiplicity&#39;<br>plot&nbsp;&nbsp;&quot;kmer19.histo&quot;&nbsp;using&nbsp;1:($2&nbsp;&amp;lt;&nbsp;1&nbsp;?&nbsp;1&nbsp;:&nbsp;log10($2))&nbsp;title&nbsp;&quot;bezier_19&quot;&nbsp;smooth&nbsp;bezier,&nbsp;&quot;kmer18.histo&quot;&nbsp;using&nbsp;1:($2&nbsp;&amp;lt;&nbsp;1&nbsp;?&nbsp;1&nbsp;:&nbsp;log10($2))&nbsp;title&nbsp;&quot;bezier_18&quot;&nbsp;smooth&nbsp;bezier,&nbsp;&quot;kmer17.histo&quot;&nbsp;using&nbsp;1:($2&nbsp;&amp;lt;&nbsp;1&nbsp;?&nbsp;1&nbsp;:&nbsp;log10($2))&nbsp;title&nbsp;&quot;bezier_17&quot;&nbsp;smooth&nbsp;bezier,&nbsp;&quot;kmer16.histo&quot;&nbsp;using&nbsp;1:($2&nbsp;&amp;lt;&nbsp;1&nbsp;?&nbsp;1&nbsp;:&nbsp;log10($2))&nbsp;title&nbsp;&quot;bezier_16&quot;&nbsp;smooth&nbsp;bezier;<br></div></td></tr><tr><td align="right"><input name="CopyText" type="button" id="CopyText" onclick="javascript:CopyText(document.all.CODE_7643);" value="复制代码"> <input name="runCode" type="button" id="runCode" onclick="javascript:runCode(document.all.CODE_7643);" value="运行代码"> <input name="Submit" type="button" class="news_function" onClick="MM_goToURL('parent','forumview.asp');return document.MM_returnValue" value="到论坛讨论"> <input name="Button" type="button" class="news_function" onClick="document.all.WebBrowser.ExecWB(22,1)" value="刷新本页"> <input name="Button" type="button" class="news_function" onClick="document.all.WebBrowser.ExecWB(4,1)" value="保存教程"></td></tr></table><br><br>最后L205.png就是最终画出来的图了。<br><br>然后估计基因组大小的办法有两种，我自己倾向于使用第二种方法：<br><br>在histo文件中，第二列的数值是先下降，再上升，再下降。第一次下降的时候降到谷底的时候，认为这个时候是个分水岭，之前的数据因为&nbsp;kmer数出现的次数太少，被认为是错误的测序，这些kmer是错误的，不需要考虑。之后的kmer才是正确的。<br><br>方法一：将正确的unique的kmer加和，就是估计的基因组了，也就是把第二列中正确的数据加起来。<br>方法二：将正确的kmer数之和除以估计和覆盖，再除以2（除2是因为正负链都被计算了）。也就是把正确的第一列乘第二列的数值的和，除以第二次上升的时候的第一列的最大值（这个值其实应该是模拟一条曲线，然后根据曲线计算出来的，但是我比较懒，只取了整数。）。再除以2&nbsp;。<br><br>最后贴一下别人的讨论：<br><br><a target="_blank" href="https://banana-slug.soe.ucsc.edu/bioinformatic_tools:jellyfish">https://banana-slug.soe.ucsc.edu/bioinformatic_tools:jellyfish</a></p>]]></description></item><item><link>http://www.cafeblue.cn/blogview.asp?logID=333</link><title><![CDATA[lpr打印报错的问题]]></title><author>cafeblue</author><category>软件技术</category><pubDate>2011-10-13 14:13:52</pubDate><guid>http://www.cafeblue.cn/blogview.asp?logID=333</guid><description><![CDATA[<p id=fp>问题很奇怪，cups可以打开打印机，而且可以打印测试页。但是其它的程序就是找不到打印机，强行打印之后就报错。<br><br>与运行lpr之后的出错一样：<br><script type="text/javascript">window.attachEvent("onload",function (){AutoSizeDIV('CODE_6266')})</script><OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="code_head"><tr><td>程序代码：</td></tr><tr><td><div class="code_main" id="CODE_6266" style="overflow-y:auto;overflow-x:hidden;height:150px;">$&nbsp;lpr<br>lpr:&nbsp;error&nbsp;-&nbsp;scheduler&nbsp;not&nbsp;responding!<br></div></td></tr><tr><td align="right"><input name="CopyText" type="button" id="CopyText" onclick="javascript:CopyText(document.all.CODE_6266);" value="复制代码"> <input name="runCode" type="button" id="runCode" onclick="javascript:runCode(document.all.CODE_6266);" value="运行代码"> <input name="Submit" type="button" class="news_function" onClick="MM_goToURL('parent','forumview.asp');return document.MM_returnValue" value="到论坛讨论"> <input name="Button" type="button" class="news_function" onClick="document.all.WebBrowser.ExecWB(22,1)" value="刷新本页"> <input name="Button" type="button" class="news_function" onClick="document.all.WebBrowser.ExecWB(4,1)" value="保存教程"></td></tr></table><br><br>网上搜了一通，有人说是因为glibc需要upgrade，也有些人upgrade之后成功了。我的不行。后来又找了找，才找到这个办法：<br><br><div class="code_head">引用内容：</div><div class="code_main">I&nbsp;find&nbsp;solution&nbsp;at&nbsp;forums.whirlpool.net.au/forum-replies-archive.cfm/425285.html:<br><br>&quot;...after&nbsp;having&nbsp;a&nbsp;quick&nbsp;look&nbsp;at&nbsp;the&nbsp;cups&nbsp;source&nbsp;code&nbsp;I&nbsp;found&nbsp;out&nbsp;that&nbsp;the&nbsp;problem&nbsp;was&nbsp;that&nbsp;the&nbsp;environment&nbsp;variable&nbsp;CUPS_SERVER&nbsp;wasn&#39;t&nbsp;set.&nbsp;So&nbsp;running&nbsp;&quot;export&nbsp;CUPS_SERVER=localhost&quot;&nbsp;before&nbsp;using&nbsp;lpr&nbsp;at&nbsp;the&nbsp;command&nbsp;line&nbsp;now&nbsp;makes&nbsp;it&nbsp;work&nbsp;fine.&quot;<br></div></p>]]></description></item><item><link>http://www.cafeblue.cn/blogview.asp?logID=332</link><title><![CDATA[活着的基因注释平台]]></title><author>cafeblue</author><category>软件技术</category><pubDate>2011-09-29 16:44:38</pubDate><guid>http://www.cafeblue.cn/blogview.asp?logID=332</guid><description><![CDATA[<p id=fp>今天找了一下可以用于注释基因组的平台，找到好多，其中还活着的，并且是open&nbsp;source的有两个：<br><br>maker2&nbsp;igs_manatee&nbsp;写在这里做个记号。<br><br>最新的GenDB根本不提供源代码的下载地址，老的GenDB又会依赖KEGG，现在KEGG又开始收费了，估计重新安装会装不上了。<br><br>另外还有几个多年没有更新的，但是还有人在下载使用的：<br><br>agmial,&nbsp;MAGPIE,&nbsp;SABIA,&nbsp;DIYA,&nbsp;Restauro-G</p>]]></description></item><item><link>http://www.cafeblue.cn/blogview.asp?logID=331</link><title><![CDATA[VSFTPD (500 OOPS: vsf_sysutil_bind) 错误解决方法]]></title><author>cafeblue</author><category>软件技术</category><pubDate>2011-08-18 10:11:52</pubDate><guid>http://www.cafeblue.cn/blogview.asp?logID=331</guid><description><![CDATA[<p id=fp>使用FTP的时候总是出现以上错误<br><br>是不是添加的PASV端口数量不够？<br><br>FTP用户数量多的时候会出现如下错误<br>&quot;500&nbsp;OOPS:&nbsp;vsf_sysutil_bind&quot;<br>可能原因是PASV端口数量少（原只开60000一个端口）<br><br>修改/etc/vsftpd/vsftpd.conf，增加端口<br>pasv_min_port=60000<br>pasv_max_port=60010<br>max_per_ip=3<br>修改/etc/sysconfig/iptables<br><br>-A&nbsp;RH-Firewall-1-INPUT&nbsp;-m&nbsp;state&nbsp;--state&nbsp;NEW&nbsp;-m&nbsp;tcp&nbsp;-p&nbsp;tcp&nbsp;--dport&nbsp;60000:60010&nbsp;-j&nbsp;ACCEPT<br>解决！<br><br>这是别人的解决方法，我的问题是我已经开了20个端口了，于是我照着上面这个设置添加了一项：<br><br>max_per_ip=2<br><br>谨慎怀疑是有些人有迅雷或者是多线程下载，于是占用了太多的端口，让其他人没有端口可用了。<br><br>单位的ftp还有另外一个缺点，就是使用了端口映射，后来好多人连接不上，我查了些资料才知道，还要添加一些端口，于是多映射了20个端口到内部机器。<br><br>这次又出来了这个问题。。。。</p>]]></description></item><item><link>http://www.cafeblue.cn/blogview.asp?logID=330</link><title><![CDATA[命令行来调整大小写的几个办法]]></title><author>cafeblue</author><category>软件技术</category><pubDate>2011-08-16 17:10:01</pubDate><guid>http://www.cafeblue.cn/blogview.asp?logID=330</guid><description><![CDATA[<p id=fp>1.&nbsp;用awk:<br><br><script type="text/javascript">window.attachEvent("onload",function (){AutoSizeDIV('CODE_6635')})</script><OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="code_head"><tr><td>程序代码：</td></tr><tr><td><div class="code_main" id="CODE_6635" style="overflow-y:auto;overflow-x:hidden;height:150px;">$&nbsp;echo&nbsp;TeSt&nbsp;|&nbsp;awk&nbsp;{&#39;print&nbsp;tolower($_)&#39;}<br>test<br>$&nbsp;echo&nbsp;TeSt&nbsp;|&nbsp;awk&nbsp;{&#39;print&nbsp;toupper($_)&#39;}<br>TEST<br></div></td></tr><tr><td align="right"><input name="CopyText" type="button" id="CopyText" onclick="javascript:CopyText(document.all.CODE_6635);" value="复制代码"> <input name="runCode" type="button" id="runCode" onclick="javascript:runCode(document.all.CODE_6635);" value="运行代码"> <input name="Submit" type="button" class="news_function" onClick="MM_goToURL('parent','forumview.asp');return document.MM_returnValue" value="到论坛讨论"> <input name="Button" type="button" class="news_function" onClick="document.all.WebBrowser.ExecWB(22,1)" value="刷新本页"> <input name="Button" type="button" class="news_function" onClick="document.all.WebBrowser.ExecWB(4,1)" value="保存教程"></td></tr></table><br><br>2.&nbsp;用sed:<br><br><script type="text/javascript">window.attachEvent("onload",function (){AutoSizeDIV('CODE_4316')})</script><OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="code_head"><tr><td>程序代码：</td></tr><tr><td><div class="code_main" id="CODE_4316" style="overflow-y:auto;overflow-x:hidden;height:150px;">$&nbsp;echo&nbsp;TeSt&nbsp;|sed&nbsp;&#39;s/\(.*\)/\L\1/&#39;<br>test<br>$&nbsp;echo&nbsp;TeSt&nbsp;|sed&nbsp;&#39;s/\(.*\)/\U\1/&#39;<br>TEST<br></div></td></tr><tr><td align="right"><input name="CopyText" type="button" id="CopyText" onclick="javascript:CopyText(document.all.CODE_4316);" value="复制代码"> <input name="runCode" type="button" id="runCode" onclick="javascript:runCode(document.all.CODE_4316);" value="运行代码"> <input name="Submit" type="button" class="news_function" onClick="MM_goToURL('parent','forumview.asp');return document.MM_returnValue" value="到论坛讨论"> <input name="Button" type="button" class="news_function" onClick="document.all.WebBrowser.ExecWB(22,1)" value="刷新本页"> <input name="Button" type="button" class="news_function" onClick="document.all.WebBrowser.ExecWB(4,1)" value="保存教程"></td></tr></table><br><br>3.&nbsp;用tr<br><script type="text/javascript">window.attachEvent("onload",function (){AutoSizeDIV('CODE_4415')})</script><OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="code_head"><tr><td>程序代码：</td></tr><tr><td><div class="code_main" id="CODE_4415" style="overflow-y:auto;overflow-x:hidden;height:150px;">$&nbsp;echo&nbsp;&quot;TesT&quot;&nbsp;|&nbsp;tr&nbsp;[:upper:]&nbsp;[:lower:]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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>test<br>$&nbsp;echo&nbsp;&quot;TesT&quot;&nbsp;|&nbsp;tr&nbsp;[:lower:]&nbsp;[:upper:]<br>TEST<br></div></td></tr><tr><td align="right"><input name="CopyText" type="button" id="CopyText" onclick="javascript:CopyText(document.all.CODE_4415);" value="复制代码"> <input name="runCode" type="button" id="runCode" onclick="javascript:runCode(document.all.CODE_4415);" value="运行代码"> <input name="Submit" type="button" class="news_function" onClick="MM_goToURL('parent','forumview.asp');return document.MM_returnValue" value="到论坛讨论"> <input name="Button" type="button" class="news_function" onClick="document.all.WebBrowser.ExecWB(22,1)" value="刷新本页"> <input name="Button" type="button" class="news_function" onClick="document.all.WebBrowser.ExecWB(4,1)" value="保存教程"></td></tr></table><br></p>]]></description></item><item><link>http://www.cafeblue.cn/blogview.asp?logID=329</link><title><![CDATA[请没有买房和买车的朋友一定认真的看一下 [图片]]]></title><author>cafeblue</author><category>心情日记</category><pubDate>2011-07-19 10:07:50</pubDate><guid>http://www.cafeblue.cn/blogview.asp?logID=329</guid><description><![CDATA[<p id=fp>香港著名经济学家——郎咸平<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;中国99%的白领以及他们的家庭即将面临破产。而且是必然破产！无路可逃！这件事可能是发生在未来2-10年。你可以尽量去怀疑这个数字。但它必然发生，绝非危言耸听。&#39;&nbsp;就如我预言中国国营企业职工必然失业一样，在当时来说没人信。但确实会发生。因为在中国这样一个发展中国家，其必然以不断的以通货膨胀和改革手段来换取经济的发展。而每一次改革所带来的阵痛都是由百姓来承担的。无论是上山下乡时迷茫的知青们还是改革开放带来的大量国企纷纷倒闭时大量下岗职工。如果他们能有一定的前瞻性的话，那么我想他们也许会为自己留一点后路。但是由于过分相信文件以及过分相信生活不会突变，所以才导致了他们的人生悲剧。&nbsp;­<br><br>­<br><br>　　有人说政府不会坐视不理白领破产，其实政府当然不愿意。可有的事情……怎么说呢。想想当年的下岗职工吧。引起了那么大的社会震动。又能怎样呢？今天的白领明天破产的时候也那样而已。&nbsp;­<br><br>　　而改革开放20多年来，中国的经济发展快速腾飞。但旧的体制并没有完全更改。各种重要行业依然施行的是政府垄断机制在运转。如：银行，金融，冶金，能源，信息，运输，医疗，教育，土地。在改革开放初期我国不可能对这些东西进行全方面的改革开放。但到了今天，垄断经营所带来的矛盾日益突出。&nbsp;­<br><br>　　首当其冲的就是房地产。由于我国的法制不健全，尤其是金融以及改革领域里出现了各种失误导致房地产节节攀升。随着房地产的增加以及外来人口向大城市集中。所以城市新民工也就是所谓的&#39;白领&#39;收入表面上也在提升，以北京为例3000-15000元人民币的月薪处处可见。但这一部分收入主要用于支付租房或还贷。&nbsp;­<br><br>　　为了深入地了解为什么99%的白领家庭会破产，我们就必须先了解房价为什么会这么高？高在哪里？资金是运转的？（这里的白领指买房或者准备买房族。）以及发展趋势带来的相关效应。本文会分三个阶段向你阐述。&nbsp;­<br><br>　　1：导致房价爆涨的第一个因素：银行竞争下的贷款开放。&nbsp;­<br><br>　　其实房价的爆涨的因素主要是因为百姓在替政府所犯下的错误买单。比如以前一个开发商通过某银行贷款了1000万开发了一个房子。如果还不起那他就倒霉了，因为所有的银行都是一个体系，你欠了钱没还就再也没有翻身的机会。但是中国在银行改革的基础上开了一条口子，为了各银行之间的竞争所以把工行，农行，建设银行等等全部独立运营。这本来是好事。但问题是这些银行都不是私有的，而是国家的。我们不难想象。当一个开发商从工行贷款1000万的后果。他只需要用500万来开发房子，然后把售价提升，再把这个开发中的房子按他的售价标准抵押从农行再贷款&nbsp;2000万，然后再用这&nbsp;2000万中的1000万开发一套售价更高的房子来找建设银行抵押贷款4000万。就是这样一个滚雪球的疯狂贷款模式。&nbsp;­<br><br>　　房子卖不卖得出去不重要，关键是房价要高，不得降价。反正银行的钱不是私人的，所以稍微疏通一下行长加之又有&#39;合法的&#39;高零售价的楼盘做抵押所以自然就越来越好从银行贷款。&nbsp;­<br><br>　　那么这样造成的结果就是，房子价格只攀不跌！因为不能跌！一跌银行贷出去的款就再也回不来了。这可是政府的银行，政府的钱！所以为了堵住这个资金黑洞一些被收买的专家、媒介便开始疯狂制造舆论用各种舆论手段威逼利诱人买房子。&nbsp;­<br><br>　　比如土地资源严重紧张，再不买房将来就只能住在郊区呀之类的。导致人们不得不去买房。其实住不了市中心这种情况这根本不可能发生，城市居民是一个新老替换的过程，要上班的住城里，老人退休喜欢住郊区。只要人口不爆炸就不会出现上班族住不了市中心的情况。虽然这些舆论造成了很多人买房子，但是仅仅是这样，房价还没有高到现在这样的离谱。紧接着政府又犯了第二个错误。&nbsp;­<br><br>2：导致房价爆涨的第二个错误：中国特色的按揭。&nbsp;&nbsp;­<br><br>　　按揭本来是一种西方很流行的制度，也很合适。但这个制度一旦运用到中国就有点问题了。因为从大的体制上来说。所有银行都是国家的，而不是私人的。所以贷款这个关口就不可能控制得住。只要文件上说得过去，人们就能贷到款。&nbsp;&nbsp;­<br><br>　　为了早日缓解第一个错误所带来的资金黑洞。政府开始实行个人按揭制度来售房。还经常举什么美国来太太和中国老太太的例子来诱惑人们去按揭。确实有人按揭了，而且是疯狂的按揭。只要和银行有点&#39;路子&#39;的人。他们先按揭一套80万的房子，自己出10万首付然后再从银行贷出70万。之后再把这个房子抬高价格到180万出售。这个时候他们的亲戚或者老爸老妈再去买下，也用按揭的方式自己出首付30万再从银行贷出150万。然后就不管了。他们不还贷款怎么办？银行爱收不收。反正根据合同我还不上钱你可以收走房子，我们两不相欠。&nbsp;&nbsp;­<br><br>　　所以转了一圈，抬高了几倍价格的房子又回到了政府回到了银行手里。这就解释了为什么很多新楼盘刚开始修就被&#39;炒房团&#39;买走了。他们炒的不是赌房子会升值。而是拿了房子去收拾银行。&nbsp;&nbsp;­<br><br>　　银行拿到这个房子怎么办？更不敢降价了。只好再加点价接着卖。所以普通老百姓现在根本别想买到真正合理价格的房子！即使你直接从开发商手里买来的房子都说不定已经转了好几次手又回到银行以及开发商手里的了。说句不好听的现在8000/平的房子里，有只有2500才是房价，有5500都是以为决策错误带来的资金黑洞！也就是说你正在替人任劳任怨地擦屁股。&nbsp;&nbsp;­<br><br>　　3：第三个问题：白领家庭何时破产？？&nbsp;&nbsp;­<br><br>　　那么我们研究了房子价格为什么会涨，再来研究一下中国城市所谓的白领家庭破产的必然性。&nbsp;&nbsp;­<br><br>　　首先国外白领收入确实是高，但是高得有价值。而中国所谓的白领则普遍素质较差。中国企业内耗严重。人人相轻，人人顽固。所以难怪外资企业一进入中国大陆市场就开始惊呼：&#39;在中国办企业招不到人！&#39;对此我也深有体会。那有人会说：&#39;既然现在的白领不值这个身价，那水木周平你说说为什么他们还能拿到这样的薪水呢？&#39;&nbsp;其实，这由于房地产的火爆造成的一个量子效应。银行损失的资金大量的经过少数人之手流向了市场。这些人开始在中国的其他领域疯狂投资。因为他们自己也知道房地产就快要崩盘了。他们这样一轮又一轮的投资热潮正在快速消化这些资金，他们投资互联网，投资高新技术，投资娱乐，投资很多很多。但起码付出的工资要够员工付房子月租或者月供吧。所以正是因为房价的高涨所以造就了中国城市人口工资水平的相对提升。不相信你自己算算你所在的城市白领阶级平均收入一旦交完每月的房钱，手上还能剩多少钱？我想这个问题就不用我再罗嗦了吧。大家心理有数。所以我可以说一旦房地产崩盘紧接着崩溃的就是你的工资。&nbsp;&nbsp;­<br><br>　　有很多很多我认识的白领们都购了房。他们的算盘很简单：&#39;两口子除开各种税收保险每月纯收入还&nbsp;12000。交3000房钱算什么？我还能再买一套呢！&#39;是的不算什么。但因为房子贵所以什么东西都贵。吃的贵，交通贵，学费贵，医疗费用更贵！！！所以交了房钱你再除开生活费用就基本上一分钱存不下来，就算存点也赶不上正常的通货膨胀率。问题是如果能一直保持这个现状的话，理论上说应该没事。你这二十年赚来的钱正好可以弥补政府的两个错误带来的亏损。&nbsp;&nbsp;­<br><br>　　但问题也出在这里。随着WTO5年缓冲期的结束，大量外资通讯，银行，医疗，保险等等公司都会陆续进入中国。到时候没有人能阻止你把钱存入花旗，存入汇丰。请问一下到那个时候谁愿意把钱存在呆帐坏帐如此之多的中国国有银行呢？即使政府再怎么采取措施也可能挤兑，所以到时候会发生什么现在还很难说。但有一点可以肯定的是到时中国国有这些银行的压力将变得非常巨大。贷款就会难上加上，因为银行根本无钱可贷！同时大量具备高素质人材的外资企业进入中国必定带来市场的强烈冲击和大量现有企业的倒闭以及白领失业。也就是说。一旦外资企业加入竞争，中国现有的&nbsp;99%的白领都将面临大环境下的就业压力！&nbsp;&nbsp;­<br><br>　　而且外资银行一旦积累了资金开始投资房地产，那么由于它们是正常的操作流程所以造出来的房子就会便宜，其必然拉动全国房地产大幅下跌。如我刚才所说，房价一跌，紧跟着跌的就是你所在的企业的工资收入！可你之前买的房子还贷价格并不会降低或者减少，所以你将无力支付高昂的贷款。那么你的的房子会被银行收走，你的存款会被直接冻结。所以未来中国城市中的白领们最大的可能是和几十年前的中国国有企业职工一样。辛辛苦苦二十年，到头来竹篮打水一场空！&nbsp;­<br><br>如何避免破产？&nbsp;&nbsp;­<br><br>　　看到这里您应该明白，不要买房是一个避免破产的好办法。不过我还要提醒你，为了托住楼市不跌，他们还有个办法，那就是鼓吹老百姓不买房就不是个爷们儿！您别说，这还真有点效果。现在的人一张口第一句就是：&#39;你有房吗。&#39;似乎你没房就是个太监一样。我实在是气得连骂人的力气都没有了。还有人在百度水木周平这个帖吧里发帖说：&#39;不买房子你住哪里？&#39;我就奇怪了，住和买有必然联系吗？在中国一个土地都不属于你的房子卖给你和租给你有什么区别？（笑）。更别提土匪一样的物业和把人不当人的强制拆迁！这不纯粹是&#39;皇帝的新装&#39;吗？不过既然WTO中已经说明出版业和传媒业中国还是不对外开放的。那么舆论救市就会成为政府和开发商手中的最后一张王牌。&nbsp;&nbsp;­<br><br>　　所以我们在面对很多花言巧语的时候还是自己多动动脑子。以后我们听到的房产的鬼话会越来越多，越来越令人发指！比如最近就有砖家在鼓吹房价不贵时都说：&nbsp;&#39;什么即使年薪5万，两口子也是一年10万，5年就50万。所以房价当然不贵。&#39;我奇怪的是居然有人点头称是？也许对于这种或者此类已经进化到了不吃不喝不病不穿不动且爹娘早已死绝不用赡养的砖家来说也许还真是那么回事。所以大家注意提高警惕。&nbsp;&nbsp;­<br><br>　　结束语：&nbsp;&nbsp;­<br><br>　　已经买房或者准备买房的白领一族必定随着房价的崩溃而崩溃，那会是一个缓慢发生的过程。短则两年，长则十年。但这是不可逆转的趋势。所以中国99%城市白领一族已经面临破产一说绝非危言耸听！今天你往银行交的每一分房钱都是替政府替炒房者补洞，只有一小部分是真正的房钱。明天大环境一变，你没有那么多资金来补洞的时候就会被市场和银行一脚踢回老家，换一批新人来接着补。不信？走着瞧呗！--PS：为什么我说99%这个数，是因为根据我的了解99%的人一旦月薪过5000就开始买房，甚至3000，4000都买。小俩口什么都不明白这样买下去人生一定会很惨。我只是替他们感到忧伤。当然如果你是那1%的智者，多劝救他们吧。独乐乐不如众乐乐。­<br><br>中国人正在上的四个大当­<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;第一大当：房产­<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;买房意味着什么？意味着你拥有了一个属于自己的房子。是的，你是这样以为，但是在中国你并无法拥有这个房子，只是租给你而已。因为房子是你的,地不是你的,只是把土地使用权70年(从现在退70年那是抗日战争时期,谁见过那时候的房子?)。房子通常情况下30年左右就会遇上拆迁或者旧房改造。也就是说你花了买房的钱，却只能得到租房的实际效果。当然这还不是最坏的。最坏的是，当几十年后你发觉上当了！有一群流氓冲进你用一辈子积蓄买下的房子，画上一个大大的拆字！然后把你的家当全部当垃圾一样的仍出门外，不顾你的苦苦哀求，甚至还在报纸上给你按一个钉子户的臭名，任大众辱骂的时候你就会知道什么叫做绝望！&nbsp;­<br><br>­<br><br>　　形容中国的房地产有一个很有名的笑话是这样写的：­<br><br>　　以前，有个地主有很多地，找了很多长工干活，地主给长工们盖了一批团结楼住着，一天，地主的谋士对地主说：东家，长工们这几年手上有点钱了，他们住你的房子，每月交租子，不划算，反正他们永远住下去，你干脆把房子卖给他们起个名堂叫做——公房出售！告诉他们房子永远归他们了，可以把他们这几年攒的钱收回来，地主说：不错，那租金怎么办？谋士说：照收不误，起个日本名儿，叫物业费！地主很快实行了，赚了好多钱，长工们那个高兴啊！­<br><br>　　过了几年，地主的村子发展成城镇了，有钱人越来越多，没地方住，谋士对地主说：东家，长工们这几年手上又有钱了，咱们给他们盖新房子，起个名堂叫做旧城改造，他们把手上的钱给我们，我们拆了房子盖新的，叫他们再买回去，可以多盖一些卖给别人，地主又实行了，这次，有些长工们不高兴了，地主的家丁派上用途了，长工们打掉牙只好往肚子里咽，地主又赚了好多钱。­<br><br>　　又过了几年，地主的村子发展成大城市了，有钱人更多了，地主的土地更值钱了，谋士对地主说：东家，咱们把这些长工的房子拆了，在这个地方建别墅，拆出来的地盖好房子卖给那些有钱的大款还能赚一笔，地主说：长工们不干怎么办？谋士说：咱给他们钱多点儿，起个名堂叫货币化安置，咱再到咱们的猪圈旁边建房子，起个名堂叫经济适用房，给他们修个马车道让他们到那边买房住，地主说：他们钱不够怎么办？谋士说：从咱家的钱庄借前给他们，一年6分利，咱这钱还能生钱崽，又没风险，地主又实行了，长工们拿到钱，地主的经济适用房到现在才建了一间，长工们只好排队等房子，直到现在，还等着呢……­<br><br>　　于是，长工们开始闹事了，地主有点慌，忙问谋士怎么办？谋士说：赶紧通知长工们，房子要跌价了，别买了，租房住吧，正好把我们的猪圈租给他们，结果，这么多年后，长工们的钱全没了，还在租房住，直到永远！&nbsp;­<br><br>­<br><br>　　这个笑话虽然有点夸张，但实际上这何尝又不是事实呢？有人说既然如此？为什么中国人还要买房？疯了一样的买？为什么？还不是愚民教育的结果，就好象60&nbsp;年代，鼓吹人们必须购买三大件：手表、缝纫机、自行车才算是成功人士才可嫁人娶妻。70年代鼓吹人们必须购买新四大件：电视，冰箱，洗衣机，装电话才算是出人头地才可娶妻生子一样，记得当年装电话可是要几千块钱一部啊（人均收入不到200的小城），而北京上海更有上万一部的时候，还得排队买号搭人情，和今天的买房又何其相似？­<br><br>　　而今天所有的狗屁学者又开始了这一套愚弄百姓的旧招：白领一族新标准，成功人士新选择X环X路小户型，X环X路商住型。收了你几十万后，还得每个月收你租金（新物业费），银行利息，以及各种巧立名目的加息、政策等等等等。总之不怕你不被整死，就怕你死得不够惨！老百姓咋就怎么乐于上当，而且百上不厌呢？我真是气得浑身都湿了！<br><br>­<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;第二大当：就业&nbsp;­<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当有人终于开始感叹：当年当知青的时候，当有人下岗之后感到没有生路，只能静坐抗议却无人理会，只能沦落街头还被人编首歌嘲笑着人生豪迈，重头再来的时候。你可曾想过！他们也曾经和今天的白领一样风光！他们的收入和地位也曾经让周围的人艳羡不已？你可曾想过20年后的今天！你一样会和他们一样沦落街头，众叛亲离？！<br><br>　　有人说嘿！你不知道有失业保险，养老保险，XX保险么？呵呵，我在北京漂泊N年，交了无数保险大概有好几万吧，但失业的时候跑断腿也没人给我啥保险，反而很多保险都被冻结了说我交得断断续续的，我简直又气得……这还不算，你以为你到了60岁真的就可以拿到养老保险了吗？天上又不会掉钱！今天的老年人拿的退休金是我们在挣！而今天30-40岁的人通常都有好几个兄弟姐妹！意思就是，今天的老年人能在&nbsp;60岁拿到养老保险是因为有5个人供一个老人！而我们这一代老去之后则是一个人供我们两个老人！钱从哪里来？没得来！您要是能活到90岁估计能领到一些养老保险，嘿保重吧您。然而即使是这样，家长们还是疯了一样的把孩子往各种企事业国有单位里送，我身边就经常有这样的例子。我老家一个远房亲戚，找关系拖朋友，花了七万块钱通过公开招聘把儿子送进了交警队，干上合同制的police。一个月拿800块。结果第三年被竞争上岗给刷下来了。一家人哭哭啼啼，我说刷了好，你上那班一辈子挣不回那七万，赶紧先洗洗睡，改明再凑点钱做小生意去吧！没准还能赚点。­<br><br>　　当年我毕业的时候，我不文明用语也是领着我抱着钱，把我往XX部送。我一看负责招工那人那德行，就忍不住的恶心，再一看薪水，不文明用语呀，我这不是白干10年不吃不喝才拿回成本。所以我私下威胁了那家伙一把，吓得那个大腹便便的X科长再也不敢招收我。我才得已：离家出走。­<br><br>　　我就想不明白？中国人咋就这么傻？这么迷信国字呢？醒醒吧，思维正常一点行不？做事之前自己算算合算不合算成不？­<br><br>　　还有那些年纪轻轻的小白领们，找工作最好把薪水要高点，别要医疗保险和啥保险，然后自己把钱存起来最保险，将来用得着。&nbsp;­<br><br>­<br><br>　　第三大当：教育&nbsp;­<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一张文凭值多少钱？一张文凭值多少钱？一张文凭值多少钱？印刷成本两块钱顶了天了。一个老师工资多少？嘿，两个学生的学费足够一学期了！一个班的书本印刷多少钱？两个学生的足够了！一个班房租多少钱一学期？嘿嘿两个学生足够了。！嘿！中国教育你凭啥收那么多钱！？­<br><br>　　嘿！百姓们！我们为啥要上当？因为从小统治阶级就告诉我们考上秀才才光荣。哦对不起我说错了，是考上大学才光荣。但老百姓从来不去想一想为什么光荣？为什么光荣……&nbsp;大学秀才又怎样还不是废物！­<br><br>　　你知道你的孩子是什么人在教么？在中国一般是无法适应社会的人才会沦为一个教师，举个例子。前段时间我因为一个项目的关系，找了几个大学的硕士生做程序。结果有几个人笨得很，完全不给你考虑，非得你守着才干活，而且给个文件明显有一个错别字，也不给改，等你发现了还跟你较真，是这不是他的错，是你给的就是错的。一点责任感，一都不会考虑究竟是为了做事而做事还是为了做好一件事而做事。我还是很心平气和的给他们讲道理：你们必须学会为别人思考，思考别人想要什么结果再去做事情。否则无法在社会上生存。结果那几个说：我们才不要去社会上，我们考试成绩好得很，学校要我们留校做老师。再说了本来我们就没什么错，你怎么安排我们怎么做，你不安排我们就不做。这是我们的尊严和原则。我说：如果你去守门，老板没安排你下班的时候锁好仓库你就不锁了吗？您心寒吗？以后您的孩子就是在这样的人的指导下学习和成长。您放心么？­<br><br>　　难怪现在读大学的同居，逃课，打架，自杀……&nbsp;但家长们还是愿意花钱把孩子送进学校去，而且是花一辈子的钱。&nbsp;­<br><br>­<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;第四大当：买车&nbsp;­<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;中国人疯了吗？买车？为什么要买车？？？当然您有了钱花不光了，您爱怎么买怎么买，买车买房，反正油价怎么涨你也花不完钱，房子要拆迁你也不心疼。但是大多数老百姓呢？­<br><br>　　我以前有个同事住北二环，公司西直门那里。每天坐地铁上班最多半小时。可非得买一二手夏利，每天早上8点开始在路上堵着，然后一点一点的挪到公司。嘿，一个月停车费都不少。可人家就觉得开了车自己身份高级一点。别说开个夏利，就是开个奥迪我也没见谁对谁三磕九拜。除了显得自己比别人傻一点外完全没有别的作用。­<br><br>　　还有一次，我遇见一个月收入才4000的小姑娘，在计划贷款买车。于是我就问她：小姑娘，你又没做生意，自己按时上班，地铁又方便，买车干什么呢？想了半天，实在估计也想不出什么理由来了就说：有时候去超市买东西吧，打车又觉得近了点不划算，走路又远了点。所以自己开车去了！听得我差点没恶心死。你开车去超市买个方便面不觉得恶心么？装备了大哥大去拣垃圾，也是拣垃圾的！别以为买了车能证明什么。­<br><br>　　比如我现在自己做生意，很忙，一天大概要跑4-5个地方，见很多客户。但我就不买车，为什么？我打车随招即来，打完就走，不用担心停车没地方，不用担心挂了碰了，不用担心被贼偷了绑了，无论挂风下雨都有司机。万一碰着个堵车还可以下车坐地铁。一年也就一万多块RMB！要买一车！一年停车费都得一万多！这不是傻么？­<br><br>　　说别买车别买车，可就有无数的人疯了一样的去贷款买？一定要嫌自己将来死得不够惨似的！买吧，买完了加息了不是？油价涨疯了不是？停车又贵了不是？后悔了不是？新车一上路就掉价了卖也卖不掉了不是？？­<br><br>　　告诉你，油价还得涨。一定要涨到和美圆一样的油价。嘿嘿！您拿老美1/10的收入，养和人家一个价的汽油。我看您还得瑟不。­<br><br>　　最后说一句，每个人都不傻，都是从小被愚民教育给弄啥了。傻点不要紧，但性命悠关的事儿您还是紧着点，多盘算盘算经济利益之间的关系！别到头来，房产一跌，油价一涨，交了半辈子钱拿了毕业证还是啥啥不会干，交了几十年苛捐杂税还啥啥福利没有。您亏的可不仅仅是差价几十万。­<br><br>　　有人还说什么？哎呀没办法，难道不住了，不买车啦，公车好挤呀。我说全是愚民教育出来的虚荣心在做怪。您看看我，租一个房子住才一千多块一个月，也就相当于有些人的物业费。如果要结婚我还租得起3-4千的，家具装修一应具全。而且还哪方便我住哪儿。不想搬就长期租。也和交物业费一个样。还白白省出还银行贷款、利息、首付一大堆。有事就打车，没事就地铁，一年一万顶天了，还省了车库费，停车费，罚款等一堆，油价涨到10块也乐呵，也不耽误事。俺大学没念完就跑了，一边自学一边自己钻研市场出策划跑业务，不也同样可以进外资企业，上市企业做经理么？还省出好几万学费来。&nbsp;­<br><br>­<br><br>　　当然有的人会说：你连个房子都不买，指定结不了婚。我心想：我是没有，您以为您有啊？有人说租房子不划算，租完了还是别人的，嘿嘿，你以为买房子还了几十年贷款，还清了就是你的了啊……</p>]]></description></item><item><link>http://www.cafeblue.cn/blogview.asp?logID=328</link><title><![CDATA[How to kill zombie process]]></title><author>cafeblue</author><category>软件技术</category><pubDate>2011-05-10 13:38:35</pubDate><guid>http://www.cafeblue.cn/blogview.asp?logID=328</guid><description><![CDATA[<p id=fp>zombie&nbsp;process&nbsp;is&nbsp;hard&nbsp;to&nbsp;kill&nbsp;by&nbsp;&quot;kill&quot;,&nbsp;I&nbsp;google&nbsp;a&nbsp;method&nbsp;to&nbsp;kill&nbsp;it.<br><br>sometime&nbsp;you&nbsp;have&nbsp;to&nbsp;find&nbsp;out&nbsp;the&nbsp;parent&nbsp;process&nbsp;and&nbsp;kill&nbsp;it,&nbsp;I&nbsp;think.&nbsp;<br><br>The&nbsp;following&nbsp;command&nbsp;could&nbsp;be&nbsp;used&nbsp;to&nbsp;find&nbsp;out&nbsp;the&nbsp;defunct&nbsp;parent&nbsp;process.<br><br>ps&nbsp;-ef&nbsp;|&nbsp;grep&nbsp;defunct&nbsp;|&nbsp;awk&nbsp;‘{&nbsp;print&nbsp;$3&nbsp;}’&nbsp;|&nbsp;xargs&nbsp;kill&nbsp;-9</p>]]></description></item>
</channel>
</rss>
