<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>膘叔</title>
		<link>http://www.neatstudio.com/</link>
		<description>只关心我所关心的，不在意我所不在意的</description>
		<copyright>Copyright (C) 2004 Security Angel Team [S4T] All Rights Reserved.</copyright>
		<generator>SaBlog-X Version 1.6 Build 20080806</generator>
		<lastBuildDate>Sat, 13 Mar 2010 03:58:37 +0000</lastBuildDate>
		<ttl>30</ttl>
		<item>
			<guid>http://www.neatstudio.com/show-1144-1.shtml</guid>
			<title>对edong的域名备案自动检测系统感到鸡动</title>
			<author>gouki</author>
			<description><![CDATA[<p>我的服务器托管在edong 江阴机房 ，下午突然有人和我说放在我服务器上的一个域名不能被访问了。于是联系了一下edong，结果却发现我自己的neatstudio.com也不能被访问了。</p>
<p>访问提示都是：该域名因为未备案而被关闭。</p>
<p>当然，我的网站是已经备过案的，出现这个的原因是什么呢？是因为edong在我的服务器上装了一个监测软件（是apache的so组件），当别人访问我的服务器上的域名时，如果在他们的白名单里，那么就可以被访问，如果不在，那就会提示&ldquo;该域名因为未备案而被关闭&rdquo;</p>
<p>虽然不喜欢这种行为，但，总算还是可以被我接受的。毕竟在去年11月12月的时候，那时候都是直接拔网线的，如今只是提示一下，已经是很不错的进步了（只是我不知道这玩意有多耗资源）。仔细想想，我还是能理解，要知道去年有N多IDC被吊销执照，现在这么一点提示，怎么不能被接受？呵呵</p>
<p>只是以后就需要事先向他们申请加入白名单才行。</p>]]></description>
			<link>http://www.neatstudio.com/show-1144-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-03-12 17:30</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1143-1.shtml</guid>
			<title>NeatCN.COM 另作他用了</title>
			<author>gouki</author>
			<description><![CDATA[<p>各位朋友，neatcn.com我算是正式作为团队信息的博客来使用了。<br />
当然我会拉着walker和hihiyou过来写一些技术博客（心情也要写写的），但我要求技术尽量是原创，如果转载优秀代码，一定要做详细注释以及转载原因。</p>
<p>请朋友们还重新更新一下rss的链接哦。</p>]]></description>
			<link>http://www.neatstudio.com/show-1143-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-03-11 22:27</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1142-1.shtml</guid>
			<title>Google Docs 可直接做 OCR 将图片转换为可编辑文本了</title>
			<author>gouki</author>
			<description><![CDATA[<p>说老实话，我真的认为我邪恶了，我在看到这个标题的时候，我想的居然是。。。。<br />
等你们看完我转贴我再告诉你们，愚蠢的人类啊（套用凹凸慢的经典台词）。<br />
原文来自<strong>：谷奥&mdash;&mdash;探寻谷歌的奥秘</strong> [<a href="http://www.google.org.cn/">http://www.google.org.cn</a>]<br />
<a href="http://www.neatstudio.com/attachment.php?id=499" target="_blank"><img src="http://www.neatstudio.com/attachments/date_201003/thumb_fc81d5dca7ebb8f9a9b6ae754fef3ed4.png" border="0" alt="大小: 80.32 K&#13;尺寸: 468 x 376&#13;浏览: 9 次&#13;点击打开新窗口浏览全图" width="468" height="376" /></a></p>
<p><a href="http://code.google.com/apis/documents/overview.html">Documents  List Data API</a>今天增加两个实验性功能：OCR和文档翻译。</p>
<p>OCR可以直接将扫描图片里的文字转换为可编辑的文字，要实现为.png、.jpg或.gif图片做OCR，只需要在上传请求中加入 &ldquo;ocr=true&rdquo;参数即可：</p>
<p>POST /feeds/default/private/full?ocr=true HTTP/1.1</p>
<p>OCR目前只能识别高分辨率图片，而且还并不完美，不过Google会尽力做的更好。</p>
<p>API里新增的<a href="http://translate.google.com/">Google Translate</a>翻译功 能，可以在你上传的时候就做翻译。只要在上传请求中增加targetLanguage（目标语言）和sourceLanguag（源语言）参数即可：</p>
<p>POST  /feeds/default/private/full/?targetLanguage=de&amp;sourceLanguage=en  HTTP/1.1</p>
<p>如果你忽略sourceLanguag参数，Google会尝试自动识语言，Google Translate的所有语言都支持。</p>
<p>Via <a target="_blank" href="http://www.labnol.org/internet/perform-ocr-with-google-docs/10059/">Digital Inspiration</a> and Google <a target="_blank" href="http://googledataapis.blogspot.com/2009/09/import-scans-or-go-multilingual.html">Code Data APIs Blog</a></p>
<p>--EOF--<br />
我承认，我看到这个功能能的第一个想法是，以后，验证码的识别可以通过这个接口来完成了。。。程序都不用自己写了，人可以变得越来越蠢了。</p>]]></description>
			<link>http://www.neatstudio.com/show-1142-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-03-11 09:26</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1141-1.shtml</guid>
			<title>thinksns 不再开发了？</title>
			<author>gouki</author>
			<description><![CDATA[<p>ThinkSNS是基于ThinkPHP框架开发的一款SNS程序，原本以为还是相对不错的程序，一些小的BUG也还能够接受，但听到这个消息（不再继续开发）后，心里哇凉哇凉的。</p>
<p>本来我也不知道的，但是在偶尔看discuz的uchome时，发现了这个投票，投票地址为：http://u.discuz.net/home/space-1293758-do-poll-pid-2017.html，内容大致如下：</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol class="dp-xml" start="1">
    <li class="alt"><span><span>RT，大家都知道，SNS即将过去.曾经我们离开过，去年我们团队又回来了，但是我们发现现在的网络形式已经不同了。因此我们不得不再次将&nbsp;THINKSNS项目再次停止开发，将精力转向微博，细心的朋友会发现我们已经在开发微博了，大家可以看77661.CN。目前进行到V0.2版本，并且此版将在下周一前提供下载。新版演示可以参考Couxing.com&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<p>&nbsp;</p>
<p>看到这个投票，心里能不哇凉哇凉吗？看来以后更加不敢用这些个人作品了。除非是以公司运作的、或者开源但功能完整，BUG不多的。</p>
<p>因为相对于thinksns来说，我投入的精力和修改BUG也花了不少精力，当初thinksns说改用thinkphp2.0开发的时候，本来还想着激动一下，结果，干脆说不开发了。唉。。现在的<a href="http://www.bestjia.com">百思家网站</a>的<a href="http://www.bestjia.com/home/">用户中心</a>就是采用了这个thinkSNS，改动了很多功能，不再一一列出，主要还是由于是商业网站不太适合改动，我仅说一点小小的吧，那就是博客的分类与相册的分类整合（而且还是用的另外的表，并非他原先的表结构）。</p>
<p>想来想去，最多到6月份左右，我想我还是会回到UCH上面吧？基于几个原因：</p>
<ol>
    <li>官方不再开发，而小ＢＵＧ太多</li>
    <li>冗余代码太多，无法细细清除</li>
    <li>theme更换的时候，必须要cleancache，否则无效（因此，在任何情况下，也只能拥有一套皮肤）</li>
    <li>原始模版写的有点糟糕，可能是赶时间写的。。。改一个小地方，都要同时改4、5个模版</li>
</ol>]]></description>
			<link>http://www.neatstudio.com/show-1141-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-1-1.shtml">PHP</category>
			<pubDate>2010-03-11 08:59</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1140-1.shtml</guid>
			<title>牛人：在家里也能玩真实的F1</title>
			<author>gouki</author>
			<description><![CDATA[<p>好羡慕啊。。。在家里玩F1。。看看</p>
<p><embed width="480" height="400" align="middle" src="http://player.youku.com/player.php/sid/XMTU2MjgxMTI0/v.swf" quality="high" allowscriptaccess="sameDomain" type="application/x-shockwave-flash"></embed></p>
<p>不羡慕也不行啊，对于有疑问的朋友，可以看看这个回复：</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span>那些不明白为何上下不停摆动的人，最好把所有评论看了。&nbsp;&nbsp;</span></span></li>
    <li class=""><span>关键是显示器永远跟他的视线保持垂直，上下摆动只不过是相对于我们旁观者罢了。这样玩家只有身体感受到作用力而视觉上不会出现上下摆动的效果。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>当然，假如玩家在玩的过程中不把注意力集中在显示器上的话，肯定会受到周围环境的影响而降低拟真度，不过话说回来开赛车估计没人会分散注意力吧，呵呵。&nbsp;&nbsp;</span></li>
    <li class=""><span>视频需要观看整台机器所以开灯，平时玩的时候把灯关掉会好很多。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>不明白的人可以问，别乱喷来突显你的无知。&nbsp; <br />
    </span></li>
</ol>
</div>]]></description>
			<link>http://www.neatstudio.com/show-1140-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-03-10 17:06</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1139-1.shtml</guid>
			<title>浪驰短信接口的实现</title>
			<author>gouki</author>
			<description><![CDATA[<p>浪驰短信是一家短信应用的提供商，提供了一些WEB调用的接口，为了让短信能够加到队列里，我用PHP重新实现了一遍（其实是因为他们没有提供WEB查看的页面，否则还真不需要实现）</p>
<p>注意事项：浪驰的接口必须要在同一个进程里发送和接收短信。否则会失败的。为此我写了三次接口类</p>
<p>第一次采用了snoopy，因为他们建议使用POST发送数据，所以我偷懒就用了snoopy，但只能获取得activeId，却无法进行下一步操作</p>
<p>第二次我直接采用file_get_contents，我没有用Stream流来POST数据，而是用了GET方式（GET方式也支持的），但于第一次一样，只能获取activeId，无法进行下一步操作。</p>
<p>然后我用浏览器打开相应的地址一步步的查看，发现他有一个cookie是每次种入的，于是怀疑他的ActiveID还需要配合cookie才行。于是尝试直接Setcookie，然后再发送。但发现手工种的cookie好象不行。于是</p>
<p>第三次，我用curl，并指定cookie文件，最后终于成功了。感谢curl，可以支持带COOKIE的数据发送。</p>
<p>代码不贴了，涉及公司的代码。再者，纯粹的代码也不能用。。因为我还用mysql实现了一个简单的队列，以及成功记录，错误记录。。。</p>
<p>好象听说目前不能接受回复了。真郁闷。。。</p>]]></description>
			<link>http://www.neatstudio.com/show-1139-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-1-1.shtml">PHP</category>
			<pubDate>2010-03-10 11:21</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1138-1.shtml</guid>
			<title>Launchy 2.5 beta 2</title>
			<author>gouki</author>
			<description><![CDATA[<p>Launchy是我装机后的必备软件之一，有了他，快速启动栏我已经直接从任务栏上去除。有了他，一些深藏着的软件也可以被我定义成快捷键使用。官方用来这么介绍：Launchy 是一款跨平台的免费开源的快速启动工具.Launchy  是一款跨平台的免费开源的快速启动工具。使用它只需要简单的敲出文件名，就可以快速的启动应用程序、打开文档、播放视频。在windows下它是替换&quot;运 行&quot;命令的不错选择。 Launchy 早先版本支持windows和linux操作系统。在最新的beta 2中，Launchy已提供了对OS  X的支持。<br />
<br />
如果这次升级仅仅是对OS x的支持，那大可不必下载它，毕竟现在for windows的版本已经很成熟了【唯一不舒服的是，不能够把自定义的快捷键导出来，所以每次重装的时候，对于不在系统盘里的软件，还需要重定义一次】<br />
<br />
我自己是定义成alt+space呼出菜单。确实很爽。<br />
在cnbeta上有两个评论：</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol class="dp-xml" start="1">
    <li class="alt"><span><span>Launchy＋Everything&nbsp;&nbsp;</span></span></li>
    <li class=""><span>Launchy能传递参数，而且可以选择性索引，只拿来索引Exe和lnk，作为程序启动器无出其右。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>剩下交给Everything。&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol class="dp-xml" start="1">
    <li class="alt"><span><span>everything只根据执行频率排序。索引速度无敌，查找不错。但是平时用的启动器的话，手速上完全不是Launchy的对手。&nbsp;&nbsp;</span></span></li>
    <li class=""><span>字串匹配和优先级这方面，launchy是我用过最舒服的&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>灰常同意这两位的观点。。下载地址为：<a href="http://www.launchy.net/25Beta2/" target="_blank">Launchy 2.5  beta 2</a></p>]]></description>
			<link>http://www.neatstudio.com/show-1138-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-03-09 09:39</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1137-1.shtml</guid>
			<title>潜规则:公司招聘中不能说的秘密</title>
			<author>gouki</author>
			<description><![CDATA[<p>这是来自豆瓣的文章，看看还是挺有用的，在漫长的工作生涯中，总会去应聘各种各样的职位，因此，了解这些所谓的潜规则，对于自己投递简历等，还是会有点用处的。</p>
<p>以下是原文，来自于：http://www.douban.com/group/topic/9996403/，</p>
<p>　　你是否试过狂轰乱炸地在网上发简历，而回应者却寥寥无几？难道真的是人才饱和了吗？或者是你不够优秀，企业在第一时间就把你给枪毙了呢？这里，会告诉你一些企业人才招聘环节中一些不为外人知道的秘密，了解了这些秘密，应该可以让你以后的应聘变得更加有成效！　　现在中国所有招聘网站都是以人事经理为中心，因为他们是给钱的一方，较少从求职者角度考虑，如果我们从求职者立场或者中立立场来看中国招聘网站的生意模式及运作流程，将这个求职者并不知晓的事情公布出来，你就会更好清醒认识招聘网站，也更好的实际的利用人才网站求职：<br />
<br />
一、人才网站与企业人事经理的生意模式对求职者影响：<br />
人才网站的行规是企业人事经理支付600元，可以在一个月内发布一定的职位让求职者投递简历，可以搜索查看人才网站简历库的简历，还可以下载一定数量的简历主动与求职者联系。而大企业及知名公司一般都是购买1年的招聘服务。问题就出来了：如果这个职位1到2周企业招到人了，但他购买的是1个月的服务，所以企业的职位还是挂在网上，而且人才网站竞争激烈，一般都会赠送1个月服务。所以一般职位至少1个月挂在人才网站是无效的，是浪费求职者查看与投递简历时间的。<br />
<br />
大公司最不可靠，他们利用网络、报纸、现场等多种方式，而1年的大大banner永远挂在人才网站上，他们并不需要人，只是为了广告宣传。<br />
<br />
所以人才网站50％以上的职位都是过期的、无效的、不招人或招满人的，所有求职者抱怨我投了那么多简历为什么反馈率那么低，反馈率低是非常正常的。<br />
<br />
另外51job网站的反馈率是最低的，这也是行业秘密：因为51Job的资源80％是以报纸招聘为主，报纸招聘效率高，但网站上的职位都是在报纸上刊登过后作为免费与补充服务，所以很多HR只会看报纸上来的简历，网站来的简历基本不看，在加上51job简历投递量实在太大，那些懒惰的HR才懒得一封一封的看，只会用搜索关键字来看，如本科＋3年工作经验＋主管等，其他不符合条件的看都不看一眼。所以你知道为什么一直没有公司找你面试，不是你不行，而是HR都不看你发的简历。下面第二部分告诉你如何被他们搜索到。<br />
<br />
现在你知道网络招聘的反馈率为什么那么低了吧。不信你用自动回复邮件形式发送中国3大招聘网站职位HR的邮箱，看看有多少HR看了你的简历，一个工作论坛的网友说，他试着发了100个HR邮箱简历，可以通过自动回复的反馈率统计，可以看到50％HR不看简历就直接删除，30%根本就不打开邮件，只有20％打开邮箱，还有10％可能已经找到人的。他的分析说即使是中国前3名招聘网站以严格标准来看也只有10％职位是真正要急迫招人的。<br />
<br />
二、既然知道一些潜规则，那我们也迎合一些这些规则，告诉你一些网络求职的小秘密<br />
<br />
（1）采用行业招聘网站求职。因为行业招聘网站是按行业发布职位信息的，所以专业和工作经历比较对口。比如你要找物业管理类的工作，你到万行工作网www.114job.com.cn的物业管理招聘频道上去注册简历就比较好，因为那里全部都是物业管理类的企业在招聘；如果你要找外贸的工作，你就可以万行工作网的外贸招聘频道去找，肯定有大量的外贸工作机会。其它的就不在列举。在目前的情况下，几乎每个行业的人才在万行工作网上都能找到自己的频道。<br />
<br />
（2）简历要与大公司沾边<br />
当人事经理搜索招聘网站简历库简历时，一般会以关键字&ldquo;知名企业名称＋职位名称&rdquo;，比如消费品行业可能喜欢可口可乐及宝洁的人，人事经理会这样搜索，例如：&ldquo;可口可乐＋销售经理&rdquo;，系统会搜索到简历中出现以上关键字的求职者，如果你的简历里出现知名企业名称的字样，就可以被搜索到，例如：&ldquo;我在xx矿泉水公司工作，成功地令竞争对手&mdash;&mdash;可口可乐旗下的天与地矿泉水在当地的市场份额减少&hellip;&hellip;&rdquo;：&ldquo;我在可口可乐的广州白云区经销商工作&rdquo;等。又提高了人事经理浏览简历的机会！<br />
<br />
（3）经常刷新简历<br />
当人事经理搜索简历库的简历时，符合条件的简历是按刷新的时间顺序排列，而一般只会看前面一两页。很多求职者其实并不知道刷新简历可以获得更多求职机会。因此每次登陆，最好都刷新简历，刷新以后，就能排在前面，更容易被人事经理找到！<br />
（4）不要只应聘最近三天的职位<br />
<br />
一般求职者认为刚刚发布的最新的招聘信息肯定是成功率最大的，其实不然。因为很多企业人事经理没有及时的登陆刷新刊登的职位，所以求职者在搜索职位时刚刷新的职位会排在前面，这些职位应聘的人多，竞争大，相反，一些职位已经是半个月甚至两个月的，应聘的人少，成功率反而高。<br />
<br />
（5）让你的邮件永远在最前面<br />
你要知道每天人事经理看求职者邮箱，他们其实是很懒的，100多页简历邮件他们最多只看前5页！你现在应该知道为什么你的求职简历永远没有回应！<br />
<br />
所以发邮件到企业指定的邮箱时，怎样才能让你的邮件永远排在最前面，让人事经理每次打开邮箱都首先看到你的邮件？只要在发邮件前，把电脑系统的日期改为一个将来的日期，如2008年，因为大多邮箱都是默认把邮件按日期排序，所以你的邮件起码要到2008年以后才会被排在后面！（如果你求职成功，要向我请客耶！）<br />
<br />
（6）新颖的邮件标题<br />
人事经理每天收到大量的求职电子邮件，求职者一般会按企业要求把邮件题目写成：应聘xx职位，怎样才能吸引人事经理的眼球，让他先打开自己的邮件？可以在邮件题目上做文章。一天人事经理收到几百封邮件，只有标题新颖的才有机会被打开。<br />
<br />
例子：我的一个女性朋友发了100多封邮件求职都没有任何反应，因为应聘做文员的太多了，而我这个朋友做过空姐，我将她的邮件标题改为&ldquo;空姐来广州找工作&rdquo;，引起绝大部分男人事经理想入非非，结果三天之内有30多个男人事经理通知面试，3个月找不到工作的她而变成3天找到上十份工作。你现在知道邮件标题的重要性了吧。<br />
<br />
（7）简历最好放靓照<br />
对于人事经理来说，每天需要浏览大量简历，如果同等的条件，一般会先通知有照片的求职者来面试，因为通过照片，人事经理对应聘者又多了几分了解。如果是美女，被通知的可能性就更大。我作为人事经理，曾经招聘一个人事主管，收到300多封简历，我找出前30份有相片的前5份，通知了最漂亮相片的2个女孩，就定下了其中的一个。对于一般职位如文职人员之类，中国人的传统还是以貌取人，你即使不漂亮，也照一个艺术照，就增多了面试机会（与其等死，还不如放手一搏），毕竟很现实的是，简历的目的就是有面试的机会，其他就要靠实力与运气了。<br />
<br />
（8）求职信&ldquo;骂&rdquo;对方公司往往会带来意想不到的效果<br />
一般人认为在求职信中称赞对方公司会引起好感，其实不然。如果先指出这家公司的缺点，往往会引起关注，语不惊人死不休呢，我作为人事经理，我只会对指出我们缺点的求职者有好感，对恭维我们公司的求职者一般会放在一边。即使你不知道对方公司缺点，你随便写一些永远不会错的：&ldquo;我认为贵司创新不够，市场表现过于常规化；我以消费者心态观察贵司，发现贵司客户服务还有许多待改进的地方；我发现贵司品牌形象还有可能做的更好&hellip;&hellip;&rdquo;如闻其详，可面谈。可勾引相关公司面试。只要有面试机会，其他再说。（简历有机会面试目的是一切，手段是无所谓的）。<br />
<br />
（9）自己要学会让简历与职位匹配<br />
2个观念都是有效的：一是不要太在乎对方职位要求的描述，很多职位描述只是写写，连经理都不知道要招什么样的人，如果你看到对方职位要求本科，你是专科就不敢投递简历，那就失去机会了。如果你看到对方要求有5年经验，你只有3年经验，你也不敢投，那完全没有必要。因为人事经理们对职位的描述只是例行公事随便写写而已，你千万不要当真！<br />
<br />
另外一个匹配观念就是他的职位如何描述，你就改变你的简历换一个说法匹配，如他说要求领导能力强，你的简历也说具有领导才能，他要沟通能力一流，你的简历也说我最擅长沟通。你的简历表面匹配度最高，也可以多增加机会。你可将简历改成为他职位描述完全量身定做的简历。<br />
<br />
其实求职者有更多的面试机会，不但可以增加成功求职机会，还可以增加自己的信心，工资越叫越高还可以积累面试经验。很多优秀的求职者网上发了很多简历没有回应，以为自己不行没有竞争力，只好自动降价，实为可惜！特别是中国最大的招聘网站51job的简历投递反馈率是同行业最低的，因为它主要资源80％投入报纸，报纸招聘完甚至录取完毕后将职位入库，只是将职位作为一个摆设放到网站。<br />
<br />
要知道现在网络求职的成功率一般2个月是发1000份简历，有8份面试，2份成功，一个是你不想去的，另一个可能是你相对满意的。所以网络求职的朋友千万不要对自己失去信心。</p>]]></description>
			<link>http://www.neatstudio.com/show-1137-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-03-08 11:07</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1136-1.shtml</guid>
			<title>博客放上了全站广告</title>
			<author>gouki</author>
			<description><![CDATA[<p>我在博客上预留的三个广告位，目前却放了一个不在广告位上的广告。<br />
这三个广告位是什么呢？在这里有详细介绍：http://www.neatstudio.com/show-142-1.shtml</p>
<p>主要是这三处：<font size="2"><br />
1、BANNER<br />
2、文章内页右侧<br />
3、文章内页，文章结束的地方：目前是alimama的广告。。。</font></p>
<p><font size="2">目前我在导航条下放了一个较大的广告，是个flash的。（还是flash容易控制宽高，而且变形不明显，HOHO），正好也算是38节（三八节），链接地址为：<a href="http://www.bestjia.com/special/women/">http://www.bestjia.com/special/women/</a></font></p>
<p>首页的左侧，也有我出售给Textlink的四个链接。每个链接因为我的PR高的关系，也有4刀一个月，如果PR高的网站，不妨可以尝试一下，PR3左右的就不要试了，PR3左右的网站好象很难卖得出链接。。。4以上的会好一点，点击 <a title="文字链就象本站友链一样，如果能够成功购买，大约每条每月3刀左右" target="_blank" href="http://www.whylink.com/?aff=45562">购买文字链</a>。</p>]]></description>
			<link>http://www.neatstudio.com/show-1136-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-03-08 09:41</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1135-1.shtml</guid>
			<title>在 Ubuntu 9.10 Server 上安装 Nginx 0.8.34</title>
			<author>gouki</author>
			<description><![CDATA[<p>本文的内容对我来说或许可以有用，因为我的VPS用的就是9.10，用默认的apache好象效率并不高，所以。。。真的可以参考一下。</p>
<div class="entry-body">
<div>
<div class="item-body">
<div>
<p>Nginx 在 3 月 3 日放出了 0.8.34 这个开发版。张宴也随即更新了《<a href="http://blog.s135.com/nginx_php_v6/" target="_blank">Nginx 0.8.x + PHP 5.2.13（FastCGI）搭建胜过Apache十倍的Web服务器</a>》 到第六版。不过，他写的记录是针对 CentOS、Redhat 等 rpm 包管理的服务器。由于习惯了 debian 系列的服务器，特别是用惯了 ubuntu 服务器，在这里特别做一下 Ubuntu 9.10 下的安装笔记。其他基于 deb 包管理的发行版也类似。</p>
<p>首先，为了编译 Nginx，应在新装好的 Ubuntu server 环境下安装如下软件包：</p>
<div>
<div>
<pre style="font-family: monospace;"><span style="color: rgb(194, 12, 185); font-weight: bold;">sudo</span> <span style="color: rgb(194, 12, 185); font-weight: bold;">apt-get</span> <span style="color: rgb(194, 12, 185); font-weight: bold;">install</span> build-essential libpcre3-dev libssl-dev libxslt-dev libgd2-xpm-dev libgeoip-dev</pre>
</div>
</div>
<p>然后下载 0.8.34 版本的 Nginx：</p>
<div>
<div>
<pre style="font-family: monospace;"><span style="color: rgb(194, 12, 185); font-weight: bold;">wget</span> http:<span style="color: rgb(0, 0, 0); font-weight: bold;">//</span>www.nginx.org<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>download<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>nginx-0.8.34.tar.gz</pre>
</div>
</div>
<p>解压：</p>
<div>
<div>
<pre style="font-family: monospace;"><span style="color: rgb(194, 12, 185); font-weight: bold;">tar</span> xvzf nginx-0.8.34.tar.gz</pre>
</div>
</div>
<p>下载 upstream fair 模块。upstream fair 是比内建的负载均衡更加智能的负载均衡模块。它采用的不是内建负载均衡使用的轮换的均衡算法，而是可以根据页面大小、加载时间长短智能的进行负载均衡。</p>
<div>
<div>
<pre style="font-family: monospace;"><span style="color: rgb(194, 12, 185); font-weight: bold;">wget</span> http:<span style="color: rgb(0, 0, 0); font-weight: bold;">//</span>github.com<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>gnosek<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>nginx-upstream-fair<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>tarball<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>master</pre>
</div>
</div>
<p>解压：</p>
<div>
<div>
<pre style="font-family: monospace;"><span style="color: rgb(194, 12, 185); font-weight: bold;">tar</span> xvzf gnosek-nginx-upstream-fair-2131c73.tar.gz</pre>
</div>
</div>
<p>然后进入 nginx 源码目录执行 configure 配置编译选项。下面是我所使用的配置：</p>
<div><br />
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span>./configure&nbsp;</span><span class="attribute">--conf-path</span><span>=/etc/nginx/nginx.conf&nbsp;\</span><span class="attribute">--error-log-path</span><span>=/var/log/nginx/error.log&nbsp;\&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="attribute">--pid-path</span><span>=/var/run/nginx.pid&nbsp;\&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="attribute">--lock-path</span><span>=/var/lock/nginx.lock&nbsp;\&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="attribute">--http-log-path</span><span>=/var/log/nginx/access.log&nbsp;\&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="attribute">--http-client-body-temp-path</span><span>=/var/lib/nginx/body&nbsp;\&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="attribute">--http-proxy-temp-path</span><span>=/var/lib/nginx/proxy&nbsp;\&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="attribute">--http-fastcgi-temp-path</span><span>=/var/lib/nginx/fastcgi&nbsp;\&nbsp;&nbsp;</span></span></li>
    <li class=""><span>--with-debug&nbsp;\&nbsp;&nbsp;</span></li>
    <li class="alt"><span>--with-http_stub_status_module&nbsp;\&nbsp;&nbsp;</span></li>
    <li class=""><span>--with-http_flv_module&nbsp;\&nbsp;&nbsp;</span></li>
    <li class="alt"><span>--with-http_ssl_module&nbsp;\&nbsp;&nbsp;</span></li>
    <li class=""><span>--with-http_dav_module&nbsp;\&nbsp;&nbsp;</span></li>
    <li class="alt"><span>--with-http_gzip_static_module&nbsp;\&nbsp;&nbsp;</span></li>
    <li class=""><span>--with-mail&nbsp;\&nbsp;&nbsp;</span></li>
    <li class="alt"><span>--with-mail_ssl_module&nbsp;\&nbsp;&nbsp;</span></li>
    <li class=""><span>--with-ipv6&nbsp;\&nbsp;&nbsp;</span></li>
    <li class="alt"><span>--with-http_realip_module&nbsp;\&nbsp;&nbsp;</span></li>
    <li class=""><span>--with-http_geoip_module&nbsp;\&nbsp;&nbsp;</span></li>
    <li class="alt"><span>--with-http_xslt_module&nbsp;\&nbsp;&nbsp;</span></li>
    <li class=""><span>--with-http_image_filter_module&nbsp;\&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="attribute">--with-sha1</span><span>=/usr/include/openssl&nbsp;\&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="attribute">--with-md5</span><span>=/usr/include/openssl&nbsp;\&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="attribute">--add-module</span><span>=/home/mikespook/gnosek-nginx-upstream-fair-2131c73&nbsp;&nbsp;</span></span></li>
</ol>
</div>
</div>
<p>这个配置来自于 Jeff Waugh 的 PPA 中的 nginx 0.8.34 编译选项。配置、lock、pid 等文件的位置都是按照 ubuntu 系统惯例设置的。需要注意的是 &ndash;add-module 指向的是 upstream fair 的解压缩目录的绝对路径。这样就可以将 upstream fair 编译进 nginx。</p>
<p>然后编译并安装：</p>
<div>
<div>
<pre style="font-family: monospace;"><span style="color: rgb(194, 12, 185); font-weight: bold;">make</span> <span style="color: rgb(0, 0, 0); font-weight: bold;">&amp;&amp;</span> <span style="color: rgb(194, 12, 185); font-weight: bold;">make</span> <span style="color: rgb(194, 12, 185); font-weight: bold;">install</span></pre>
</div>
</div>
<p>nginx 就安装成功了。目录 /var/lib/nginx 需要手工建立，否则启动 nginx 会报错：</p>
<div>
<div>
<pre style="font-family: monospace;"><span style="color: rgb(122, 8, 116); font-weight: bold;">[</span>emerg<span style="color: rgb(122, 8, 116); font-weight: bold;">]</span>: <span style="color: rgb(194, 12, 185); font-weight: bold;">mkdir</span><span style="color: rgb(122, 8, 116); font-weight: bold;">(</span><span style="color: rgb(122, 8, 116); font-weight: bold;">)</span> <span style="color: rgb(255, 0, 0);">&quot;/var/lib/nginx/body&quot;</span> failed <span style="color: rgb(122, 8, 116); font-weight: bold;">(</span><span style="color: rgb(0, 0, 0);">2</span>: No such <span style="color: rgb(194, 12, 185); font-weight: bold;">file</span> or directory<span style="color: rgb(122, 8, 116); font-weight: bold;">)</span></pre>
</div>
</div>
<p>建立shell 脚本 /etc/init.d/nginx：</p>
<div>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span>#!&nbsp;/bin/sh&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>###&nbsp;BEGIN&nbsp;INIT&nbsp;INFO&nbsp;&nbsp;</span></li>
    <li class=""><span>#&nbsp;Provides:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nginx&nbsp;&nbsp;</span></li>
    <li class="alt"><span>#&nbsp;Required-Start:&nbsp;&nbsp;&nbsp;&nbsp;$all&nbsp;&nbsp;</span></li>
    <li class=""><span>#&nbsp;Required-Stop:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$all&nbsp;&nbsp;</span></li>
    <li class="alt"><span>#&nbsp;Default-Start:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;3&nbsp;4&nbsp;5&nbsp;&nbsp;</span></li>
    <li class=""><span>#&nbsp;Default-Stop:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;1&nbsp;6&nbsp;&nbsp;</span></li>
    <li class="alt"><span>#&nbsp;Short-Description:&nbsp;starts&nbsp;the&nbsp;nginx&nbsp;web&nbsp;server&nbsp;&nbsp;</span></li>
    <li class=""><span>#&nbsp;Description:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;starts&nbsp;nginx&nbsp;using&nbsp;start-stop-daemon&nbsp;&nbsp;</span></li>
    <li class="alt"><span>###&nbsp;END&nbsp;INIT&nbsp;INFO&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="attribute">PATH</span><span>=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="attribute">DAEMON</span><span>=/usr/local/nginx/sbin/nginx&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="attribute">NAME</span><span>=</span><span class="attribute-value">nginx</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="attribute">DESC</span><span>=</span><span class="attribute-value">nginx</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>test&nbsp;-x&nbsp;$DAEMON&nbsp;||&nbsp;exit&nbsp;0&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>#&nbsp;Include&nbsp;nginx&nbsp;defaults&nbsp;if&nbsp;available&nbsp;&nbsp;</span></li>
    <li class="alt"><span>if&nbsp;[&nbsp;-f&nbsp;/etc/default/nginx&nbsp;]&nbsp;;&nbsp;then&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;/etc/default/nginx&nbsp;&nbsp;</span></li>
    <li class="alt"><span>fi&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>set&nbsp;-e&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>case&nbsp;&quot;$1&quot;&nbsp;in&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;start)&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;-n&nbsp;&quot;Starting&nbsp;$DESC:&nbsp;&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start-stop-daemon&nbsp;--start&nbsp;--quiet&nbsp;--pidfile&nbsp;/var/run/$NAME.pid&nbsp;\&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--exec&nbsp;$DAEMON&nbsp;--&nbsp;$DAEMON_OPTS&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;$NAME.&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;stop)&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;-n&nbsp;&quot;Stopping&nbsp;$DESC:&nbsp;&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start-stop-daemon&nbsp;--stop&nbsp;--quiet&nbsp;--pidfile&nbsp;/var/run/$NAME.pid&nbsp;\&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--exec&nbsp;$DAEMON&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;$NAME.&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;restart|force-reload)&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;-n&nbsp;&quot;Restarting&nbsp;$DESC:&nbsp;&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start-stop-daemon&nbsp;--stop&nbsp;--quiet&nbsp;--pidfile&nbsp;\&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/var/run/$NAME.pid&nbsp;--exec&nbsp;$DAEMON&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep&nbsp;1&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start-stop-daemon&nbsp;--start&nbsp;--quiet&nbsp;--pidfile&nbsp;\&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/var/run/$NAME.pid&nbsp;--exec&nbsp;$DAEMON&nbsp;--&nbsp;$DAEMON_OPTS&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;$NAME.&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;reload)&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;-n&nbsp;&quot;Reloading&nbsp;$DESC&nbsp;configuration:&nbsp;&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start-stop-daemon&nbsp;--stop&nbsp;--signal&nbsp;HUP&nbsp;--quiet&nbsp;--pidfile&nbsp;/var/run/$NAME.pid&nbsp;\&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--exec&nbsp;$DAEMON&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;$NAME.&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;*)&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="attribute">N</span><span>=/etc/init.d/$NAME&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;Usage:&nbsp;$N&nbsp;{start|stop|restart|force-reload}&quot;&nbsp;<span class="tag">&gt;</span><span>&amp;2&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit&nbsp;1&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;&nbsp;</span></li>
    <li class=""><span>esac&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>exit&nbsp;0&nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<p>并执行命令：</p>
