<?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>Seateng Blog &#187; 网站构架</title>
	<atom:link href="http://blog.seateng.cn/categories/site-architect/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.seateng.cn</link>
	<description>[spawn(fun()-&#62;Browser ! {self(), share(X)}end) &#124;&#124; X &#60;- [&#34;Web开发&#34;, &#34;网站构架&#34;, &#34;分布式开发&#34;]]</description>
	<lastBuildDate>Tue, 06 Dec 2011 09:25:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>创建 Null Route (Blackhole Route) 保护系统</title>
		<link>http://blog.seateng.cn/archives/2011/12/creating-a-blackhole-route.html</link>
		<comments>http://blog.seateng.cn/archives/2011/12/creating-a-blackhole-route.html#comments</comments>
		<pubDate>Tue, 06 Dec 2011 07:53:54 +0000</pubDate>
		<dc:creator>Seateng</dc:creator>
				<category><![CDATA[网站构架]]></category>
		<category><![CDATA[blackhole route]]></category>
		<category><![CDATA[null route]]></category>
		<category><![CDATA[黑洞]]></category>

		<guid isPermaLink="false">http://blog.seateng.cn/?p=304</guid>
		<description><![CDATA[空路由或者说黑洞路由是一个没有最终目的地的路由。匹配的包将被删除或者抛弃而不是转发。这种空路由的行为也被称做黑洞过滤。简单说空路由就是不路由。 创建空路由主要用于保护你的系统，使其不发送任何响应数据给远程系统。]]></description>
			<content:encoded><![CDATA[<p>空路由或者说黑洞路由是一个没有最终目的地的路由。匹配的包将被删除或者抛弃而不是转发。这种空路由的行为也被称做黑洞过滤。简单说空路由就是不路由。 创建空路由主要用于保护你的系统，使其不发送任何响应数据给远程系统。<br />
<strong>创建一个空路由</strong></p>
<p>创建空路由通常使用 `route` 命令。尽管语法上存在一些差异，但是 Window 和 Unix 系统都支持这个命令。</p>
<p>&nbsp;</p>
<p><strong>创建一个C 网段的空路由:</strong></p>
<p># route add 193.252.19.0 0.0.0.0 add net 193.252.19.0: Glossary Link gateway 0.0.0.0</p>
<p>用`netstat -nr`命令我们可以看到新添加的空路由:</p>
<p># netstat -nr<br />
Routing tables<br />
Internet:<br />
Destination Gateway Flags Refs Use Netif Expire<br />
…<br />
193.252.19 0.0.0.0 UGS 0 0 fxp0<br />
..</p>
<p>命令结果显示无论我们从这个网段收到什么数据包，都不会做任何应答。空路由通常用于防止那些发送垃圾邮件的服务器和网络上一些无聊的人。</p>
<p>&nbsp;</p>
<p><strong>在Linux下用 iproute2 创建空路由</strong></p>
<p>$ ip route add blackhole 192.168.32.128/32</p>
<p>&nbsp;</p>
<p><strong>在Solaris 和 BSD 下用 route 创建空路由:</strong></p>
<p>$ route add -host 10.10.0.1 127.0.0.1 -blackhole<br />
$ route add -net 10.10.64.0/18 127.0.0.1 -blackhole</p>
<p>&nbsp;</p>
<p><strong>Cisco IOS 上可以路由到 Null0 接口:</strong></p>
<p>ip route 192.168.0.0 255.255.0.0 Null0</p>
<p>在Windows XP/Vista下不支持reject或者blackhole参数</p>
<p>指向路由，不过可以指定一个不存在的IP地址（例如：192.168.32.254）作为目标网关来实现。</p>
<p>route -p ADD 192.168.32.128 MASK 255.255.255.255 192.168.32.254</p>
<p>译自：<br />
<a href="http://mayur.gondaliya.com/computer-networks/creating-a-null-route-341.html" target="_blank">http://mayur.gondaliya.com/computer-networks/creating-a-null-route-341.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seateng.cn/archives/2011/12/creating-a-blackhole-route.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chrome 语音识别输入</title>
		<link>http://blog.seateng.cn/archives/2011/11/chrome-voice-input.html</link>
		<comments>http://blog.seateng.cn/archives/2011/11/chrome-voice-input.html#comments</comments>
		<pubDate>Sat, 26 Nov 2011 04:24:30 +0000</pubDate>
		<dc:creator>Seateng</dc:creator>
				<category><![CDATA[网站构架]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[语音识别]]></category>

		<guid isPermaLink="false">http://blog.seateng.cn/?p=281</guid>
		<description><![CDATA[Chrome 语音识别输入input。]]></description>
			<content:encoded><![CDATA[<p>发现<a href="http://www.taobao.com" target="_blank">淘宝</a>首页的搜索框支持语音识别输入。</p>
<p>稍微研究了下发现是Google Chrome 支持语音识别输入。</p>
<p>做了个简单的Demo：</p>
<pre class="brush: xml; title: ;">
&lt;!Doctype html PUBLIC &quot;-//W3C//DTD XHTML 1.1//EN&quot; &quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;zh&quot; lang=&quot;zh&quot;&gt;
&lt;head&gt;
  &lt;title&gt;test&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;input type=&quot;text&quot; id=&quot;a&quot; name=&quot;a&quot; autofocus=&quot;true&quot; autocomplete=&quot;off&quot;
 x-webkit-speech=&quot;&quot; x-webkit-grammar=&quot;builtin:translate&quot; /&gt;

&lt;/body&gt;

&lt;/html&gt;
</pre>
<p>注意:</p>
<pre class="brush: xml; title: ;">
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;zh&quot; lang=&quot;zh&quot;&gt;
</pre>
<p>lang务必用<strong>zh</strong><br />
要不然对着麦克风说半天中文识别出来的都是废。</p>
<p>用Chrome同学可以在下面的输入框里看到个麦克风。</p>
<input type="text" id="a" name="a" autofocus="true" autocomplete="off" x-webkit-speech="" x-webkit-grammar="builtin:translate" />
]]></content:encoded>
			<wfw:commentRss>http://blog.seateng.cn/archives/2011/11/chrome-voice-input.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>让Emacs在终端上和在窗口模式保持显示一致</title>
		<link>http://blog.seateng.cn/archives/2011/08/emacs-teminal-color.html</link>
		<comments>http://blog.seateng.cn/archives/2011/08/emacs-teminal-color.html#comments</comments>
		<pubDate>Wed, 31 Aug 2011 07:19:25 +0000</pubDate>
		<dc:creator>Seateng</dc:creator>
				<category><![CDATA[网站构架]]></category>

		<guid isPermaLink="false">http://blog.seateng.cn/?p=272</guid>
		<description><![CDATA[编辑 ~/.bashrc 增加: export TERM=xterm-256color]]></description>
			<content:encoded><![CDATA[<p>编辑 ~/.bashrc<br />
增加:<br />
export TERM=xterm-256color</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seateng.cn/archives/2011/08/emacs-teminal-color.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Mac下用Pygments给终端cat加颜色</title>
		<link>http://blog.seateng.cn/archives/2011/07/pygments_mac_terminal_color.html</link>
		<comments>http://blog.seateng.cn/archives/2011/07/pygments_mac_terminal_color.html#comments</comments>
		<pubDate>Fri, 29 Jul 2011 01:51:21 +0000</pubDate>
		<dc:creator>Seateng</dc:creator>
				<category><![CDATA[网站构架]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Pygments]]></category>

		<guid isPermaLink="false">http://blog.seateng.cn/?p=265</guid>
		<description><![CDATA[在Mac下用Pygments给终端cat加颜色]]></description>
			<content:encoded><![CDATA[<p>1. sudo easy_install Pygments<br />
2. emacs ~/.bash_profile<br />
增加<br />
# for syntax highlight<br />
alias xcat=&#8217;pygmentize -f console&#8217;<br />
3. xcat jquery.js</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seateng.cn/archives/2011/07/pygments_mac_terminal_color.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mockups 注册码</title>
		<link>http://blog.seateng.cn/archives/2010/09/mockups-%e6%b3%a8%e5%86%8c%e7%a0%81.html</link>
		<comments>http://blog.seateng.cn/archives/2010/09/mockups-%e6%b3%a8%e5%86%8c%e7%a0%81.html#comments</comments>
		<pubDate>Thu, 16 Sep 2010 09:26:54 +0000</pubDate>
		<dc:creator>Seateng</dc:creator>
				<category><![CDATA[网站构架]]></category>

		<guid isPermaLink="false">http://blog.seateng.cn/?p=246</guid>
		<description><![CDATA[http://www.balsamiq.com NGEN eJzzzU/OLi0odswsqvFzd/WrsUQCNc41hmBRAO9oC9s=]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.balsamiq.com">http://www.balsamiq.com</a><br />
NGEN<br />
eJzzzU/OLi0odswsqvFzd/WrsUQCNc41hmBRAO9oC9s=</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seateng.cn/archives/2010/09/mockups-%e6%b3%a8%e5%86%8c%e7%a0%81.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tomcat Cookie base64 truncated =</title>
		<link>http://blog.seateng.cn/archives/2010/06/tomcat-cookie-base64-truncated.html</link>
		<comments>http://blog.seateng.cn/archives/2010/06/tomcat-cookie-base64-truncated.html#comments</comments>
		<pubDate>Tue, 08 Jun 2010 10:21:36 +0000</pubDate>
		<dc:creator>Seateng</dc:creator>
				<category><![CDATA[网站构架]]></category>

		<guid isPermaLink="false">http://blog.seateng.cn/?p=233</guid>
		<description><![CDATA[private String convertToValidBase64Encode(String cookieParam) { switch(cookieParam.length()%4) { case 3: cookieParam=cookieParam+&#8221;=&#8221;; break; case 2: cookieParam=cookieParam+&#8221;==&#8221;; break; case 1: cookieParam=cookieParam+&#8221;===&#8221;; break; default: System.out.println(&#8220;Default: the cookieParam value is&#8211;&#8221;+cookieParam); } return cookieParam; }]]></description>
			<content:encoded><![CDATA[<p>private String convertToValidBase64Encode(String cookieParam)<br />
{<br />
switch(cookieParam.length()%4)<br />
{<br />
case 3:<br />
cookieParam=cookieParam+&#8221;=&#8221;;<br />
break;<br />
case 2:<br />
cookieParam=cookieParam+&#8221;==&#8221;;<br />
break;<br />
case 1:<br />
cookieParam=cookieParam+&#8221;===&#8221;;<br />
break;<br />
default:<br />
System.out.println(&#8220;Default: the cookieParam value is&#8211;&#8221;+cookieParam);<br />
}<br />
return cookieParam;<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seateng.cn/archives/2010/06/tomcat-cookie-base64-truncated.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP 5.3.2 FPM 分支 Bug</title>
		<link>http://blog.seateng.cn/archives/2010/05/php-5-3-2-with-fpm-bu.html</link>
		<comments>http://blog.seateng.cn/archives/2010/05/php-5-3-2-with-fpm-bu.html#comments</comments>
		<pubDate>Sat, 01 May 2010 19:52:27 +0000</pubDate>
		<dc:creator>Seateng</dc:creator>
				<category><![CDATA[网站构架]]></category>

		<guid isPermaLink="false">http://blog.seateng.cn/?p=203</guid>
		<description><![CDATA[PHP 5.3.2 开始建了个集成FPM的分支了。 正常下载PHP源代码 解压 cd 解压目录 下载fpm svn co http://svn.php.net/repository/php/php-src/trunk/sapi/fpm sapi/fpm confiruge make make install 一路下来没什么问题。 启动php-fpm时提示 [pool www] start_servers(20) must not be less than min_spare_servers(35) and not greater than max_spare_servers(35) min_spare_servers在php-fpm.conf里设置的是5这里变成了35，明显有问题。 在源代码sapi/fpm/fpm/里找了下发现提示在fpm_conf.c 在460行，细看发现else if判断有问题 将 459 行的 config->pm_start_servers < config->pm_max_spare_servers 改成 config->pm_start_servers < config->pm_min_spare_servers 460行的 config->pm_max_spare_servers 改成 config->pm_min_spare_servers 重新 make &#038;&#038; make install [...]]]></description>
			<content:encoded><![CDATA[<p>PHP 5.3.2 开始建了个集成FPM的分支了。<br />
正常下载PHP源代码 解压 cd 解压目录</p>
<p>下载fpm<br />
svn co http://svn.php.net/repository/php/php-src/trunk/sapi/fpm sapi/fpm</p>
<p>confiruge make make install 一路下来没什么问题。<br />
启动php-fpm时提示 [pool www] start_servers(20) must not be less than min_spare_servers(35) and not greater than max_spare_servers(35)<br />
min_spare_servers在php-fpm.conf里设置的是5这里变成了35，明显有问题。</p>
<p>在源代码sapi/fpm/fpm/里找了下发现提示在fpm_conf.c 在460行，细看发现else if判断有问题<br />
将 459 行的<br />
config->pm_start_servers < config->pm_max_spare_servers<br />
改成<br />
config->pm_start_servers < config->pm_min_spare_servers </p>
<p>460行的<br />
config->pm_max_spare_servers<br />
改成<br />
config->pm_min_spare_servers</p>
<p>重新 make &#038;&#038; make install<br />
php-fpm 顺利启动！</p>
<p>顺带罗嗦下，原来的PHP版本打 path时php-fpm带的 start stop restart reload 在这个分支里已经不能用了。<br />
以后这里要自己写脚本了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seateng.cn/archives/2010/05/php-5-3-2-with-fpm-bu.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>xmanager GDM IPV6</title>
		<link>http://blog.seateng.cn/archives/2009/12/xmanager-gdm-ipv6.html</link>
		<comments>http://blog.seateng.cn/archives/2009/12/xmanager-gdm-ipv6.html#comments</comments>
		<pubDate>Sat, 26 Dec 2009 10:35:44 +0000</pubDate>
		<dc:creator>Seateng</dc:creator>
				<category><![CDATA[网站构架]]></category>

		<guid isPermaLink="false">http://blog.seateng.cn/?p=198</guid>
		<description><![CDATA[有台旧机器安的是Debian 5.0.3(升级到unstable)，内核2.6.32-trunk-686。在xp下通过xmanager过去一直XDMCP连接失败。 /etc/gdm/gdm.conf [xdmcp] Enable=1 Port=177 已经xdmcp支持已经开启。 nestat -nalp 看到177端口也已经开了。就是连不上。。。 netstat -nalp &#124; grep gdm udp6 0 0 :::177 :::* 1500/gdm 发现gdm监听的居然是udp6 也就是IPV6的177口，没监听udp的177。 将 /etc/sysctl.d/bindv6only.conf 文件 net.ipv6.bindv6only = 1 改成 net.ipv6.bindv6only = 0 重启搞定。 备注:Debian最新的unstable很奇怪，试了几种方法想把IPV6关掉都关不掉。 lsmod &#124; grep ipv6又没有显示。]]></description>
			<content:encoded><![CDATA[<p>有台旧机器安的是Debian 5.0.3(升级到unstable)，内核2.6.32-trunk-686。在xp下通过xmanager过去一直XDMCP连接失败。<br />
/etc/gdm/gdm.conf<br />
[xdmcp]<br />
Enable=1<br />
Port=177<br />
已经xdmcp支持已经开启。<br />
nestat -nalp<br />
看到177端口也已经开了。就是连不上。。。</p>
<p>netstat -nalp | grep gdm<br />
udp6       0      0 :::177                  :::*                                1500/gdm<br />
发现gdm监听的居然是udp6 也就是IPV6的177口，没监听udp的177。<br />
将 /etc/sysctl.d/bindv6only.conf 文件<br />
net.ipv6.bindv6only = 1<br />
改成<br />
net.ipv6.bindv6only = 0<br />
重启搞定。</p>
<p>备注:Debian最新的unstable很奇怪，试了几种方法想把IPV6关掉都关不掉。<br />
lsmod | grep ipv6又没有显示。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seateng.cn/archives/2009/12/xmanager-gdm-ipv6.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stay Hungry. Stay foolish!</title>
		<link>http://blog.seateng.cn/archives/2009/09/steve-jobs-stanford.html</link>
		<comments>http://blog.seateng.cn/archives/2009/09/steve-jobs-stanford.html#comments</comments>
		<pubDate>Tue, 01 Sep 2009 02:17:40 +0000</pubDate>
		<dc:creator>Seateng</dc:creator>
				<category><![CDATA[网站构架]]></category>

		<guid isPermaLink="false">http://blog.seateng.cn/?p=185</guid>
		<description><![CDATA[乔布斯2005年斯坦福毕业典礼的演讲。荐！ 把每一天当作生命里最后的一天去活。求知若饥，虚心若愚！]]></description>
			<content:encoded><![CDATA[<p>乔布斯2005年斯坦福毕业典礼的演讲。荐！</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="align" value="middle" /><param name="src" value="http://player.youku.com/player.php/sid/XODgxOTMzNTI=/v.swf" /><param name="quality" value="high" /><embed type="application/x-shockwave-flash" width="480" height="400" src="http://player.youku.com/player.php/sid/XODgxOTMzNTI=/v.swf" quality="high" align="middle"></embed></object></p>
<p><strong>把每一天当作生命里最后的一天去活。求知若饥，虚心若愚！</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seateng.cn/archives/2009/09/steve-jobs-stanford.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

