<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Leakon</title>
	<atom:link href="http://www.leakon.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.leakon.com</link>
	<description>勤奋 - 创新 - 矢志不渝 - 锲而不舍</description>
	<lastBuildDate>Wed, 01 Feb 2012 03:20:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PUTTY WINSCP 中文版有后门程序</title>
		<link>http://www.leakon.com/archives/713?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=putty-winscp-%25e7%259a%2584%25e4%25b8%25ad%25e6%2596%2587%25e7%2589%2588%25e6%259c%2589%25e5%2590%258e%25e9%2597%25a8%25e7%25a8%258b%25e5%25ba%258f</link>
		<comments>http://www.leakon.com/archives/713#comments</comments>
		<pubDate>Wed, 01 Feb 2012 03:20:27 +0000</pubDate>
		<dc:creator>leakon</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.leakon.com/?p=713</guid>
		<description><![CDATA[请立即停止使用 PUTTY，WINSCP，SSH SECURE SHELL 的中文汉化版，这些“汉化”的软件会在你登陆服务器的时候将密码发送到某个指定的网站。
我强烈建议：凡是安全相关的软件，都不要使用国内的软件，或者汉化的。简单的英文界面涉及到的英文单词没几个，花点时间查查就都明白了。
我的判断，使用这些工具的中文版的工程师，多半是主动性很差的。他们害怕遇到陌生词汇，不想花时间查词霸。同样的，在技术上遇到难题，多半也是选择逃避，不会硬着头皮去钻研和解决。
&#160;
]]></description>
			<content:encoded><![CDATA[<p>请立即停止使用 PUTTY，WINSCP，SSH SECURE SHELL 的中文汉化版，这些“汉化”的软件会在你登陆服务器的时候将密码发送到某个指定的网站。</p>
<p>我强烈建议：凡是安全相关的软件，都不要使用国内的软件，或者汉化的。简单的英文界面涉及到的英文单词没几个，花点时间查查就都明白了。</p>
<p>我的判断，使用这些工具的中文版的工程师，多半是主动性很差的。他们害怕遇到陌生词汇，不想花时间查词霸。同样的，在技术上遇到难题，多半也是选择逃避，不会硬着头皮去钻研和解决。</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leakon.com/archives/713/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Godaddy 2012 30% 优惠码 promo code</title>
		<link>http://www.leakon.com/archives/707?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=godaddy-2012-30-%25e4%25bc%2598%25e6%2583%25a0%25e7%25a0%2581-promo-code</link>
		<comments>http://www.leakon.com/archives/707#comments</comments>
		<pubDate>Mon, 30 Jan 2012 05:33:23 +0000</pubDate>
		<dc:creator>leakon</dc:creator>
				<category><![CDATA[默认分类]]></category>

		<guid isPermaLink="false">http://www.leakon.com/?p=707</guid>
		<description><![CDATA[Godaddy 30% OFF（7折）优惠。
用于购买或续费，包括域名、主机等，无最低消费要求，有效期至 2012-02-05。
代码 gdx143h
今天帮我省了 14 美元！

]]></description>
			<content:encoded><![CDATA[<p>Godaddy 30% OFF（7折）优惠。</p>
<p>用于购买或续费，包括域名、主机等，无最低消费要求，有效期至 2012-02-05。</p>
<p>代码 gdx143h</p>
<p>今天帮我省了 14 美元！</p>
<p><a href="http://www.leakon.com/wp-content/uploads/2012/01/godaddy.png"><img class="alignnone size-full wp-image-709" style="border-image: initial; border-width: 1px; border-color: black; border-style: solid;" title="Godaddy" src="http://www.leakon.com/wp-content/uploads/2012/01/godaddy.png" alt="" width="496" height="608" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leakon.com/archives/707/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>grep 归档日志的好办法</title>
		<link>http://www.leakon.com/archives/704?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=grep-%25e5%25bd%2592%25e6%25a1%25a3%25e6%2597%25a5%25e5%25bf%2597%25e7%259a%2584%25e5%25a5%25bd%25e5%258a%259e%25e6%25b3%2595</link>
		<comments>http://www.leakon.com/archives/704#comments</comments>
		<pubDate>Sun, 29 Jan 2012 10:56:21 +0000</pubDate>
		<dc:creator>leakon</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[grep]]></category>

		<guid isPermaLink="false">http://www.leakon.com/?p=704</guid>
		<description><![CDATA[归档的日志文件，想要从中找出匹配的数据，我最近才知道有更好的办法。
先说说我以前的笨方法：
* 先解压 bz2 文件到纯文本
* 再 grep 这个文本
* 完成后再删除这个纯文本
整个过程很麻烦。
&#160;
有位高手告诉我更简单的办法：
bzcat debug_log.bz2 &#124; grep &#8216;pattern&#8217; &#62; result.txt
这个是一边解压一边 grep，不用创建新文件，不太占 IO。
试了下，效果还不错，可以同时处理好几个，系统负载也不高。
]]></description>
			<content:encoded><![CDATA[<p>归档的日志文件，想要从中找出匹配的数据，我最近才知道有更好的办法。</p>
<p>先说说我以前的笨方法：</p>
<p>* 先解压 bz2 文件到纯文本</p>
<p>* 再 grep 这个文本</p>
<p>* 完成后再删除这个纯文本</p>
<p>整个过程很麻烦。</p>
<p>&nbsp;</p>
<p>有位高手告诉我更简单的办法：</p>
<p>bzcat debug_log.bz2 | grep &#8216;pattern&#8217; &gt; result.txt</p>
<p>这个是一边解压一边 grep，不用创建新文件，不太占 IO。</p>
<p>试了下，效果还不错，可以同时处理好几个，系统负载也不高。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leakon.com/archives/704/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 自动转义 画蛇添足</title>
		<link>http://www.leakon.com/archives/700?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress-%25e8%2587%25aa%25e5%258a%25a8%25e8%25bd%25ac%25e4%25b9%2589-%25e7%2594%25bb%25e8%259b%2587%25e6%25b7%25bb%25e8%25b6%25b3</link>
		<comments>http://www.leakon.com/archives/700#comments</comments>
		<pubDate>Sat, 28 Jan 2012 01:12:08 +0000</pubDate>
		<dc:creator>leakon</dc:creator>
				<category><![CDATA[非技术]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.leakon.com/?p=700</guid>
		<description><![CDATA[WordPress 在显示文章时，会把英文半角的双引号、双减号自动转换成全角的双引号和单个破折号。
这个功能真是画蛇添足。
找到了这段逻辑，在下面这个文件中。
wp-includes/formatting.php
涉及到的变量有 $static_characters、$static_replacements、$dynamic_characters 还有 $dynamic_replacements。
把这些替换成空数组应该就能解决问题，等有空多测试下再搞吧。
Mark 一下。
]]></description>
			<content:encoded><![CDATA[<p>WordPress 在显示文章时，会把英文半角的双引号、双减号自动转换成全角的双引号和单个破折号。</p>
<p>这个功能真是画蛇添足。</p>
<p>找到了这段逻辑，在下面这个文件中。</p>
<p>wp-includes/formatting.php</p>
<p>涉及到的变量有 $static_characters、$static_replacements、$dynamic_characters 还有 $dynamic_replacements。</p>
<p>把这些替换成空数组应该就能解决问题，等有空多测试下再搞吧。</p>
<p>Mark 一下。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leakon.com/archives/700/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用 rsync 备份多台服务器</title>
		<link>http://www.leakon.com/archives/697?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e4%25bd%25bf%25e7%2594%25a8-rsync-%25e5%25a4%2587%25e4%25bb%25bd%25e5%25a4%259a%25e5%258f%25b0%25e6%259c%258d%25e5%258a%25a1%25e5%2599%25a8</link>
		<comments>http://www.leakon.com/archives/697#comments</comments>
		<pubDate>Fri, 27 Jan 2012 15:56:35 +0000</pubDate>
		<dc:creator>leakon</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[rsync]]></category>

		<guid isPermaLink="false">http://www.leakon.com/?p=697</guid>
		<description><![CDATA[今天对服务器备份的脚本进行了重构，把配置参数独立成文件，使用 PHP 代替不熟悉的 shell，理顺了思路，分享一下。
【环境】
一共3台服务器，server-1 和 server-2 是线上生产环境，backup-server 是专门用于备份的服务器。
【目的】
定期把 server-1 和 server-2 的 user 目录下的所有文件同步到 backup-server 的指定目录下。
【前提】
backup-server 上有一个用户 backup，他用 ssh-keygen 生成公钥，传到 server-1 和 server-2，这样 backup 用户登录这 2  [...]]]></description>
			<content:encoded><![CDATA[<p>今天对服务器备份的脚本进行了重构，把配置参数独立成文件，使用 PHP 代替不熟悉的 shell，理顺了思路，分享一下。</p>
<p>【环境】</p>
<p>一共3台服务器，server-1 和 server-2 是线上生产环境，backup-server 是专门用于备份的服务器。</p>
<p>【目的】</p>
<p>定期把 server-1 和 server-2 的 user 目录下的所有文件同步到 backup-server 的指定目录下。</p>
<p>【前提】</p>
<p>backup-server 上有一个用户 backup，他用 ssh-keygen 生成公钥，传到 server-1 和 server-2，这样 backup 用户登录这 2 台线上服务器时不再需要密码。</p>
<p>[backup@backup-server rsync]$ ssh-keygen -t rsa -b 1024</p>
<p>在 ~/.ssh/ 下生成 id_rsa 和 id_rsa.pub，分别是私钥和公钥。</p>
<p>把 id_rsa 重命名成 identity，chmod 600。</p>
<p>把 id_rsa.pub 复制到 server-1 的 /home/user/.ssh/ 目录下，把内容追加到 authorized_keys 文件中，注意此文件也要 chmod 600。</p>
<p>server-2 也如此操作。</p>
<p>之后，backup 用户可以随意 ssh user@server-1 和 ssh user@server-2，不会再问密码。</p>
<p>【功能列表】<br />
* 根据配置文件的 serverName，生成 shell 命令<br />
* 判断是否为唯一 rsync 进程，如果有正在执行的进程，则不执行任何操作<br />
* 确认没有重复进程之后，执行 rsync 命令同步文件，并输出进度信息到 logs 目录<br />
* php 的程序只输出 shell 命令，确认无误后用管道输出给 bash 来运行</p>
<p>【使用方法】<br />
[backup@backup-server rsync]$ /usr/bin/php /home/backup/script/rsync/rsync_web.php server-1 | sh</p>
<p>【详情】</p>
<p>根据 server-1 这个关键字，找到对应的配置信息。</p>
<p>根据一些列规则，生成一串管道命令，输出如下所示：</p>
<p>rsync_process_num=$(ps ax | grep &#8216;rsync&#8217; | grep -v &#8216;grep&#8217; | grep &#8216;server-1&#8242; | grep &#8216;bwlimit&#8217; | wc -l) &amp;&amp; test $rsync_process_num -lt 1 &amp;&amp; /usr/bin/nohup /usr/bin/rsync &#8211;links &#8211;delete &#8211;recursive &#8211;itemize-changes &#8211;progress &#8211;exclude-from=/home/backup/script/rsync/conf/exclude.server-1.conf &#8211;bwlimit=110 user@server-1:/home/user/* /home/backup/server-1/home/user/ &gt;&gt; /home/backup/script/rsync/logs/rsync_web.server-1.log 2&gt;&amp;1 &amp;</p>
<p>对比“功能列表”，可以看明白这一串命令都在干嘛。</p>
<p>【SVN】</p>
<p>具体的代码，我提交到了 googlecode，欢迎指正：http://leakon.googlecode.com/svn/trunk/server/script/rsync/</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leakon.com/archives/697/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>换个模板 重新开张</title>
		<link>http://www.leakon.com/archives/695?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e6%258d%25a2%25e4%25b8%25aa%25e6%25a8%25a1%25e6%259d%25bf-%25e9%2587%258d%25e6%2596%25b0%25e5%25bc%2580%25e5%25bc%25a0</link>
		<comments>http://www.leakon.com/archives/695#comments</comments>
		<pubDate>Thu, 26 Jan 2012 15:10:44 +0000</pubDate>
		<dc:creator>leakon</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[2012]]></category>

		<guid isPermaLink="false">http://www.leakon.com/?p=695</guid>
		<description><![CDATA[农历新年马上就要过完了，在这放假的几天里，为将来的一年做了各种计划。
计划太多，时间太少。
搞的我无从下手，不知道从哪一步开始。走哪条路，都发现这条路好远好远，似乎永远也走不到终点。
以前的几年也是这样浑浑噩噩虚度过来，其实，只要每天坚持走，用不了多久，回头看看，就会发现原来已经走了很远。
说到时间太少这个问题，我觉得不如说是给自己找借口。
不能回家看爸妈，不能陪爸妈说话，不能给爸妈做饭，不能带爸妈出去逛街。
所有一切的接口都是忙，没时间。
其实，只要你想去做，就一定有时间。
就好像，混的很落魄的小学同学约你吃饭，你会以工作忙要加班为接口推掉。
要是你的 Boss 或有个 VC  [...]]]></description>
			<content:encoded><![CDATA[<p>农历新年马上就要过完了，在这放假的几天里，为将来的一年做了各种计划。</p>
<p>计划太多，时间太少。</p>
<p>搞的我无从下手，不知道从哪一步开始。走哪条路，都发现这条路好远好远，似乎永远也走不到终点。</p>
<p>以前的几年也是这样浑浑噩噩虚度过来，其实，只要每天坚持走，用不了多久，回头看看，就会发现原来已经走了很远。</p>
<p>说到时间太少这个问题，我觉得不如说是给自己找借口。</p>
<p>不能回家看爸妈，不能陪爸妈说话，不能给爸妈做饭，不能带爸妈出去逛街。</p>
<p>所有一切的接口都是忙，没时间。</p>
<p>其实，只要你想去做，就一定有时间。</p>
<p>就好像，混的很落魄的小学同学约你吃饭，你会以工作忙要加班为接口推掉。</p>
<p>要是你的 Boss 或有个 VC 约你吃饭，你可能会为此放弃春节回家的机会。</p>
<p>另一方面，之所以忙，是因为你不会管理时间，不会高效办事。</p>
<p>反正吧，在我看来，时间是自己管理的，你想做什么，就一定有时间。</p>
<p>计划已经列好，该做什么，想做什么，都很清楚。</p>
<p>接下来这一年，管理好自己的时间，不要管终点有多远，利用好每一秒，一步一步往前走。</p>
<p>今天，把博客又恢复了出来，我不想给博客备案了，实在搞不定。</p>
<p>重新开张！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leakon.com/archives/695/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>坏脾气的小肥</title>
		<link>http://www.leakon.com/archives/687?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e5%259d%258f%25e8%2584%25be%25e6%25b0%2594%25e7%259a%2584%25e5%25b0%258f%25e8%2582%25a5</link>
		<comments>http://www.leakon.com/archives/687#comments</comments>
		<pubDate>Mon, 24 Oct 2011 06:29:53 +0000</pubDate>
		<dc:creator>leakon</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[产品]]></category>

		<guid isPermaLink="false">http://www.leakon.com/?p=687</guid>
		<description><![CDATA[有段时间我很迷FourSquare，它被墙之后，渐渐又冷了。再后来玩开开，因为陪我一起玩的人不多，渐渐又冷了。最近两年有几位业内人士（包括我眼中的业界精英）不解问我：签到有个屁的意思啊？解释许久，他们仍难以索解。从数据上来看，纯粹的签到在国内确实是个窄众应用，但并不影响它在业内的名声。几个月前，一件小事令我印象深刻。有位同行来咨询我，问我对一款主打“图文并茂”的美食分享产品的看法。我看了看说，用户拍摄相片质量这么差，一看就没胃口吖，此产品前景堪忧。这位同行立刻反驳说，不对，我这个吃货一看图片就食指大动，反而是大众点评那种纯文本的用户评价索然无味。由于他是以用户身份，而非业内人士的身份提出意见， [...]]]></description>
			<content:encoded><![CDATA[<p>有段时间我很迷FourSquare，它被墙之后，渐渐又冷了。再后来玩开开，因为陪我一起玩的人不多，渐渐又冷了。最近两年有几位业内人士（包括我眼中的业界精英）不解问我：签到有个屁的意思啊？解释许久，他们仍难以索解。从数据上来看，纯粹的签到在国内确实是个窄众应用，但并不影响它在业内的名声。<br style="line-height: 25px;" /><br style="line-height: 25px;" />几个月前，一件小事令我印象深刻。有位同行来咨询我，问我对一款主打“图文并茂”的美食分享产品的看法。我看了看说，用户拍摄相片质量这么差，一看就没胃口吖，此产品前景堪忧。这位同行立刻反驳说，不对，我这个吃货一看图片就食指大动，反而是大众点评那种纯文本的用户评价索然无味。<br style="line-height: 25px;" /><br style="line-height: 25px;" />由于他是以用户身份，而非业内人士的身份提出意见，我当时就羞愧了。老纸又主观了。同样一张美食相片，我看了大倒胃口，他看了口水横流，个体差异极其鲜明。既然鸡同鸭讲，我又有什么资格张口即喷呢？<br style="line-height: 25px;" /><br style="line-height: 25px;" />另一个小小例子关于“讲笑话”这款应用，主打“语音笑话UGC”。我一开始极不看好，觉得需求弱，产品个性也不够强，尤其无法直观地辨识内容质量，大大降低了信息甄别获取的效率，恐不长久。结果又过了两三个月一看，嘿，它不仅活着，还涌现出来一大批讲笑话专业户，平均每人讲十几条笑话，质量也不低。虽然远远谈不上大红大紫，至少人家顽强地生长着，有了一定数量的优质内容沉淀。<br style="line-height: 25px;" /><br style="line-height: 25px;" />这时我再去试图分析它的用户心态，很多人并没有原创笑话的本事，但配音效果佳，绘声绘色地讲出来，相当于二次创作，颇有成就感。这批在我预料之外的骨干用户，支撑起了“讲笑话”的血脉。<br style="line-height: 25px;" /><br style="line-height: 25px;" />类似的情景还有很多很多。以前我经常说，老纸看好的项目未必成功，不看好的则一定失败。现在已经不敢再开这种黄腔。只能说，我不看好的项目很难成长为日访问百万级的大产品，不过能捕捉到目标受众的话，生存发展可能也不是问题。所以别人来咨询新产品，我会指出一些显而易见的硬伤，但不再轻言成败，因为他面向的用户群，很可能是我完全陌生，毫无了解的。<br style="line-height: 25px;" /><br style="line-height: 25px;" />互联网的市场很大很大，已有十几亿的人口，其中显而易见的，共性强烈的的用户需求基本已被填满。这时再去追求百万访问级的大产品，难，真难，劝君莫作痴汉。还有什么共性强烈的需求是你能看见，别人看不见，你能满足，别人搞不定的呢？<br style="line-height: 25px;" /><br style="line-height: 25px;" />在互联网蓬勃发展了15年之后，新产品主打的必然是个性，包括产品的个性，需求的个性，用户群的个性。在不断细分的领域内找到并谄媚你的用户。而四亿人口的国内市场，能容纳千百种奇奇怪怪的个性，异想天开的心态，将人类的多样性发挥得淋漓尽致。没有一个human敢说，自己一下子就能看懂市场上1/10的用户需求，恰恰是这参差多态，给予了新产品生存发展的机会。<br style="line-height: 25px;" /><br style="line-height: 25px;" />近来，我越来越认同欧美投资领域流行的一个观点，那些老奸巨猾的投资商跟创业者说：“想清楚了就去做，别问东问西。”试想，当年克罗利如果“虚心听取意见”来判断是否创立FourSquare，哪里还有如今的签到市场。即便在签到发展近3年之后，用户群也不足大盘的10%，这意味着你现在去跟10个人谈地理位置签到，9个人会无情地笑话你，奚落你，打击你。然而FourSquare注册用户今年6月业已突破了1000万大关。<br style="line-height: 25px;" /><br style="line-height: 25px;" />这个案例，也就是“少问，多做”这句创业箴言的本意。在数亿用户的大市场里面，即便是非常窄的应用也有百万级的用户基础。创业者作前期调研的时候，除非确保访谈的一定是目标用户，否则你鸡同鸭讲，所得到的回答便全是误导。即便访谈目标用户吧，如果没有真实的应用情景来启发，全凭脑补，他的回答也很难靠谱。不如快速拿出原型推向市场，让数据告诉你答案。<br style="line-height: 25px;" /><br style="line-height: 25px;" />因此，主观与敏捷已经成为了当下新产品发布的不二法门。不过这条金科玉律完全不适合大中型公司，很容易被滥用，上一大堆烂到无法言说的臭作——反正他照领工资。只有自负其责，个人荣辱完全与项目绑定的创业小队，才有资格讲“主观”，讲“敏捷”。<br style="line-height: 25px;" /><br style="line-height: 25px;" />至于一开始从窄众做起的个性化应用，是否有机会慢慢生长成大树，这很难讲。我们不能将“做大”作为赤裸裸的产品追求——就像同样是个性化应用起家，既有Twitter参天大树，也有消沉的Delicious昔日明星。未必两家产品创始人谁比谁更牛逼，只是Twitter恰恰具备了更强的感染力和流行性罢了。但创始人如果不能追随自己的产品灵感，非要计较天花板的高低，很可能一事无成，蹉跎终老。<br style="line-height: 25px;" /><br style="line-height: 25px;" />说白了，这就是命。你的生活方式与知识结构决定你的灵感，灵感衍生出来的主题与个性又决定了产品的市场前景。创业最顺的路径不是嗅探市场流行风向，而是听从自己的心。当成百上千个项目组都具备强悍的研发能力，足以左右成败的，既不是你的点子多，技术强，资源丰厚；也不是你跑得快，肯加班，笨鸟先飞；比别人更了解某一个“窄众市场需求”（大路货也轮不到你来发现），这才是最关键的竞争因素。<br style="line-height: 25px;" /><br style="line-height: 25px;" />“对窄需求的把握，产品灵感，研发能力”，三者所产生的化学反应决定了新产品的走势。行业里很多人只重视后两条，但我觉得，第一条才是新产品新项目的基石。这更多取决于“你是个什么样的人”——唯有从你的兴趣爱好、人生经历、生活习惯中，才能真正把握好需求。所谓仁者见仁，智者见智，淫者见淫。<br style="line-height: 25px;" /><br style="line-height: 25px;" />叹口气，这就是命。</p>
<p>来源：<a href="http://firecacada.blog.163.com/blog/static/7074376201192492255308/">http://firecacada.blog.163.com/blog/static/7074376201192492255308/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leakon.com/archives/687/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tunnelier Client connection closed before completion of protocol</title>
		<link>http://www.leakon.com/archives/686?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tunnelier-client-connection-closed-before-completion-of-protocol</link>
		<comments>http://www.leakon.com/archives/686#comments</comments>
		<pubDate>Thu, 22 Sep 2011 06:02:01 +0000</pubDate>
		<dc:creator>leakon</dc:creator>
				<category><![CDATA[默认分类]]></category>

		<guid isPermaLink="false">http://www.leakon.com/archives/686</guid>
		<description><![CDATA[I eventually received confirmation from the SSH server owner that indeed port forwarding was disabled in their sshd_config file (AllowTcpForwarding: &#8220;no&#8221;).
At my request, they reset AllowTcpForwarding to &#8220;yes&#8221;. That solved the connectivity problem. Now I can connect Firefox to Internet using  [...]]]></description>
			<content:encoded><![CDATA[<p>I eventually received confirmation from the SSH server owner that indeed port forwarding was disabled in their sshd_config file (AllowTcpForwarding: &#8220;no&#8221;).<br />
At my request, they reset AllowTcpForwarding to &#8220;yes&#8221;. That solved the connectivity problem. Now I can connect Firefox to Internet using Tunnelier&#8217;s SOCKS proxy and my host&#8217;s SSH server. This means secure and anonymous browsing.</p>
<p>还有一种说法，是大网关的临时性 block 指令强行切断了连接，过一会儿就恢复。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leakon.com/archives/686/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Multipart form data input</title>
		<link>http://www.leakon.com/archives/685?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=php-multipart-form-data-input</link>
		<comments>http://www.leakon.com/archives/685#comments</comments>
		<pubDate>Tue, 23 Aug 2011 08:33:00 +0000</pubDate>
		<dc:creator>leakon</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[Multipart]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.leakon.com/archives/685</guid>
		<description><![CDATA[PHP 不能得到 multipart/form-data 类型的 body 原始数据！！！
用 file_get_contents(&#8216;php://input&#8217;); 只能得到 Content-Type 不为 multipart/form-data 类型的。
标记一下~
]]></description>
			<content:encoded><![CDATA[<p>PHP 不能得到 multipart/form-data 类型的 body 原始数据！！！</p>
<p>用 file_get_contents(&#8216;php://input&#8217;); 只能得到 Content-Type 不为 multipart/form-data 类型的。</p>
<p>标记一下~</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leakon.com/archives/685/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>POST method uploads errors</title>
		<link>http://www.leakon.com/archives/684?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=post-method-uploads-errors</link>
		<comments>http://www.leakon.com/archives/684#comments</comments>
		<pubDate>Mon, 22 Aug 2011 09:37:06 +0000</pubDate>
		<dc:creator>leakon</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[Multipart]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.leakon.com/archives/684</guid>
		<description><![CDATA[$_FILES["file"]["error"]是错误代码，0表示没有错误，下面几种对应不同的错误
1 : 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值.
2 : 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
3 : 文件只有部分被上传
4 : 没有文件被上传
Error Messages Explained
UPLOAD_ERR_OK
Value: 0; There is no error, the file uploaded with success.
UPLOAD_ERR_INI_SIZE
Value:  [...]]]></description>
			<content:encoded><![CDATA[<p>$_FILES["file"]["error"]是错误代码，0表示没有错误，下面几种对应不同的错误<br />
1 : 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值.<br />
2 : 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。<br />
3 : 文件只有部分被上传<br />
4 : 没有文件被上传</p>
<p>Error Messages Explained</p>
<p>UPLOAD_ERR_OK<br />
Value: 0; There is no error, the file uploaded with success.</p>
<p>UPLOAD_ERR_INI_SIZE<br />
Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.</p>
<p>UPLOAD_ERR_FORM_SIZE<br />
Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.</p>
<p>UPLOAD_ERR_PARTIAL<br />
Value: 3; The uploaded file was only partially uploaded.</p>
<p>UPLOAD_ERR_NO_FILE<br />
Value: 4; No file was uploaded.</p>
<p>UPLOAD_ERR_NO_TMP_DIR<br />
Value: 6; Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3.</p>
<p>UPLOAD_ERR_CANT_WRITE<br />
Value: 7; Failed to write file to disk. Introduced in PHP 5.1.0.</p>
<p>UPLOAD_ERR_EXTENSION<br />
Value: 8; A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help. Introduced in PHP 5.2.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leakon.com/archives/684/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