<div>
<div>
<pre style="font-family: monospace;"><span style="color: rgb(194, 12, 185); font-weight: bold;">sudo</span> update-rc.d <span style="color: rgb(102, 0, 51);">-f</span> nginx defaults</pre>
</div>
</div>
<p>更新 rc 后，即可使用：</p>
<div>
<div>
<pre style="font-family: monospace;"><span style="color: rgb(194, 12, 185); font-weight: bold;">sudo</span> <span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>etc<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>init.d<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>nginx start<br /><span style="color: rgb(194, 12, 185); font-weight: bold;">sudo</span> <span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>etc<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>init.d<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>nginx stop<br /><span style="color: rgb(194, 12, 185); font-weight: bold;">sudo</span> <span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>etc<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>init.d<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>nginx restart</pre>
</div>
</div>
<p>控制 nginx 启动。<br />
其他配置不再累述，张宴的 blog 里写得非常清晰。只补充一下 upstream fair 的使用，只要在 nginx 配置文件的 upstream 段加入 fair 开关即可：</p>
<div>
<div>
<pre style="font-family: monospace;">upstream backend <span style="color: rgb(122, 8, 116); font-weight: bold;">{</span><br />    server server1;<br />    server server2;<br />    fair;<br /><span style="color: rgb(122, 8, 116); font-weight: bold;">}</span></pre>
</div>
</div>
<p>当然，ubuntu 还可以用上面提到的 Jeff 的 ppa 源进行安装：</p>
<div>
<div>
<pre style="font-family: monospace;"><span style="color: rgb(122, 8, 116); font-weight: bold;"><div class="codeText"><div class="codeHead">XML/HTML代码</div><ol start="1" class="dp-xml"><li class="alt"><span><span>echo&nbsp;&quot;deb&nbsp;http://ppa.launchpad.net/jdub/devel/ubuntu&nbsp;hardy&nbsp;main&quot;&nbsp;</span><span class="tag">&gt;</span><span class="tag">&gt;</span><span>&nbsp;/etc/apt/sources.list&nbsp;&nbsp;</span></span></li><li class=""><span>apt-key&nbsp;adv&nbsp;--keyserver&nbsp;keyserver.ubuntu.com&nbsp;--recv-keys&nbsp;E9EEF4A1&nbsp;&nbsp;</span></li><li class="alt"><span>apt-get&nbsp;update&nbsp;&nbsp;</span></li><li class=""><span>apt-get&nbsp;install&nbsp;nginx&nbsp;&nbsp;</span></li></ol></div></span></pre>
</div>
</div>
<p>简单快捷。</p>
<p>原文来自：http://www.mikespook.com/index.php/archives/483，做个参考 。。。。</p>
</div>
</div>
</div>
</div>]]></description>
			<link>http://www.neatstudio.com/show-1135-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-13-1.shtml">Linux</category>
			<pubDate>2010-03-07 20:45</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1134-1.shtml</guid>
			<title>信息过载如何应对</title>
			<author>gouki</author>
			<description><![CDATA[<p>以前，我们总是认为自己获取新信息新资料等等不够。总觉得自己看到的资料太少，信息获取渠道匮乏，可如今不对了，在这个信息爆炸的时代，你缺少的不是资料，而是缺少如何整理资料或者说如何在如海一样的资料中获取你想要的资料。100滴水，对你有用的可能只有5滴，那么你如何过滤到剩下的95滴呢？</p>
<p>看到有个人的博客这么认为信息过载：
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span>*&nbsp;很难从海量信息找到到合适的信息。&nbsp;&nbsp;</span></span></li>
    <li class=""><span>*&nbsp;获取高质量的信息成本越来越高。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>*&nbsp;浪费的时间越来越多。比如点开一个新闻站点之后可能会不知不觉浪费很多时间来看新闻&nbsp;&nbsp;</span></li>
    <li class=""><span>*&nbsp;心态越来越浮躁，很难静下心来去思考和吸引知识。网络上的文章都以快餐化为主，看整本书的人越来越少。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>*&nbsp;注意力非常容易就会分散。比如ＩＭ、邮件、RSS、Twitter、电话、短信、游戏等等。&nbsp;&nbsp;</span></li>
</ol>
</div>
</p>
<p>而他的应对方法也很简单：
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span>明确自己的目标，确定自己目前信息获取的关注范围。部分方向包括：学习研究（细分的方向在10种左右）、沟通方式、财务自由、国学、中医保健及养生、宏观经济学、厨艺、IT、外语等方面。&nbsp;&nbsp;</span></span></li>
    <li class=""><span>在每个系统中建立自己的知识框架，应用知识管理来不断完善，同时记录心得。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>形成自己的GTD系统，不断完善和改进。&nbsp;&nbsp;</span></li>
    <li class=""><span>定期进行反馈和思考&nbsp;&nbsp;</span></li>
    <li class="alt"><span>把身边的信息源划分不同层次，明确轻重缓急&nbsp;&nbsp;</span></li>
    <li class=""><span>拿出固定时间来放松自己，缓解压力&nbsp;&nbsp;</span></li>
</ol>
</div>
</p>
<p>他认为具体可以这样做：
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span>1、对于遇到信息过载的人，说白了就是个人的目标不明确不具体，不清楚自己到底是需要什么信息，才会觉得信息越来越多。当你的目标明确之后，会发现高质量的信息还是很少。&nbsp;&nbsp;</span></span></li>
    <li class=""><span>2、强烈推荐学习快速阅读和思维导图，会发现带来的好处越出想象，同时节省大量时间&nbsp;&nbsp;</span></li>
    <li class="alt"><span>3、学习从无到有建设一个知识框架，并记录每一步的心得和反思&nbsp;&nbsp;</span></li>
    <li class=""><span>4、目前获得信息质量最好的办法还是书籍，网络上的信息质量越高，付出的时间成本就越大&nbsp;&nbsp;</span></li>
    <li class="alt"><span>5、尽可能少的去阅读新闻，新闻95%以上都对你的本人无效，同时会浪费大量时间&nbsp;&nbsp;</span></li>
    <li class=""><span>6、学习GTD，提高时间有效利用率&nbsp;&nbsp;</span></li>
    <li class="alt"><span>7、象IM、Twitter这类的东西能不用就用，浪费的时间会越出你的想象。象偷菜之类的网页游戏也少玩，或者想办法不玩。&nbsp;&nbsp;</span></li>
    <li class=""><span>8、你不是神不可能把一切做得完美，不要过于极端&nbsp;&nbsp;</span></li>
    <li class="alt"><span>9、学习利用手机来帮助自己&nbsp;&nbsp;</span></li>
    <li class=""><span>10、找出放松自己的办法，比如游戏、运动。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>11、利用网络书店、社区、豆瓣、博客和朋友推荐的方式来得到书籍阅读清单，应用速读在书店和图书馆快速略读和路读来寻找自己对有帮助的书籍&nbsp;&nbsp;</span></li>
    <li class=""><span>12、学好英语，网络上很大部分的资料还是英文的&nbsp;&nbsp;</span></li>
    <li class="alt"><span>13、同时进行多任务操作，会分散你的注意力，要学习集中注意力，并练习延长集中的时间。&nbsp;&nbsp;</span></li>
    <li class=""><span>14、想办法建立或加入一个与你目标相同或相近的圈子，会对你有很大的帮助。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>15、定期的反思和改进，非常重要，一定要养成这个习惯&nbsp;&nbsp;</span></li>
</ol>
</div>
不过我自己还是觉得对于时间的管理是最重要的。当然不能全部用来看书或者查资料。锻炼身体其实也很重要，没有身体，一切都是白搭。对于一些你认为以后可能会用到，而目前暂时用不到的，可以用一些软件记录下来。并用标签进行一些整理。相信以后有机会会用上吧。</p>
<p>上面3段转贴都来自于http://www.read.org.cn/html/978-how-do-i-deal-with-information-overload.html，各人的方法不一样，仅作参考</p>
<p>&nbsp;</p>]]></description>
			<link>http://www.neatstudio.com/show-1134-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-03-07 20:36</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1133-1.shtml</guid>
			<title>政协委员建议关闭网吧</title>
			<author>gouki</author>
			<description><![CDATA[<p>最近在网上不停的看到《全国政协委员建议关闭网吧 六成网友表示反对》以及相类似的新闻，甚至有黑客去黑了政协委员所在的公司网站。</p>
<p>颇有一番感慨，网吧这玩意，我从97年就开始知道，那时候的网吧还不能算是真正的网吧。或许就象陶教授说的是&ldquo;游戏吧&rdquo;，但我也在那段时间里熟悉了电脑的操作、使用，包括一些软件的安装、卸载，甚至是一些硬件的安装（偶尔还有尝试帮网吧老板的电脑超频）。或许这在现在看来是不可想像的事情，但在当时，一台MX166的普通电脑就要6、7000的时候，还真的需要网吧来学电脑。</p>
<p>现在的网吧，或者说是游戏吧。为什么就不需要了呢？由政府来开办公益性网吧？安排几个就业人员？我觉得不应该这样。毕竟孩子玩游戏是天性，关键在于家长怎么疏导。在上世纪90年代，没有网络，好多孩子还是沉迷游戏厅【我就是其中之一】。再说下去就又要谈网瘾了。其实想想，现在的孩子也真可怜，小时候的我们爬上爬下，玩来玩去，大人们管的也少。现在的小孩子，能去哪 里玩？到处是高楼大厦，出个门都得担心被车撞。我们小时候胡同里逛逛，附近的小孩也就都认识了。现在呢？铁门都拴起来了，锁也开始防盗了，天空不是蓝的，水也不是绿的，土地也成了水泥的。小孩还能干嘛？在家里，还不让上网，不让看电视。怎么过啊。。。</p>
<p>不过现在很多事情都是头痛医头，脚痛医脚的。实在没法治了，就直接切除了。</p>
<p>本文实在不算是发表意见，仅当争取多一些搜索关键字吧。因为写了一半不知道写啥了，再写下去怕被和谐。</p>
<p>&nbsp;</p>]]></description>
			<link>http://www.neatstudio.com/show-1133-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-03-05 14:55</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1132-1.shtml</guid>
			<title>网站压力测试工具</title>
			<author>gouki</author>
			<description><![CDATA[<p>大多数在win下面进行开发的人员，在做压力测试时，都是采用了apache自带的ab.exe进行测试的。工具虽然小，但也算强大。只是Ab的数据不是 特别准确。<br />
除此之一，还有一些工具可以做压力测试，如loadRunner,webbench等。现在我就做一点小小的介绍。。</p><br /><br /><a href="http://www.neatstudio.com/show-1132-1.shtml" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://www.neatstudio.com/show-1132-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-03-05 09:32</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1131-1.shtml</guid>
			<title>jQuery写的tab切换</title>
			<author>gouki</author>
			<description><![CDATA[<p>花了半小时左右写了这个小东西。没有封装成插件。因为我觉得性能不好。主要就是想试一下$('xxx').data()这个方法。<br />
在页面不大的时候，其实真的可以用这个方法来缓存ajax的数据。</p>
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span>&lt;!DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;</span><span class="string">&quot;-//W3C//DTD&nbsp;HTML&nbsp;4.0&nbsp;Transitional//EN&quot;</span><span>&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&lt;html&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&lt;head&gt;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&lt;title&gt;&nbsp;New&nbsp;Document&nbsp;&lt;/title&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&lt;meta&nbsp;name=<span class="string">&quot;Generator&quot;</span><span>&nbsp;content=</span><span class="string">&quot;EditPlus&quot;</span><span>&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&lt;meta&nbsp;name=<span class="string">&quot;Author&quot;</span><span>&nbsp;content=</span><span class="string">&quot;&quot;</span><span>&gt;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&lt;meta&nbsp;name=<span class="string">&quot;Keywords&quot;</span><span>&nbsp;content=</span><span class="string">&quot;&quot;</span><span>&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&lt;meta&nbsp;name=<span class="string">&quot;Description&quot;</span><span>&nbsp;content=</span><span class="string">&quot;&quot;</span><span>&gt;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&lt;script&nbsp;src=<span class="string">&quot;http://localhost/jquery.js&quot;</span><span>&gt;&lt;/script&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&lt;style&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;.mytab{border:1px&nbsp;solid&nbsp;#888;cursor:pointer;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;.showdiv{border:1px&nbsp;solid&nbsp;#888;cursor:pointer;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&lt;/style&gt;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&lt;/head&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&lt;body&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&nbsp;<span class="keyword">class</span><span>=</span><span class="string">&quot;mytab&quot;</span><span>&gt;Tab1&lt;/span&gt;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&nbsp;<span class="keyword">class</span><span>=</span><span class="string">&quot;mytab&quot;</span><span>&gt;Tab2&lt;/span&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;id=<span class="string">'tab-1'</span><span>&nbsp;style=</span><span class="string">&quot;display:none&quot;</span><span>&nbsp;rel=</span><span class="string">&quot;http://localhost/test.php&quot;</span><span>&nbsp;</span><span class="keyword">class</span><span>=</span><span class="string">&quot;showdiv&quot;</span><span>&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;id=<span class="string">'tab-2'</span><span>&nbsp;style=</span><span class="string">&quot;display:none&quot;</span><span>&nbsp;</span><span class="keyword">class</span><span>=</span><span class="string">&quot;showdiv&quot;</span><span>&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ddssasdflkjasdflkjalsdkfj&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type=<span class="string">'button'</span><span>&nbsp;value=</span><span class="string">&quot;click&quot;</span><span>&nbsp;id=</span><span class="string">'clickid'</span><span>&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;script&nbsp;language=<span class="string">&quot;JavaScript&quot;</span><span>&gt;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(document).ready(<span class="keyword">function</span><span>(){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(<span class="string">'body'</span><span>).append(</span><span class="string">&quot;&lt;div&nbsp;id='testData'&nbsp;/&gt;&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(<span class="string">'.mytab'</span><span>).each(</span><span class="keyword">function</span><span>(i){&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(<span class="keyword">this</span><span>).click(</span><span class="keyword">function</span><span>(){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;j&nbsp;=&nbsp;i+1;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;id&nbsp;=&nbsp;</span><span class="string">'tab-'</span><span>&nbsp;+&nbsp;j;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;src&nbsp;=&nbsp;$(</span><span class="string">'#'</span><span>+id).attr(</span><span class="string">'rel'</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(&nbsp;src&nbsp;){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><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;<span class="keyword">if</span><span>($(</span><span class="string">'testData'</span><span>).data(</span><span class="string">'data_'</span><span>+id)){&nbsp;&nbsp;</span></span></li>
    <li class=""><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;<span class="keyword">return</span><span>&nbsp;;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><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;}<span class="keyword">else</span><span>{&nbsp;&nbsp;</span></span></li>
    <li class=""><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;$.get(&nbsp;src&nbsp;,<span class="keyword">function</span><span>(data){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><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;<span class="keyword">if</span><span>(data){&nbsp;&nbsp;</span></span></li>
    <li class=""><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;$(<span class="string">'testData'</span><span>).data(</span><span class="string">'data_'</span><span>+id,data);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><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;$(<span class="string">'#'</span><span>+id).html(data);&nbsp;&nbsp;</span></span></li>
    <li class=""><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;</span></li>
    <li class="alt"><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;</span></li>
    <li class=""><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;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;len&nbsp;=&nbsp;$(</span><span class="string">'.mytab'</span><span>).length;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">var</span><span>&nbsp;s=1;s&lt;=len&nbsp;;&nbsp;s++){&nbsp;&nbsp;</span></span></li>
    <li class=""><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;s&nbsp;==&nbsp;j&nbsp;?&nbsp;$(<span class="string">'#'</span><span>+id).show()&nbsp;:&nbsp;$(</span><span class="string">'#tab-'</span><span>+s).hide();&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&lt;/body&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;/html&gt;&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>纯实现，无性能无效果。只是可以运行而己<br />
目前我就在tab的切换和Div的显示方面没有想到更好的。。。其实如果显示内容的div不用ID也可以这样写：</p>
<p>&nbsp;</p>
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span>$(</span><span class="string">'.test'</span><span>).hide();&nbsp;&nbsp;</span></span></li>
    <li class=""><span>$(<span class="string">'.test'</span><span>).eq(i).show();&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<p>避免了循环</p>
<p>&nbsp;</p>
<p>随便写写。。。也请随便看看</p>]]></description>
			<link>http://www.neatstudio.com/show-1131-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-2-1.shtml">Javascript</category>
			<pubDate>2010-03-04 09:58</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1130-1.shtml</guid>
			<title>open_basedir 严重影响PHP I/O性能</title>
			<author>gouki</author>
			<description><![CDATA[<p>这是昨天看到的一篇文章，看完后，我针对服务器等做了一下测试，确实有影响。毕竟open_basedir在每一次require,include以及判断文件等的时候，都要先判断是否在可执行目录内。所以。。。性能就会下降（如果是用框架的，可能性能会更差一点），如果是自己的机器，一般也可以通过设定文件目录权限，来防止这种情况发生【linux可以指定用户、用户组。windows可以设定目录的所有者（当时在win下我就最烦这个，因为需要为每个虚拟主机添加一个用户，再指定权限，然后再到目录上设定用户）】</p>
<p>下面就是我看到的文章的内容：</p>
<p>今天在做项目的时候发现 没几行语句 竟然耗费了0.04秒</p>
<p>十分让我吃惊.随后进行跟踪 得知就在I/O读写的时候最费时间 一个is_file竟然费了0.003秒</p>
<p>后来让我百思不得其解 Google也没有任何答案.</p>
<p>然后我又把项目放到另外一个电脑上 发现速度直线上升 从以前的0.04秒变成了0.007秒左右.</p>
<p>我很纳闷 难道我的本本就这么差劲不应该啊</p>
<p>经过我的比较 我发现了 在我机器上的这个项目的虚拟主机中 设置了open_basedir.</p>
<p>大家都知道 这个对于虚拟主机来说是必不可少的..</p>
<p>但是后来我又进行测试一遍 难道真的是这样吗</p>
<p>我的测试代码非常简单：
<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span class="vars">$time</span><span>&nbsp;=&nbsp;microtime(true);&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="func">is_file</span><span>(</span><span class="string">'1.html'</span><span>);&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="func">echo</span><span>&nbsp;microtime(true)&nbsp;-&nbsp;</span><span class="vars">$time</span><span>;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
</ol>
</div>
</p>
<p>我的弄了一个空的1.html文件 这个文件是在当前目录绝对存在的.</p>
<p>我新建了一个虚拟主机 然后设置了一下open_basedir.</p>
<p>得到的结果是0.0018570423126221左右</p>
<p>然后我进apache的配置文件 把open_basedir删除以后</p>
<p>得到的结果是5.0067901611328E-5 这个结果小到PHP中的小数点都不能表示了</p>
<p>(注:以上结果都是多次运行缓存后的结果 因为is_file的结果会被缓存的)</p>
<p>现在我终于明白了 为啥虚拟主机那些探针中 I/O的性能都那么小的原因了..</p>
<p>杯具啊..</p>
<p>&nbsp;</p>
<p>--EOF--</p>
<p>原文来自http://www.skiyo.cn/article/Skiyo-243-1263890301.html，各位也可以测试一下。。</p>]]></description>
			<link>http://www.neatstudio.com/show-1130-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-1-1.shtml">PHP</category>
			<pubDate>2010-03-03 09:19</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1129-1.shtml</guid>
			<title>利用跨站脚本攻击(XSS)摧毁Web</title>
			<author>gouki</author>
			<description><![CDATA[<p>关于xss的攻击与防范，我在08年09年写过一些文章，有自己记录的，也有摘抄的。昨天我又看到一篇讲攻击的文章，记录一下，也可以与以前进行一下对 比。<br />
<br />
本文是写给那些不拿XSS当Web应用严重漏洞的人看的。 实际上，人们可以利用XSS漏洞大捞一笔。本文是在热爱黑客技术  但从不攻击他人的网站上发表的，所以我不会对这里介绍的知识的使用方式负任何责任。</p><br /><br /><a href="http://www.neatstudio.com/show-1129-1.shtml" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://www.neatstudio.com/show-1129-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-1-1.shtml">PHP</category>
			<pubDate>2010-03-03 09:11</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1128-1.shtml</guid>
			<title>gouki</title>
			<author>gouki</author>
			<description><![CDATA[<p>gouki这个词对我的影响其实是很大的。<br />
从第一次玩街机游戏《street fighter》开始，就大致了解了SF的人物，也在一些【格斗天书】中发现了gouki(<a target="_blank" href="http://baike.baidu.com/view/633185.htm">查看百度百科</a>)这个名字。在那个没有拳皇的时代，gouki就是巅峰的代名词，于是乎，那时候就大言不惭的称呼自己为gouki了。</p>
<p>细细算来，以gouki为笔名、网名、其他的呢称等至今也有了15年左右了。其实已经很多年没有玩SF了，只是突然想怀念一下。再加上博客的作者又是以gouki为名，所以查看了一下搜索引擎，看看如果搜索gouki，能否搜到本站。</p>
<p>果然。。。。</p>
<p><a href="http://www.neatstudio.com/attachment.php?id=495" target="_blank"><img src="http://www.neatstudio.com/attachments/date_201003/thumb_d7d6970ff264743e7e4da9c335854bfe.jpg" border="0" alt="大小: 59.44 K&#13;尺寸: 500 x 303&#13;浏览: 33 次&#13;点击打开新窗口浏览全图" width="500" height="303" /></a></p>
<p>这样的数字还是很让我开心的啦。HOHO</p>
<p>&nbsp;</p>]]></description>
			<link>http://www.neatstudio.com/show-1128-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-03-02 17:06</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1127-1.shtml</guid>
			<title>软件介绍：FavBackup</title>
			<author>gouki</author>
			<description><![CDATA[<p>从软件的介绍中，我很为之心动，要知道每次电脑重装，除了软件外，浏览器才是我们用的最多的程序之一。目前对我来说常用的是Firefox,chrome，但IE我也在用，因为很多网银只支持这玩意。。。</p>
<p>因此重装后就不得不再次进行设置，比如firefox的插件，IE的收藏夹等等。现在firefox和chrome都有了在线收藏夹，而IE下面，360浏览器、maxthon、世界之窗、搜狗等也开始内置类似功能，但IE却是没有这样的设置，因此收藏夹却是需要自己备份（所幸只是某个目录直接拷出来就行）</p>
<p>所以，当看到软件介绍时，就忍不住想推荐给大家了。【申明一下，我没有用过，只是感觉不错】</p>
<p>以下介绍来自汉化新世纪，点击浏览 <a href="http://www.hanzify.org/software/12757.html">FavBackup V2.0.0  绿色版</a>：</p>
<p>&nbsp;&nbsp;&nbsp; FavBackup 是一款适用于 Windows 7/Vista/XP/2000  操作系统的，简单易用的网页浏览器设置与其他数据备份和恢复的免费软件，你甚至不必安装即可使用。<br />
&nbsp;&nbsp;&nbsp; FavBackup 支持 IExplrer、Firefox、Opera、Safari 与 Google Chrome  等各版本的网页浏览器，可以备份包含书签、Cookies、下载纪录、浏览纪录、浏览器设置、储存在浏览器中的密码、搜寻引擎、会话、工具栏设置及其他使 用者个性化设置。透过非常简单的操作介面执行备份、还原等操作，让我们可以快速将原来电脑系统中的浏览器设置快速的搬迁到新的电脑或新的系统中，马上恢復 工作。</p>
<p><a href="http://www.neatstudio.com/attachment.php?id=494" target="_blank"><img src="http://www.neatstudio.com/attachments/date_201003/thumb_2456affd159baf63b62f3c7eee4d7b7b.jpg" border="0" alt="大小: 84.88 K&#13;尺寸: 336 x 376&#13;浏览: 37 次&#13;点击打开新窗口浏览全图" width="336" height="376" /></a><br />
可支援的浏览器：</p>
<p>Internet Explorer 8 <br />
Internet Explorer 7 <br />
Internet Explorer 6 <br />
Firefox 3<br />
Firefox 2 <br />
Google Chrome 3 <br />
Google Chrome 2 <br />
Google Chrome 1 <br />
Opera 9 <br />
Safari 4 <br />
Safari 3</p>
<p>注意！由於浏览器版本不断推陈出新，建议及时下载、更新最新版 FavBackup 软件。<br />
中文版的最新资讯与更新，请关注本人博客（<a href="http://www.localier.com/">www.localier.com</a>) 中的汉化更新。</p>
<p>--EOF--</p>
<p>点击浏览 <a href="http://www.hanzify.org/software/12757.html">FavBackup  V2.0.0  绿色版</a></p>]]></description>
			<link>http://www.neatstudio.com/show-1127-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-3-1.shtml">Software</category>
			<pubDate>2010-03-02 15:46</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1126-1.shtml</guid>
			<title>《Don’t make me think》笔记</title>
			<author>gouki</author>
			<description><![CDATA[<p>邓榕的笔记，值得一观。</p>
<p>突然发现自己好久没有定下心来看书了。不管是技术类书籍还是文学类，又或者管理类的书籍，真的好久没有定下心来看书了。以前还能做到每天晚上看半小时到一小时呢，现在。。。几个月没翻书了（电子书不算），更别挺看书笔记了。</p>
<p>原文地址为<a title="Permanent Link to 《Don&rsquo;t make me think》笔记" rel="bookmark" href="http://www.raydeng.com/%e3%80%8adont-make-me-think%e3%80%8b%e7%ac%94%e8%ae%b0.html">《Don&rsquo;t  make me think》笔记</a>，内容如下</p>
<p>很多年前就看过《Don&rsquo;t make me think》的第一版，第二版在书架上很久了，这两天才翻看。温故知新，笔记如下：</p>
<ol>
    <li>某个东西越是需要投入大量时间（或者看起来会这样），它将来用到的可能性越小。</li>
    <li>可用性第一定律：别让我思考。</li>
    <li>我们使用web的第一个事实：我们不是阅读，而是扫描，一般会关注&ldquo;与手头任务有关的&rdquo;或者&ldquo;当前或接下来的个人兴趣&rdquo;或者&ldquo;长久的兴趣，如免 费、美女等&rdquo;这些文字和短语。（老邓注：所以，别老想着在首页上放一大段自吹自擂的话了，那是自恋）</li>
    <li>我们使用web的第二个事实：我们不作最佳选择，而是满意即可。</li>
    <li>我们使用web的第三个事实：我们不是追根究底，而是勉强应付，很少有人花时间读说明书，大家总是贸然前进勉强应付，一旦发现某个方法能够用，即 使很难用，也不愿意再主动去找另一种更好的方法，这不是智力问题，而是并不认为这个网站对自己有那么的重要。（老邓注：所以，别老想着用Flash去制作 一个&ldquo;预订流程说明&rdquo;了，那是单恋）。</li>
    <li>让页面不易理解的一个最大原因是视觉噪声，设计的时候可以先假定所有内容都是噪声，除非得到证明它不是。</li>
    <li>大多数页面上的大部分文字都不过是在占地方，因为没有人打算阅读它们。但它们确实在那儿，所以会暗示你可能需要阅读它们，这样常常使得页面看起来 难度更高了。去掉没有人看的文字能降低页面噪声，从而让有用的内容更突出，人们更加愿意阅读。（老邓注：这就是设计中常说的&ldquo;少即是多&rdquo;，加文字的时候需 要反问&ldquo;是想给客户看的还是只是为了立此为证以便后面和客户理论？&rdquo;）P34页有一个非常好的精简案例，精简幅度60%。</li>
    <li>如果你想为我提供选项来调整搜索的范围，在它有用的时候再提供给我&mdash;&mdash;当我到达搜索结果页面，发现搜索全部内容得到的结果太多的时候，这时就需要 缩小搜索范围。</li>
    <li>共有区域的悲剧（The Tragedy of the  Commons）。任何共享的资源（共有区域）都会因为过度使用而遭到破坏。（老邓注：这就是首页上为什么广告越来越多、内容越来越乱的原因）</li>
    <li>从焦点小组了解到的是你在设计网站之前就应该了解的，别把焦点小组和可用性测试弄混了。详细的区别见P100页。</li>
    <li>每轮可用性测试只测试三名用户，以保证尽快进行下一轮，多进行几轮。测试对象是谁并不重要，对于大部分网站而言，你只需要懂得上网基本知识的用户 就可以了。</li>
    <li>推荐屏幕录制软件Camtasia，它是TechSmith公司的产品，和SnagIt出于同一家公司。只需要300美元。再加1000美元，可 以买到该公司的另一个产品Morae，它允许观察者在另一台电脑上看到真实测试情况。</li>
    <li>测试中有两部分内容：理解测试，看看用户是否理解这个网站；任务测试，看看用户是怎么完成一些任务的。</li>
    <li>P109-P113页是很值得一读的用户测试对话范例。</li>
    <li>P115页，关于Kayak（皮划艇）问题。Kayak问题总是存在，因为有些含混之处总是没有简单的解决办法，比如&ldquo;港澳台酒店&rdquo;应该放在&ldquo;国 内酒店&rdquo;里还是&ldquo;国际酒店&rdquo;里，可能我们会觉得放到两个分类里。笔者的建议是一个项目最好只在一个地方存在，其他位置用链接&ldquo;参见&hellip;&hellip;&rdquo;来标出。</li>
    <li>要抵制添加的冲动。当在测试时清楚地看到人们没有理解某些内容时，大部分人的第一反应是增加一些内容，例如一些注释或一些指导说明。而正确的解决 方案往往是去除某个（一些）让人混淆的内容，而不是增加另一些干扰。</li>
    <li>隐藏客户服务电话、运费、价格信息，会降低客户好感。隐藏电话的初衷是希望用户不打电话，通常这样做会降低用户的好感程度，而且他们找到号码并拨 打时会更恼火。另一方面，如果电话很容易看到，他们知道在需要的时候可以拨打，会让人们在网站上停留的时间更长，从而增加了他们自己解决问题的可能性。</li>
    <li>人们喜欢对网站的外观发表意见，但是几乎没有人会因为觉得它不够好看而离开。（老邓注：不过，根据《情感化设计》，更赏心悦目的网站，能增加用户 忍受度，使用户更加愿意探索）</li>
    <li>向用户询问不必要的信息可能产生三个后果：您得到的表单更少；您常常无法得到真实数据；您的网站形象下降。</li>
</ol>
<p>--EOF--<br />
因为这些东西涉及到用户体验，所以，我就复制了下来，偶尔看看也行。毕竟看不了书，看笔记也好的。笔记毕竟是读书时记录下来的要点。</p>
<p>&nbsp;</p>]]></description>
			<link>http://www.neatstudio.com/show-1126-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-03-02 10:25</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1125-1.shtml</guid>
			<title>不会编程的程序员</title>
			<author>gouki</author>
			<description><![CDATA[<p>【内容全是转载，觉得挺有意思。。。】<br />
我想这让人难以置信，但是通过Twitter和电子邮件渠道蜂拥而来的报道表 明：<strong>许多参加程序员面试的求职者根本就不会编程，</strong>看看迈克&middot;林最近的邮件就知道了：</p>
<p>《<a href="http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html">为啥程序员 都不会编程呢？</a>》 这篇文章让我改变了面试的方式。以前面试我开始都以营造融洽气氛为主。正如你提到的，事实证明这种方式太耗费时间了，大多数应聘者根本就 不会技术。因此我以技术问题作为开头来面试应聘者，刚开始的时候，问题的难度是从容易逐渐变难。后来我发现反过来的话，甄别应聘者的速度会快些，即难的问 题先问（前提是难的问题必须属于&ldquo;工作必备技能&rdquo;一类的问题）。多数面试仍然会花上20分钟作用，因为回答和评估仍然需要花上一些时间。但是这对于之前&rdquo; 先营造融洽气氛&ldquo;的面试方式来说一个相当大的改进，而且还可以通过电话方式来完成。<br />
<br />
在读了你的文章之 后，我开始通过电话，网络会议方式进行编程面试，甄别不会编程的应聘者（也就是大多数人）所需时间降到了15分钟左右。<br />
<br />
我写那篇文章的时候时间还是2007年，三年后当我再次听人说应聘编程工作的绝大多数所谓的程序员竟 然不能写一小段程序时，我震惊了，但是也并没有完全出乎我的意料。需要清楚的是，难是一个相对的词汇&mdash;&mdash;我们不是指那种复杂的有如Google计算机专业 研究生难度的面试题。我们给应聘者做的都是一些<a href="http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html">极其简单的题目</a>，但是他们不会。<strong>这就相当于你想雇一位卡车司机，但是却发现90% 的应聘者竟然找不到油门和变速挡</strong>。<br />
<br />
我也同意，这有些疯狂，但是这样的事情每天都在发生，而且这是我们这个行业在招人时常见的问题。<br />
<br />
你需要通过这种简单的技术面试题来筛选掉这些伪程序员的大军。 我在前面提到过的，通过电话筛选是个明智的选择。不过通过网络方式来筛选效果要更好，并且更自然些。</p>
<p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt">我还是非常不习惯通过远程共享对方电脑桌面的方式与应聘者进行网络面试。我在网上搜索 了一下类似&ldquo;纸笔&rdquo;方式的编程面试的工具，但是没有收获。所以我做了一件所有有自尊心的程序员都会做的事情。我自己写了<a href="http://i.seemikecode.com/">一个</a>。伙计，花在这个程序上面 的精力很值！对每个应聘者的初期技术筛选所花的时间，我安排了15分钟。但是遗憾的时，我一般只需5～10分钟就能结束。<strong>如果他们能写10行简单的 代码，我就会给他们安排一次真正的面试</strong>。但是这种事情并不经常有，不过也好，至少我不会再浪费大量的时间了。</li>
</ol>
</div>
迈克加了一个声明，称他这个自制的编程测验工具并不是想秀一下他的编程能力如何。他需要一个这样的工具，所以他就写了一个&mdash;&mdash;并且非常贴心的与大家分享了。 或许除了这个还有其他的工具；你们大多数人都使用什么在线工具来筛选程序员？<br />
<br />
三年后，我仍然想知道：<strong>为什么一点都不会写程序的人都会冒出他们可以胜任程序员工作的念头来呢</strong>？ 的确，他们中有一些人会如愿以偿。但这也意味这个程序员这个行业的面试标准非常不合适。这是一种耻辱。它让每个在职的程序员蒙羞<br />
<br />
水平差的程序还至少还可以接受教育来提高，而伪程序员不仅无药可就，而且还会让他周围 的同事自掉身价。这类人需要铲除，要做到这点就需要我们从最简单的技术编程测试做起，而这类测试也应该成为每程序员面试的一个组成部分。<br />
<br />
<strong>本文来自</strong><a href="http://www.dongxi.net/"><strong>东西  dongxi.net </strong></a><br />
<strong>来源：</strong> codinghorror | <strong>作者：</strong>Jeff Atwood | <strong>译者：</strong><a href="http://www.dongxi.net/">neodreamer</a><br />
<strong>声明：</strong>译者<a href="http://www.dongxi.net/">neodreamer</a>拥有本文版权并授权东西网发布，非商业转载请参考东西网版权声明中的非商业用途转载版权说明；商业转载请联系东西网</p>]]></description>
			<link>http://www.neatstudio.com/show-1125-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-03-01 21:13</pubDate>
		</item>
	</channel>
</rss>
