<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<copyright>Copyright mytupa.com</copyright>
<pubDate>2008-12-03 15:14:13</pubDate>
<lastBuildDate>2008-12-03 15:14:13</lastBuildDate>
<docs>http://font.mytupa.com</docs>
<description><![CDATA[订阅font的最新博客]]></description>
<link>http://font.mytupa.com</link>
<title><![CDATA[看到了吗?听到了吗?想到了吗?]]></title>
<managingEditor>mytupa.com</managingEditor>
<webMaster>font</webMaster>
<generator>font</generator>
<language>cn</language>
<category>Global New Blog</category>
<ttl>60</ttl>
<item>
<title><![CDATA[JAVA 分词第4版开源&nbsp;有2分，有词典&nbsp;有2分加词典&nbsp;3种分词可以选择]]></title>
<link>http://font.mytupa.com/blog/view.php?id=4e14bbc45a56069b1646905e6e745899</link>
<description><![CDATA[taoTokenizer.java<br />
<br />
package com.tupa.search.blog.analysis.tao;<br />
<br />
import org.apache.lucene.analysis.*;<br />
<br />
import java.io.*;<br />
import java.util.*;<br />
<br />
public final class taoTokenizer extends Tokenizer {<br />
	<br />
	//吃了我的给我吐出来<br />
	<br />
    private static TreeMap zhwords; //红黑树，是一种特殊的2叉树，是有序的，所以可以排序，HASHMAP不能排序<br />
    private static TreeSet cnumbers;//需要求子集，与TREEMAP配合使用<br />
	<br />
    private boolean debug;<br />
<br />
    private int offset = 0;<br />
    <br />
	private int bufferIndex = 0;<br />
<br />
	private int dataLen = 0;<br />
	<br />
	private String tokenType = &quot;word&quot;;<br />
	<br />
	private static final int IO_BUFFER_SIZE = 256;<br />
	<br />
	private final char[] ioBuffer = new char[IO_BUFFER_SIZE];<br />
	<br />
    public final static int TRAD = 0;<br />
    public final static int SIMP = 1;<br />
    public final static int BOTH = 2;<br />
	<br />
    int count = 0;<br />
    <br />
    private int charform = 0;<br />
    <br />
    private boolean loadwordfile = true;<br />
    <br />
    public taoTokenizer(Reader in) {<br />
    	<br />
    	input = in;<br />
    	debug = false;<br />
<br />
//    缓存<br />
    	cnumbers = new TreeSet();<br />
    	<br />
    	<br />
    	if (charform == SIMP) {//简体<br />
    	    loadset(cnumbers, &quot;c:&#92;&#92;dict&#92;&#92;snumbers_u8.txt&quot;);//全角数字+中文数字<br />
    	} else if (charform == TRAD) {//翻体<br />
    	    loadset(cnumbers, &quot;c:&#92;&#92;dict&#92;&#92;tnumbers_u8.txt&quot;);<br />
    	} else {  // 简体 + 翻体<br />
    	    loadset(cnumbers, &quot;c:&#92;&#92;dict&#92;&#92;snumbers_u8.txt&quot;);<br />
    	}<br />
    	<br />
        }//end init<br />
    <br />
	public void loadWords() {<br />
		long starttime = System.currentTimeMillis();<br />
		if (zhwords != null)return;<br />
		zhwords = new TreeMap();<br />
		<br />
		try {<br />
			InputStream words = new FileInputStream(&quot;c:&#92;&#92;dict&#92;&#92;sogou.txt&quot;);<br />
			BufferedReader in = new BufferedReader(new InputStreamReader(words,&quot;utf8&quot;));<br />
			String word = null;<br />
<br />
			while ((word = in.readLine()) != null) {<br />
				//#使得我们可以在词库中进行必要的注释<br />
				if ((word.indexOf(&quot;#&quot;) == -1) &amp;&amp; (word.length() &lt; 5)) {<br />
					zhwords.put(word.intern(), &quot;1&quot;);<br />
					if (word.length() == 3) {<br />
						if (!zhwords.containsKey(word.substring(0, 2).intern())) {<br />
							zhwords.put(word.substring(0, 2).intern(), &quot;2&quot;);<br />
						}<br />
						<br />
					}<br />
					if (word.length() == 4) {<br />
						if (!zhwords.containsKey(word.substring(0, 2).intern())) {<br />
							zhwords.put(word.substring(0, 2).intern(), &quot;2&quot;);<br />
						}<br />
						if (!zhwords.containsKey(word.substring(0, 3).intern())) {<br />
							zhwords.put(word.substring(0, 3).intern(), &quot;2&quot;);<br />
						}<br />
						<br />
<br />
					}<br />
				}<br />
			}<br />
			in.close();<br />
			long endtime = System.currentTimeMillis();<br />
			System.out.println(endtime - starttime);<br />
		} catch (IOException e) {<br />
			e.printStackTrace();<br />
		}<br />
	}   <br />
    <br />
    <br />
    <br />
	    private void loadset(TreeSet targetset, String sourcefile) {//这里读取字典文件<br />
	    	String dataline = null;//定义一个准备读取的String<br />
<br />
	    	try {				<br />
	    		//InputStream words = getClass().getResourceAsStream(sourcefile);//按照流数据来读取字典文件<br />
	<br />
				InputStream words = new FileInputStream(sourcefile);<br />
				BufferedReader in = new BufferedReader(new InputStreamReader(words,&quot;UTF-8&quot;));<br />
	    	   <br />
	    	    while ((dataline = in.readLine()) != null) {//开始循环读取<br />
	    		if ((dataline.indexOf(&quot;#&quot;) &gt; -1) || (dataline.length() == 0)) {//如果不是空，或者不是注释<br />
	    		    continue;<br />
	    		}<br />
	    			targetset.add(dataline.intern());//向TREESET中添加<br />
	    	    }<br />
    	    	<br />
	    	    in.close();<br />
	    	    <br />
	    	}<br />
	    	catch (Exception e) {<br />
	    	    System.err.println(&quot;Exception loading data file&quot; + sourcefile + &quot; &quot; + e.getMessage());<br />
	    	    System.exit(1);<br />
	    	}<br />
<br />
	    }//end loadset<br />
	    <br />
	    public boolean isNumber(String testword) {//是否是数字<br />
	    	boolean result = true;<br />
	    	for (int i = 0; i &lt; testword.length(); i++) {<br />
	    	    if (cnumbers.contains(testword.substring(i, i+1).intern()) == false) {//判断数字里面是否有全角数字或者是中文数字<br />
	    	    	result = false;<br />
	    	    	break;<br />
	    	    }<br />
	    	}<br />
<br />
	    	if (debug) {<br />
	    	    try {System.out.println(new String(testword.getBytes(&quot;UTF-8&quot;)) + &quot; &quot; + result);} <br />
	    	    catch (Exception a) { };<br />
	    	}<br />
<br />
	    	return result;//返回结果 FALSE表示是数字<br />
	    }<br />
<br />
		public Token next() throws IOException {<br />
			int type = 3;//1表示词典 2表示2元 3表示词典加2元<br />
<br />
			if ((type == 1) || (type == 3)) loadWords();<br />
			int start = offset;<br />
			StringBuffer currentWord = new StringBuffer();<br />
			StringBuffer currentWord2 = new StringBuffer();//专门处理英文加数字,中英文混排	<br />
			while (true) {<br />
				char c;<br />
				Character.UnicodeBlock ub;<br />
				<br />
				offset++;<br />
				<br />
				if (bufferIndex &gt;= dataLen) {<br />
					dataLen = input.read(ioBuffer);<br />
					bufferIndex = 0;<br />
				}<br />
				<br />
				if (dataLen == -1) {<br />
					if (currentWord.length() == 0) {<br />
						return null;<br />
					} else {<br />
						break;<br />
					}<br />
				} else {<br />
					c = (char)ioBuffer[bufferIndex++];				<br />
					ub = Character.UnicodeBlock.of(c);<br />
				}<br />
				<br />
					if (Character.isLetter(c)<br />
							&amp;&amp; ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS) {<br />
						tokenType = &quot;double&quot;;<br />
						if (currentWord.length() == 0) {<br />
							start = offset - 1;<br />
							currentWord.append(c);					<br />
						} else {<br />
							//这里实现了正向最大匹配法<br />
							<br />
							if (isNumber(currentWord.toString()) &amp;&amp; cnumbers.contains(new String(new char[] {c}).intern())) {<br />
						    	currentWord.append(c);			    	<br />
						    }<br />
							else{<br />
								if (type == 1){<br />
									//词典<br />
									if (zhwords.containsKey(new String(currentWord.toString()+c).intern())) {<br />
										currentWord.append(c);						<br />
									} else {<br />
										offset--;<br />
										bufferIndex--;<br />
										break;<br />
									}//end else<br />
								}// end if<br />
								else if (type == 2)<br />
								{<br />
									//2元<br />
									currentWord.append(c);<br />
									offset--;<br />
									bufferIndex--;<br />
									break;<br />
								}//end else if<br />
								else if (type == 3)<br />
								{<br />
									//2元+词典<br />
									if (zhwords.containsKey(new String(currentWord.toString()+c).intern())) {<br />
										currentWord.append(c);<br />
									} else {<br />
										if (currentWord.toString().length() == 1)<br />
										{<br />
											currentWord.append(c);<br />
											offset--;<br />
											bufferIndex--;<br />
											break;<br />
										}<br />
										else<br />
										{<br />
											offset--;<br />
											bufferIndex--;<br />
											break;<br />
										}<br />
									}//end else<br />
								}//end else if<br />
								<br />
							}// end else<br />
						}<br />
					}<br />
					else<br />
					{<br />
						if (Character.isWhitespace(c) == false) {//如果不是空白字<br />
							if ((Character.isDigit(c)==true) || (Character.isLetter(c)))<br />
							{<br />
								currentWord2.append(c);<br />
							}<br />
					    }<br />
						else<br />
						{<br />
							if (currentWord2.toString().compareTo(&quot;&quot;)!=0)<br />
							{<br />
								//Token token = new Token(currentWord2.toString(), bufferIndex<br />
										//- currentWord2.length(), bufferIndex, tokenType);<br />
								Token token = new Token(currentWord2.toString(), start, start + bufferIndex, tokenType);<br />
								currentWord2.setLength(0);<br />
								return token;<br />
							}<br />
						}//end else<br />
					}//end else<br />
				}<br />
			<br />
			//Token token = new Token(currentWord.toString(), bufferIndex - currentWord.length(), bufferIndex, tokenType);<br />
			Token token = new Token(currentWord.toString(), start, start + bufferIndex, tokenType);<br />
			currentWord.setLength(0);<br />
			return token;<br />
			<br />
		}	<br />
	    	<br />
	    <br />
}//end class<br />
	<br />
taoAnalyzer.java<br />
<br />
package com.tupa.search.blog.analysis.tao;<br />
<br />
import org.apache.lucene.analysis.*;<br />
<br />
import java.io.Reader;<br />
import java.util.Set;<br />
<br />
<br />
public class taoAnalyzer extends Analyzer {<br />
	public final static String[] STOP_WORDS = {};<br />
	<br />
	private Set stopTable;	<br />
<br />
	public taoAnalyzer() {<br />
		stopTable = StopFilter.makeStopSet(STOP_WORDS);<br />
	}<br />
<br />
	@Override<br />
<br />
	public TokenStream tokenStream(String fieldName, Reader reader) {<br />
		return new StopFilter(new taoTokenizer(reader), stopTable);<br />
	}	<br />
}	<br />
<br />
<br />
调用：<br />
<br />
// ���Էִ�<br />
<br />
package com.taojava.search;<br />
<br />
import com.taojava.search.analysis.Analyzer;<br />
import com.taojava.search.analysis.Token;<br />
import com.taojava.search.analysis.TokenStream;<br />
import com.taojava.search.analysis.tao.*;<br />
import java.io.*;<br />
<br />
public class fullsearch<br />
{<br />
<br />
	public fullsearch()<br />
	{<br />
	}<br />
<br />
	public void fullsearch()<br />
	{<br />
	}<br />
<br />
	public String format_text()<br />
	{<br />
		return &quot;a&quot;;<br />
	}<br />
<br />
	public String Token()<br />
	{<br />
		return &quot;b&quot;;<br />
	}<br />
<br />
	public String Token_dict()<br />
	{<br />
		return &quot;c&quot;;<br />
	}<br />
<br />
	public void createIndex()<br />
	{<br />
	}<br />
<br />
	public static void main(String args[])<br />
	{<br />
		long starttime = System.currentTimeMillis();<br />
		//Analyzer luceneAnalyzer = new CJKAnalyzer();<br />
		Analyzer luceneAnalyzer = new taoAnalyzer();<br />
		java.io.Reader reader = null;<br />
		String filename = &quot;c:&#92;&#92;kao.txt&quot;;<br />
		try<br />
		{<br />
			reader = new FileReader(filename);<br />
		}<br />
		catch (Exception e)<br />
		{<br />
			System.out.println(e.getMessage());<br />
		}<br />
		TokenStream tokenizer = luceneAnalyzer.tokenStream(&quot;a&quot;, reader);<br />
		try<br />
		{<br />
			for (Token t = tokenizer.next(); t != null; t = tokenizer.next())<br />
			{<br />
				System.out.println((new StringBuilder(String.valueOf(t.termText()))).append(&quot; &quot;).append(t.startOffset()).append(&quot; &quot;).append(t.endOffset()).append(&quot; &quot;).append(t.type()).toString());<br />
			}<br />
		}<br />
		catch (IOException e)<br />
		{<br />
			System.out.println(e.getMessage());<br />
		}<br />
		long endtime = System.currentTimeMillis();<br />
		System.out.println(endtime - starttime);<br />
	}<br />
}]]></description>
<pubDate>2008-09-27 18:21:45</pubDate>
</item>
<item>
<title><![CDATA[如何在UBUNTU下面安装PHP与SVN插件]]></title>
<link>http://font.mytupa.com/blog/view.php?id=46f8dc806ece444df28a4c1fdca0c544</link>
<description><![CDATA[最近在使用新的操作系统&nbsp;UBUNTU，界面非常好看。<br />
为了在其下面开发一些常用的应用，我使用了ECLIPSE3.1&nbsp;IDE，<br />
所以这里记录一下2个插件的地址<br />
<br />
SVN：<br />
http://subclipse.tigris.org/update作为URL添加New&nbsp;Remote&nbsp;Site<br />
<br />
具体可以参考&nbsp;http://www.wpall.cn/pg/eclipse/20071024/3885.shtml<br />
<br />
PHP：<br />
http://phpeclipse.sourceforge.net/update/releases&nbsp;作为URL添加New&nbsp;Remote&nbsp;Site<br />
<br />
具体可以参考&nbsp;http://www.phpeclipse.de/tiki-read_article.php?articleId=37]]></description>
<pubDate>2008-04-08 15:51:26</pubDate>
</item>
<item>
<title><![CDATA[早上很搞笑的一幕]]></title>
<link>http://font.mytupa.com/blog/view.php?id=f627985c83f6a2c04a75d985048608b7</link>
<description><![CDATA[和往常一样，我坐着地铁来到徐家汇。徐家汇还是一如既往的人山人海，大家虽然忙碌，可是大多人手上依然拿着一份报纸。<br />
<br />
可是今天确看见一个女的，穿的还挺像样，可是确在和一个拾荒者抢报纸。<br />
<br />
那拾荒者说：报纸下面有人在发送啊，为什么抢我垃圾箱的报纸？<br />
那女的说：就看一下嘛，我没见着下面有人发嘛。<br />
<br />
说完抢了报纸就急匆匆的走了。<br />
<br />
抢的似乎是时代报。]]></description>
<pubDate>2008-04-02 09:58:47</pubDate>
</item>
<item>
<title><![CDATA[看星座后,我发现我是最接近神的人]]></title>
<link>http://font.mytupa.com/blog/view.php?id=774a705b8e0455bc03da8499946bc323</link>
<description><![CDATA[一等星座：&nbsp;　　<br />
　　　　<br />
　　天蝎座（深谋远虑，深藏不露，城府极深，有魄力，有野心，勇敢，意志力超强，隐忍执着，洞察力极强，爆发力强，有12星座独一无二的第六感，是成大事者的首选，实数12星座之冠！）<br />
　　　　---------代表性大神（印度主神创造神大梵天[印度教生日11月9日]&nbsp;冥王哈迪斯）&nbsp;　　<br />
　　　　<br />
　　摩羯座（吃苦耐劳，大器晚成，有野心，忍辱负重，坚韧不拔，意志顽强，大智若愚，是成大事者另一选择，综合实力略仅次于天蝎座的优等星座！）<br />
　　　　---------代表性大神（基督教主神耶和华[基督教生日&nbsp;12月25日]）&nbsp;　<br />
　　　　<br />
　　水瓶座（思维怪异，非常人能及，异常冷静，行为古怪独特，捉摸不定。意志也比较顽强，是成大事者第三选择，一个极其有魅力的外星人星座）<br />
　　　　---------代表性大神（&nbsp;中国道教的玉皇大帝[生日阴历正月初九]）<br />
　　　　&nbsp;　　<br />
　　　　<br />
　　二等星座：&nbsp;　　<br />
　　　　<br />
　　狮子座（有领导才能，有魄力，敢作敢当，做男人很好，缺点是骄傲自大，听不进好言相劝，是表面的王者）<br />
　　　　---------代表性大神（海神波塞东）&nbsp;　<br />
　　　　<br />
　　天秤座（优雅，有风度，仪表堂堂，人缘极好，朋友众多，是12星座中最吃的开的星座。不过此星座一般贪图享受）<br />
　　　　---------代表性大神（太阳神阿波罗）&nbsp;　　<br />
　　　　<br />
　　金牛座（稳重、踏实，有艺术细胞，为人较诚实，属实干家，只要踏踏实实也能有一翻成就，不过此星座多为守财奴很吝啬，一生为金钱奔波劳碌）<br />
　　　　---------代表性大神（佛教主神释珈摩尼[生日阴历四月初八]&nbsp;希腊主神宙斯）&nbsp;　　<br />
　　　　<br />
　　白羊座（性格豪爽，光明磊落，勇敢，忠贞，极具阳刚，缺点是做事易冲动，没脑子，天真，好斗，女的稍微好点。）<br />
　　　　---------代表性大神（伊斯兰教主神真主安拉[生日4月20日]&nbsp;战神阿瑞斯）&nbsp;　　<br />
　　　　<br />
　　巨蟹座（此星座适合照顾人，细心体贴，是慈父贤母，但不适合做大事，毅力不强，接近三等&lt;星座）<br />
　　　　<br />
　　　　<br />
　　三等星座：&nbsp;　<br />
　　　　<br />
　　射手座（性格活泼开朗堪称12星星之最，朋友众多，喜欢自由自在不受拘束的生活，不过此星星没啥耐心，意志力很差，往往做事半途而废。又花心，不踏实，不忠实）&nbsp;　　<br />
　　　　<br />
　　处女座（一生都在追求完美，但没发现最不完美的却是自己。经不起挫折，很容易一撅不振，龟毛之王，神经质，斤斤计较，洁癖，不合群。比较令人讨厌的星座）&nbsp;　　<br />
　　　　<br />
　　双鱼座（12星座中最脆弱的星座，没主见，任人摆布，意志力超差，容易堕落，没出息，同时此星星犯罪率也是12星座之首！幸亏有天蝎座罩她，不然很难想象如何立足）&nbsp;　<br />
　　　　<br />
　　双子座（此星座好象就口才好了一点，其实也只是哗众取宠而已，而且说多错多，做事三心两意，喜新厌旧，最无定力，极易受诱惑，毅力超差，受刺激极易失常发疯，完全游戏人生，综合实力和双鱼座是难兄难弟为12星座最差！）&nbsp;]]></description>
<pubDate>2008-03-30 00:17:41</pubDate>
</item>
<item>
<title><![CDATA[这里记录一下WINDOWS消息前缀]]></title>
<link>http://font.mytupa.com/blog/view.php?id=ab441cc5017126cddde028464da69686</link>
<description><![CDATA[ABM,ABN&nbsp;应用栏<br />
ACM,ACN&nbsp;动画控件<br />
BM,BN&nbsp;按钮<br />
CB,CBN&nbsp;组合框<br />
CDM,CDN&nbsp;通用对话框<br />
CPL&nbsp;控制面板应用程序<br />
DBT&nbsp;任何应用程序（设备更改消息）<br />
DL&nbsp;拖拽列表框<br />
DM&nbsp;对话框<br />
EM,EN&nbsp;编辑框<br />
FM，FMEVENT&nbsp;文件管理器<br />
HDM,HDN&nbsp;头控件<br />
HKM&nbsp;热键控件<br />
IMC,IMN&nbsp;IME窗口<br />
LB,LBN&nbsp;列表框<br />
LVM,LVN&nbsp;列表视图<br />
NM&nbsp;任何父窗口<br />
PBM&nbsp;进度栏<br />
PBT&nbsp;任何应用程序（电池电源广播）<br />
PSM,PSN&nbsp;属性页<br />
SB&nbsp;状态栏<br />
SBM&nbsp;滚动条<br />
STM,STN&nbsp;静态控件<br />
TBM&nbsp;追踪栏<br />
TCM,TCN&nbsp;TAB控件<br />
TTM,TTN&nbsp;工具提示<br />
TVM,TVN&nbsp;树视图<br />
UDM&nbsp;Up&nbsp;Down&nbsp;控件<br />
WM&nbsp;类属窗口]]></description>
<pubDate>2008-03-11 12:20:57</pubDate>
</item>
<item>
<title><![CDATA[闲一下]]></title>
<link>http://font.mytupa.com/blog/view.php?id=2605566153a5fb2bae522895a60d3be1</link>
<description><![CDATA[好久没那么舒服的休息了，闲在家里后，可以看看书，写写代码，修修电脑，看看片子。<img src="/resource/smiles/korea/16.gif" border="0"\/><br />
<br />
今天买了很多零食。一个人躺在公园里舒服的晒太阳。<img src="/resource/smiles/korea/21.gif" border="0"\/><br />
<br />
打算最近把事情都移交后，准备开始启动新项目了。至于写什么东西，暂时保密。<img src="/resource/smiles/korea/3.gif" border="0"\/><br />
<br />
我是希望30岁前可以做点自己真真喜欢的事，现在正好是个机会。<img src="/resource/smiles/korea/23.gif" border="0"\/><br />
<br />
我要有一颗感恩的心，谢谢所有帮助过我的朋友。]]></description>
<pubDate>2008-03-10 22:48:02</pubDate>
</item>
<item>
<title><![CDATA[准备开始大休假了。]]></title>
<link>http://font.mytupa.com/blog/view.php?id=7c2d080c57aefdb158b5c3e620be9917</link>
<description><![CDATA[开始放个大假，准备在家里好好休息一段时间。]]></description>
<pubDate>2008-03-06 16:07:54</pubDate>
</item>
<item>
<title><![CDATA[最近主要在看的一些书]]></title>
<link>http://font.mytupa.com/blog/view.php?id=3c75a80a1f71e188ca6b0f5ee1919ff4</link>
<description><![CDATA[感觉微软很臭屁，一些技术关键字，都使用COM或者.NET之流，以后会不会出现.ORG技术，.ORZ技术。<br />
<br />
以下是最近下载的一些书籍。放在电脑里面慢慢啃。<br />
VC++DotNet技术内幕<br />
Visual&nbsp;C++.NET&nbsp;开发手册<br />
Visual&nbsp;C++_NET编程详解<br />
Visual&nbsp;C++_NET应用编程实例进阶<br />
Visual.C..NET编程实例<br />
Visual.C.NET完全手册<br />
Vsual&nbsp;C++_NET多媒体编程<br />
突破Visual&nbsp;C++.NET编程实例五十讲]]></description>
<pubDate>2008-03-03 13:56:22</pubDate>
</item>
<item>
<title><![CDATA[写点关键字]]></title>
<link>http://font.mytupa.com/blog/view.php?id=0669510028e80d5ce367b0929c6e1aa0</link>
<description><![CDATA[SMPlayer freecol aTunes&nbsp;Crossfire&nbsp;Tux_Paint&nbsp;Daimonin&nbsp;MPC&nbsp;Frinika]]></description>
<pubDate>2008-02-18 20:52:18</pubDate>
</item>
<item>
<title><![CDATA[上海漂大雪]]></title>
<link>http://font.mytupa.com/blog/view.php?id=fa11840f9d023e91c5dd542dd64cfd51</link>
<description><![CDATA[那么大滴雪啊。一块块滴往下掉。<br />
深深滴打在我的身体上。<br />
那么大滴雪哦。鹅毛般滴大雪。<br />
今天是值得纪念滴一天。<br />
因为我们冒着大雪，集体在公司加班打游戏。<br />
我们戏罪恶滴~]]></description>
<pubDate>2008-01-26 14:47:51</pubDate>
</item>
<item>
<title><![CDATA[APC文档]]></title>
<link>http://font.mytupa.com/blog/view.php?id=820e4b8105adc318a5f0571681166f1a</link>
<description><![CDATA[+-----------------+<br />
|&nbsp;CONFIGURING&nbsp;APC&nbsp;|<br />
+-----------------+<br />
<br />
Although&nbsp;the&nbsp;default&nbsp;APC&nbsp;settings&nbsp;are&nbsp;fine&nbsp;for&nbsp;many&nbsp;installations,&nbsp;serious<br />
users&nbsp;should&nbsp;consider&nbsp;tuning&nbsp;the&nbsp;following&nbsp;parameters:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;OPTION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DESCRIPTION<br />
&nbsp;&nbsp;&nbsp;&nbsp;------------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;can&nbsp;be&nbsp;set&nbsp;to&nbsp;0&nbsp;to&nbsp;disable&nbsp;APC.&nbsp;This&nbsp;is<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;primarily&nbsp;useful&nbsp;when&nbsp;APC&nbsp;is&nbsp;statically&nbsp;compiled<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;into&nbsp;PHP,&nbsp;since&nbsp;there&nbsp;is&nbsp;no&nbsp;other&nbsp;way&nbsp;to&nbsp;disable<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it&nbsp;(when&nbsp;compiled&nbsp;as&nbsp;a&nbsp;DSO,&nbsp;the&nbsp;zend_extension<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line&nbsp;can&nbsp;just&nbsp;be&nbsp;commented-out).<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.shm_segments&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;number&nbsp;of&nbsp;shared&nbsp;memory&nbsp;segments&nbsp;to&nbsp;allocate<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;the&nbsp;compiler&nbsp;cache.&nbsp;If&nbsp;APC&nbsp;is&nbsp;running&nbsp;out&nbsp;of<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shared&nbsp;memory&nbsp;but&nbsp;you&nbsp;have&nbsp;already&nbsp;set<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;apc.shm_size&nbsp;as&nbsp;high&nbsp;as&nbsp;your&nbsp;system&nbsp;allows,&nbsp;you<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can&nbsp;try&nbsp;raising&nbsp;this&nbsp;value.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.shm_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;size&nbsp;of&nbsp;each&nbsp;shared&nbsp;memory&nbsp;segment&nbsp;in&nbsp;MB.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;By&nbsp;default,&nbsp;some&nbsp;systems&nbsp;(including&nbsp;most&nbsp;BSD<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;variants)&nbsp;have&nbsp;very&nbsp;low&nbsp;limits&nbsp;on&nbsp;the&nbsp;size&nbsp;of&nbsp;a<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shared&nbsp;memory&nbsp;segment.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;30)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.optimization&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;optimization&nbsp;level.&nbsp;Zero&nbsp;disables&nbsp;the<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;optimizer,&nbsp;and&nbsp;higher&nbsp;values&nbsp;use&nbsp;more&nbsp;aggressive<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;optimizations.&nbsp;Expect&nbsp;very&nbsp;modest&nbsp;speed<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;improvements.&nbsp;This&nbsp;is&nbsp;experimental.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.num_files_hint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;&quot;hint&quot;&nbsp;about&nbsp;the&nbsp;number&nbsp;of&nbsp;distinct&nbsp;source&nbsp;files<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that&nbsp;will&nbsp;be&nbsp;included&nbsp;or&nbsp;requested&nbsp;on&nbsp;your&nbsp;web<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server.&nbsp;Set&nbsp;to&nbsp;zero&nbsp;or&nbsp;omit&nbsp;if&nbsp;you&#39;re&nbsp;not&nbsp;sure;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this&nbsp;setting&nbsp;is&nbsp;mainly&nbsp;useful&nbsp;for&nbsp;sites&nbsp;that&nbsp;have<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;many&nbsp;thousands&nbsp;of&nbsp;source&nbsp;files.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;1000)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.user_entries_hint&nbsp;&nbsp;&nbsp;Just&nbsp;like&nbsp;num_files_hint,&nbsp;a&nbsp;&quot;hint&quot;&nbsp;about&nbsp;the&nbsp;number<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;distinct&nbsp;user&nbsp;cache&nbsp;variables&nbsp;to&nbsp;store.&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;to&nbsp;zero&nbsp;or&nbsp;omit&nbsp;if&nbsp;you&#39;re&nbsp;not&nbsp;sure;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;100)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.ttl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;number&nbsp;of&nbsp;seconds&nbsp;a&nbsp;cache&nbsp;entry&nbsp;is&nbsp;allowed&nbsp;to<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;idle&nbsp;in&nbsp;a&nbsp;slot&nbsp;in&nbsp;case&nbsp;this&nbsp;cache&nbsp;entry&nbsp;slot&nbsp;is&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;needed&nbsp;by&nbsp;another&nbsp;entry.&nbsp;&nbsp;Leaving&nbsp;this&nbsp;at&nbsp;zero<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;means&nbsp;that&nbsp;your&nbsp;cache&nbsp;could&nbsp;potentially&nbsp;fill&nbsp;up<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;stale&nbsp;entries&nbsp;while&nbsp;newer&nbsp;entries&nbsp;won&#39;t&nbsp;be<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cached.&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;0)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.user_ttl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;number&nbsp;of&nbsp;seconds&nbsp;a&nbsp;user&nbsp;cache&nbsp;entry&nbsp;is&nbsp;allowed&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;idle&nbsp;in&nbsp;a&nbsp;slot&nbsp;in&nbsp;case&nbsp;this&nbsp;cache&nbsp;entry&nbsp;slot&nbsp;is&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;needed&nbsp;by&nbsp;another&nbsp;entry.&nbsp;&nbsp;Leaving&nbsp;this&nbsp;at&nbsp;zero<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;means&nbsp;that&nbsp;your&nbsp;cache&nbsp;could&nbsp;potentially&nbsp;fill&nbsp;up<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;stale&nbsp;entries&nbsp;while&nbsp;newer&nbsp;entries&nbsp;won&#39;t&nbsp;be<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cached.&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;0)<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.gc_ttl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;number&nbsp;of&nbsp;seconds&nbsp;that&nbsp;a&nbsp;cache&nbsp;entry&nbsp;may<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remain&nbsp;on&nbsp;the&nbsp;garbage-collection&nbsp;list.&nbsp;This&nbsp;value<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;provides&nbsp;a&nbsp;failsafe&nbsp;in&nbsp;the&nbsp;event&nbsp;that&nbsp;a&nbsp;server<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;process&nbsp;dies&nbsp;while&nbsp;executing&nbsp;a&nbsp;cached&nbsp;source&nbsp;file;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;that&nbsp;source&nbsp;file&nbsp;is&nbsp;modified,&nbsp;the&nbsp;memory<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allocated&nbsp;for&nbsp;the&nbsp;old&nbsp;version&nbsp;will&nbsp;not&nbsp;be<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reclaimed&nbsp;until&nbsp;this&nbsp;TTL&nbsp;reached.&nbsp;Set&nbsp;to&nbsp;zero&nbsp;to<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disable&nbsp;this&nbsp;feature.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;3600)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.cache_by_default&nbsp;&nbsp;&nbsp;&nbsp;On&nbsp;by&nbsp;default,&nbsp;but&nbsp;can&nbsp;be&nbsp;set&nbsp;to&nbsp;off&nbsp;and&nbsp;used&nbsp;in<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conjunction&nbsp;with&nbsp;positive&nbsp;apc.filters&nbsp;so&nbsp;that&nbsp;files<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are&nbsp;only&nbsp;cached&nbsp;if&nbsp;matched&nbsp;by&nbsp;a&nbsp;positive&nbsp;filter.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;On)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.filters&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;comma-separated&nbsp;list&nbsp;of&nbsp;POSIX&nbsp;extended&nbsp;regular<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expressions.&nbsp;If&nbsp;any&nbsp;pattern&nbsp;matches&nbsp;the&nbsp;source<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename,&nbsp;the&nbsp;file&nbsp;will&nbsp;not&nbsp;be&nbsp;cached.&nbsp;Note&nbsp;that<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;filename&nbsp;used&nbsp;for&nbsp;matching&nbsp;is&nbsp;the&nbsp;one&nbsp;passed<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;include/require,&nbsp;not&nbsp;the&nbsp;absolute&nbsp;path.&nbsp;&nbsp;If&nbsp;the<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;first&nbsp;character&nbsp;of&nbsp;the&nbsp;expression&nbsp;is&nbsp;a&nbsp;+&nbsp;then&nbsp;the<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expression&nbsp;will&nbsp;be&nbsp;additive&nbsp;in&nbsp;the&nbsp;sense&nbsp;that&nbsp;any<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;files&nbsp;matched&nbsp;by&nbsp;the&nbsp;expression&nbsp;will&nbsp;be&nbsp;cached,&nbsp;and<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;the&nbsp;first&nbsp;character&nbsp;is&nbsp;a&nbsp;-&nbsp;then&nbsp;anything&nbsp;matched<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;not&nbsp;be&nbsp;cached.&nbsp;&nbsp;The&nbsp;-&nbsp;case&nbsp;is&nbsp;the&nbsp;default,&nbsp;so<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it&nbsp;can&nbsp;be&nbsp;left&nbsp;off.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;&quot;&quot;)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.mmap_file_mask&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;compiled&nbsp;with&nbsp;MMAP&nbsp;support&nbsp;by&nbsp;using&nbsp;--enable-mmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this&nbsp;is&nbsp;the&nbsp;mktemp-style&nbsp;file_mask&nbsp;to&nbsp;pass&nbsp;to&nbsp;the<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mmap&nbsp;module&nbsp;for&nbsp;determing&nbsp;whether&nbsp;your&nbsp;mmap&#39;ed&nbsp;memory<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;region&nbsp;is&nbsp;going&nbsp;to&nbsp;be&nbsp;file-backed&nbsp;or&nbsp;shared&nbsp;memory<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;backed.&nbsp;&nbsp;For&nbsp;straight&nbsp;file-backed&nbsp;mmap,&nbsp;set&nbsp;it&nbsp;to<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;something&nbsp;like&nbsp;/tmp/apc.XXXXXX&nbsp;(exactly&nbsp;6&nbsp;X&#39;s).<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To&nbsp;use&nbsp;POSIX-style&nbsp;shm_open/mmap&nbsp;put&nbsp;a&nbsp;&quot;.shm&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;somewhere&nbsp;in&nbsp;your&nbsp;mask.&nbsp;&nbsp;eg.&nbsp;&nbsp;&quot;/apc.shm.XXXXXX&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You&nbsp;can&nbsp;also&nbsp;set&nbsp;it&nbsp;to&nbsp;&quot;/dev/zero&quot;&nbsp;to&nbsp;use&nbsp;your&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kernel&#39;s&nbsp;/dev/zero&nbsp;interface&nbsp;to&nbsp;anonymous&nbsp;mmap&#39;ed&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memory.&nbsp;&nbsp;Leaving&nbsp;it&nbsp;undefined&nbsp;will&nbsp;force&nbsp;an&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;anonymous&nbsp;mmap.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;&quot;&quot;)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.slam_defense&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On&nbsp;very&nbsp;busy&nbsp;servers&nbsp;whenever&nbsp;you&nbsp;start&nbsp;the&nbsp;server&nbsp;or<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modify&nbsp;files&nbsp;you&nbsp;can&nbsp;create&nbsp;a&nbsp;race&nbsp;of&nbsp;many&nbsp;processes<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;trying&nbsp;to&nbsp;cache&nbsp;the&nbsp;same&nbsp;file&nbsp;at&nbsp;the&nbsp;same&nbsp;time.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;option&nbsp;sets&nbsp;the&nbsp;percentage&nbsp;of&nbsp;processes&nbsp;that&nbsp;will<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skip&nbsp;trying&nbsp;to&nbsp;cache&nbsp;an&nbsp;uncached&nbsp;file.&nbsp;&nbsp;Or&nbsp;think&nbsp;of&nbsp;it<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;as&nbsp;the&nbsp;probability&nbsp;of&nbsp;a&nbsp;single&nbsp;process&nbsp;to&nbsp;skip&nbsp;caching.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For&nbsp;example,&nbsp;setting&nbsp;this&nbsp;to&nbsp;75&nbsp;would&nbsp;mean&nbsp;that&nbsp;there&nbsp;is<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;75%&nbsp;chance&nbsp;that&nbsp;the&nbsp;process&nbsp;will&nbsp;not&nbsp;cache&nbsp;an&nbsp;uncached<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.&nbsp;&nbsp;So&nbsp;the&nbsp;higher&nbsp;the&nbsp;setting&nbsp;the&nbsp;greater&nbsp;the&nbsp;defense<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;against&nbsp;cache&nbsp;slams.&nbsp;&nbsp;Setting&nbsp;this&nbsp;to&nbsp;0&nbsp;disables&nbsp;this<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;feature.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;0)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.file_update_protection<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When&nbsp;you&nbsp;modify&nbsp;a&nbsp;file&nbsp;on&nbsp;a&nbsp;live&nbsp;web&nbsp;server&nbsp;you&nbsp;really<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;should&nbsp;do&nbsp;so&nbsp;in&nbsp;an&nbsp;atomic&nbsp;manner.&nbsp;&nbsp;That&nbsp;is,&nbsp;write&nbsp;to&nbsp;a<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temporary&nbsp;file&nbsp;and&nbsp;rename&nbsp;(mv)&nbsp;the&nbsp;file&nbsp;into&nbsp;its&nbsp;permanent<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;position&nbsp;when&nbsp;it&nbsp;is&nbsp;ready.&nbsp;&nbsp;Many&nbsp;text&nbsp;editors,&nbsp;cp,&nbsp;tar&nbsp;and<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;other&nbsp;such&nbsp;programs&nbsp;don&#39;t&nbsp;do&nbsp;this.&nbsp;&nbsp;This&nbsp;means&nbsp;that&nbsp;there<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;a&nbsp;chance&nbsp;that&nbsp;a&nbsp;file&nbsp;is&nbsp;accessed&nbsp;(and&nbsp;cached)&nbsp;while&nbsp;it<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;still&nbsp;being&nbsp;written&nbsp;to.&nbsp;&nbsp;This&nbsp;file_update_protection<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setting&nbsp;puts&nbsp;a&nbsp;delay&nbsp;on&nbsp;caching&nbsp;brand&nbsp;new&nbsp;files.&nbsp;&nbsp;The<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default&nbsp;is&nbsp;2&nbsp;seconds&nbsp;which&nbsp;means&nbsp;that&nbsp;if&nbsp;the&nbsp;modification<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;timestamp&nbsp;(mtime)&nbsp;on&nbsp;a&nbsp;file&nbsp;shows&nbsp;that&nbsp;it&nbsp;is&nbsp;less&nbsp;than&nbsp;2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;seconds&nbsp;old&nbsp;when&nbsp;it&nbsp;is&nbsp;accessed,&nbsp;it&nbsp;will&nbsp;not&nbsp;be&nbsp;cached.&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;unfortunate&nbsp;person&nbsp;who&nbsp;accessed&nbsp;this&nbsp;half-written&nbsp;file<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;still&nbsp;see&nbsp;weirdness,&nbsp;but&nbsp;at&nbsp;least&nbsp;it&nbsp;won&#39;t&nbsp;persist.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;you&nbsp;are&nbsp;certain&nbsp;you&nbsp;always&nbsp;atomically&nbsp;update&nbsp;your&nbsp;files<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;by&nbsp;using&nbsp;something&nbsp;like&nbsp;rsync&nbsp;which&nbsp;does&nbsp;this&nbsp;correctly,&nbsp;you<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can&nbsp;turn&nbsp;this&nbsp;protection&nbsp;off&nbsp;by&nbsp;setting&nbsp;it&nbsp;to&nbsp;0.&nbsp;&nbsp;If&nbsp;you<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;have&nbsp;a&nbsp;system&nbsp;that&nbsp;is&nbsp;flooded&nbsp;with&nbsp;io&nbsp;causing&nbsp;some&nbsp;update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;to&nbsp;take&nbsp;longer&nbsp;than&nbsp;2&nbsp;seconds,&nbsp;you&nbsp;may&nbsp;want&nbsp;to<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;increase&nbsp;this&nbsp;a&nbsp;bit.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;2)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.enable_cli&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mostly&nbsp;for&nbsp;testing&nbsp;and&nbsp;debugging.&nbsp;&nbsp;Setting&nbsp;this&nbsp;enables&nbsp;APC<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;the&nbsp;CLI&nbsp;version&nbsp;of&nbsp;PHP.&nbsp;&nbsp;Normally&nbsp;you&nbsp;wouldn&#39;t&nbsp;want&nbsp;to<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create,&nbsp;populate&nbsp;and&nbsp;tear&nbsp;down&nbsp;the&nbsp;APC&nbsp;cache&nbsp;on&nbsp;every&nbsp;CLI<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request,&nbsp;but&nbsp;for&nbsp;various&nbsp;test&nbsp;scenarios&nbsp;it&nbsp;is&nbsp;handy&nbsp;to&nbsp;be<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;able&nbsp;to&nbsp;enable&nbsp;APC&nbsp;for&nbsp;the&nbsp;CLI&nbsp;version&nbsp;of&nbsp;APC&nbsp;easily.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;0)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.max_file_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prevents&nbsp;large&nbsp;files&nbsp;from&nbsp;being&nbsp;cached.&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;1M)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;apc.stat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether&nbsp;to&nbsp;stat&nbsp;the&nbsp;main&nbsp;script&nbsp;file&nbsp;and&nbsp;the&nbsp;fullpath<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;includes.&nbsp;&nbsp;If&nbsp;you&nbsp;turn&nbsp;this&nbsp;off&nbsp;you&nbsp;will&nbsp;need&nbsp;to&nbsp;restart<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;your&nbsp;server&nbsp;in&nbsp;order&nbsp;to&nbsp;update&nbsp;scripts.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Default:&nbsp;1)<br />
]]></description>
<pubDate>2008-01-11 15:31:16</pubDate>
</item>
<item>
<title><![CDATA[向前进]]></title>
<link>http://font.mytupa.com/blog/view.php?id=bcc859215136a2b6ba1abe1c21ac674a</link>
<description><![CDATA[要&quot;多劳多前进&quot;.不要&quot;不劳不前进&quot;.如果&quot;多劳不前进&quot;.将&quot;多劳不钱进&quot;.<br />
<br />
好湿啊好湿]]></description>
<pubDate>2008-01-10 23:03:32</pubDate>
</item>
<item>
<title><![CDATA[db4 config]]></title>
<link>http://font.mytupa.com/blog/view.php?id=468bcd5143b05ba28e248ce892eb9465</link>
<description><![CDATA[    printf(&quot;-p &lt;num&gt;      port number to listen on&#92;n&quot;);<br />
    printf(&quot;-l &lt;ip_addr&gt;  interface to listen on, default is INDRR_ANY&#92;n&quot;);<br />
    printf(&quot;-d            run as a daemon&#92;n&quot;);<br />
    printf(&quot;-r            maximize core file limit&#92;n&quot;);<br />
    printf(&quot;-u &lt;username&gt; assume identity of &lt;username&gt; (only when run as root)&#92;n&quot;);<br />
    printf(&quot;-m &lt;num&gt;      cache memory to use for items in megabytes, default is 64 MB&#92;n&quot;);<br />
    printf(&quot;-c &lt;num&gt;      max simultaneous connections, default is 1024&#92;n&quot;);<br />
    printf(&quot;-f &lt;file&gt;     filename of database, default is /data1/memcachedb/default.db&#92;n&quot;);<br />
    printf(&quot;-H &lt;dir&gt;      env home of database, default is /data1/memcachedb&#92;n&quot;);<br />
    printf(&quot;-L &lt;num&gt;      log buffer size, in kbytes&#92;n&quot;);<br />
    printf(&quot;-C &lt;num&gt;      do checkpoint every XX seconds, 0 for disable, default is 60s&#92;n&quot;);<br />
    printf(&quot;-D &lt;num&gt;      do deadlock detecting every XXX millisecond, 0 for disable, default is 100ms&#92;n&quot;);<br />
    printf(&quot;-N            enable DB_TXN_NOSYNC&#92;n&quot;);<br />
    printf(&quot;--------------------replication options-------------------------------&#92;n&quot;);<br />
    printf(&quot;-R            identifies the host and port used by this site (required).&#92;n&quot;);<br />
    printf(&quot;-O            identifies another site participating in this replication group&#92;n&quot;);<br />
    printf(&quot;-M/-S         start as a master or slave&#92;n&quot;);<br />
    printf(&quot;-----------------------------------------------------------------------&#92;n&quot;);<br />
    printf(&quot;-P &lt;file&gt;     save PID in &lt;file&gt;, only used with -d option&#92;n&quot;);<br />
    printf(&quot;-v            verbose (print errors/warnings while in event loop)&#92;n&quot;);<br />
    printf(&quot;-h            print this help and exit&#92;n&quot;);]]></description>
<pubDate>2008-01-07 17:55:10</pubDate>
</item>
<item>
<title><![CDATA[关于AJAX的一些问题]]></title>
<link>http://font.mytupa.com/blog/view.php?id=9daa9ab8991ec7a60754a9e1e0e77da7</link>
<description><![CDATA[今天详细看了下SAJAX，确实有不少BUG，我自己重写了一个，使用起来似乎要灵活一点。暂时命名为GAJAX，支持IE7与FIREFOX。<br />
<br />
<br />
&lt;?php<br />
/*<br />
*	$version: 2007-12-29 16:27:22 beta 1.0<br />
*	$id: gajax.php<br />
*	$author: taoFeng<br />
*	$mailto: font99@Gmail.com<br />
*	$license: This is not a freeware<br />
*/<br />
<br />
/*<br />
*	此类主要修复了SAJAX诸多BUG，以及SAJAX一对一的瓶颈问题<br />
*	使用了通过URI来传递参数<br />
*<br />
*	php 使用方法<br />
<br />
	//callback<br />
	if (isset($_REQUEST{&#39;act&#39;})){ <br />
		if ($_REQUEST{&#39;act&#39;} == &#39;add&#39;){<br />
			echo $_REQUEST{&#39;txt&#39;};<br />
			exit;<br />
		}<br />
	}<br />
<br />
	include (&#39;gajax.php&#39;);<br />
<br />
	$_AJAX = new gajax();<br />
	$_AJAX-&gt;_setDebugMode(0); // debug 1 or 0<br />
<br />
	echo &quot;&lt;html&gt;&lt;body&gt;&lt;script&gt;&#92;n&quot;;<br />
	echo $_AJAX-&gt;_showAjaxJs();<br />
	echo &lt;&lt;&lt;EOF<br />
			var d = 0;<br />
			function add(){<br />
				d++;<br />
				setRemoteUri(&quot;index.php?act=add&amp;txt=&quot;+d);<br />
			}<br />
			<br />
			setTargetId(&quot;xxx&quot;);//by html id ,这里也可以使用自定来回调,而不使用内置函数<br />
			<br />
			//<br />
			//function userCallBack(x){<br />
			//	document.getElementById(&#39;xxx&#39;).innerHTML = x.responseText;<br />
			//}<br />
			//在下面调用的时候使用_ajaxDoCall(&quot;userCallBack&quot;); //这里传入回调函数的函数名,当使用回调时，请不要使用上面的setTargetId方法，否则以setTargetId为主<br />
			//<br />
<br />
	EOF;<br />
	echo &quot;&lt;/script&gt;&lt;div id=&#39;xxx&#39;&gt;asdf&lt;/div&gt;&lt;input type=&#92;&quot;button&#92;&quot; onclick=&#92;&quot;add();_ajaxDoCall();&#92;&quot; value=&#92;&quot;submit&#92;&quot; /&gt;&quot;;<br />
	echo &quot;&lt;/body&gt;&lt;/html&gt;&quot;;<br />
	exit;<br />
*<br />
*/<br />
<br />
final class gajax{<br />
<br />
	private $_ajaxVersion		= &#39;0.0.1&#39;;<br />
	private $_debugMode			= false;<br />
	private $_explodeList		= array ();<br />
	private $_requestType		= &#39;GET&#39;;<br />
	private $_remoteUri			= &#39;&#39;;<br />
	private $_errorRedirec	= &#39;&#39;;<br />
<br />
	public function __construct(){<br />
		$this-&gt;_remoteUri = $_SERVER[&quot;REQUEST_URI&quot;];<br />
	}<br />
	<br />
	public function _setRemoteUri($_uri){<br />
		$this-&gt;_remoteUri = $_uri;<br />
	}<br />
<br />
	public function _setDebugMode($i){<br />
		$this-&gt;_debugMode = $i;<br />
	}<br />
<br />
	public function _setExplodeList(){<br />
		<br />
	}<br />
<br />
	public function _setErrorRedirec($_redirec){<br />
		$this-&gt;_errorRedirec = $_redirec;<br />
	}<br />
<br />
	public function _showAjaxJs(){<br />
		if (!in_array(strtoupper($this-&gt;_requestType),array(&#39;GET&#39;,&#39;POST&#39;))) return false;<br />
	<br />
		ob_start();<br />
		?&gt;<br />
		var debugMode = &lt;?php echo $this-&gt;_debugMode ? &quot;true&quot; : &quot;false&quot;; ?&gt;;<br />
		var requestType = &quot;&lt;?php echo strtoupper($this-&gt;_requestType);?&gt;&quot;;<br />
		var targetId = &quot;&quot;;<br />
		var errorRedirect = &quot;&lt;?php echo $this-&gt;_errorRedirec;?&gt;&quot;;<br />
		var ajaxRequests = new Array();<br />
		var remoteUri = &quot;&lt;?php echo $this-&gt;_remoteUri;?&gt;&quot;;<br />
		var callBack = &#39;&#39;;<br />
<br />
		function _ajaxDebug(s){ if (debugMode) {alert(s)} }<br />
<br />
		function setTargetId(id){<br />
			targetId = id;<br />
		}<br />
<br />
		function setRemoteUri(u){<br />
			remoteUri = u;<br />
		}<br />
<br />
		function _ajaxInit(){<br />
			_ajaxDebug(&quot;Init Called&quot;);<br />
			var xmlHttp = null;<br />
			var tx = &quot;XMLHTTP&quot;; var th = &quot;Msxml2.&quot; + tx;<br />
 			var msxmlHttp = new Array(th + &#39;.5.0&#39;,th + &#39;.4.0&#39;,th + &#39;.3.0&#39;,th,&#39;Microsoft&#39; + tx);<br />
			if (window.ActiveXObject){<br />
				for (var x = 0; x &lt; msxmlHttp.length; x++) {<br />
					try {<br />
						xmlHttp = new ActiveXObject(msxmlHttp[x]); break;<br />
					} catch (e) { }<br />
				}<br />
			} else if (window.XMLHttpRequest){<br />
				try{<br />
					xmlHttp = new XMLHttpRequest();<br />
				}<br />
				catch (e){ _ajaxDebug(&quot;Could not create xmlhttp object.&quot;); }<br />
			}<br />
			return xmlHttp;<br />
		}<br />
		<br />
		function _ajaxCancel() {<br />
			for (var j = 0; j &lt; ajaxRequests.length; j++){<br />
				ajaxRequests[j].abort();<br />
			}<br />
		}<br />
		<br />
		function _ajaxDoCall(_callBack){<br />
			_ajaxCancel();<br />
			_ajaxDebug(&quot;in _ajaxDoCall()..&quot; + requestType + &quot;/&quot; + targetId + &quot;/&quot; + remoteUri);<br />
<br />
			var _xmlHttp = _ajaxInit();<br />
			var _remoteuri = remoteUri;<br />
			callBack = _callBack;<br />
<br />
			if (_remoteuri.indexOf(&quot;?&quot;) == -1){ _remoteuri += &quot;?&quot;; } else{ _remoteuri += &quot;&amp;&quot;; }<br />
			_remoteuri += &quot;ts=&quot; + new Date().getTime();<br />
<br />
			if (_xmlHttp == null){<br />
				if (errorRedirect != &quot;&quot;) { location.href = errorRedirect; } else { _ajaxDebug(&quot;ajax object for user agent:&#92;n&quot; + navigator.userAgent); }<br />
				return false;<br />
			}<br />
<br />
			_xmlHttp.open(requestType, _remoteuri, true);<br />
<br />
			ajaxRequests[ajaxRequests.length] = _xmlHttp;<br />
			<br />
			_xmlHttp.onreadystatechange = function() {<br />
				if (_xmlHttp.readyState == 4){<br />
					if (_xmlHttp.status == 200){<br />
						_ajaxDebug(&quot;received: &quot; + _xmlHttp.responseText);<br />
						if (targetId){<br />
							document.getElementById(targetId).innerHTML = _xmlHttp.responseText;}<br />
						else{<br />
							try {eval(callBack+&quot;(_xmlHttp)&quot;);} catch(e){}<br />
						}<br />
					}<br />
				}<br />
			}<br />
<br />
			if (requestType == &quot;POST&quot;) {<br />
				_xmlHttp.setRequestHeader(&quot;Method&quot;, &quot;POST &quot; + _remoteuri + &quot; HTTP/1.1&quot;);<br />
				_xmlHttp.setRequestHeader(&quot;Content-Type&quot;, &quot;application/x-www-form-urlencoded&quot;);<br />
				_xmlHttp.send(null);<br />
			}<br />
			else{ _xmlHttp.send(null);}<br />
			delete(_xmlHttp);<br />
			return;<br />
<br />
		}<br />
		<br />
		&lt;?php<br />
		$s_js = ob_get_contents();<br />
		ob_end_clean();<br />
<br />
		return $s_js;<br />
	}<br />
<br />
}<br />
<br />
?&gt;]]></description>
<pubDate>2008-01-02 15:16:31</pubDate>
</item>
<item>
<title><![CDATA[新年快乐]]></title>
<link>http://font.mytupa.com/blog/view.php?id=4cef09fc6d66877d59162d6c655cac7b</link>
<description><![CDATA[刚刚到家，马不停蹄的上来留个言，自然希望大家和我一样乐快年新，青春还在。]]></description>
<pubDate>2008-01-01 01:10:00</pubDate>
</item>
<item>
<title><![CDATA[人生皆是一场梦 恰似一浮萍]]></title>
<link>http://font.mytupa.com/blog/view.php?id=2985ecb8f265df696ab5d937d53fc920</link>
<description><![CDATA[我喜欢沉默，少言寡欲，是个闷葫芦，所以无论你怎么摇我，我也晃不出什么水来。<br />
<br />
我喜欢每天看看窗外，看看树，看看车子，看看行人，看看黄昏，心情会得到一丝平静。所以未来如何如何？失意还是得意？又有谁会明白！<br />
<br />
我不喜欢尘世喧嚣。那样感觉【众人皆醒我独醉】。人生皆是一场梦，恰似一浮萍。日子一天一天过，面对死亡又有何许人可以化作长眠。真想做千古风流人物？不如只争朝夕。平平淡淡是幸福。<br />
<br />
岁月挽歌，拔剑悲哭夜雨苦。落花飞石，煮酒品花醉飞雪。城市里的孩子永远不会懂的。即便活在一切的虚伪中，还是难以自拔。可悲可叹寻求忏悔。不如只争朝夕。平平淡淡是幸福。<br />
<br />
人生阴晴圆缺，可能到老只是南柯黄粱梦，我们每天都在焦急。是失去还是获得？只有经历才能明白。<br />
<br />
怕只怕路在走，可是走的是回头路。觉得自己有长大，确在烽火戏诸侯？<br />
<br />
一个人喝醉，最好不要找人陪。不可否认我很帅，可是我很温柔。]]></description>
<pubDate>2007-12-14 16:53:15</pubDate>
</item>
<item>
<title><![CDATA[颠屁]]></title>
<link>http://font.mytupa.com/blog/view.php?id=7fe275d086011b19c07b5ab51a66e5a7</link>
<description><![CDATA[楼下的人叫着：空调，回收空调。<br />
我听着小妹BLOG上不知名的音乐。<br />
心里空荡荡的，太阳晒在屁股上，依然赖在床上。<br />
<br />
把手上的枕头扔的远远的。然后飞起一个飞腿，在枕头还没落地前，抓住它给它一个过桥摔，宣告它OVER之后，开始准备起床刷牙。老爸老妈都已经起床，才7点而已。那个钟是千年不走地~<br />
<br />
喜欢不刷牙，不洗脸的情况下，扮鬼吓人，喜欢口吐臭气，把家里的花朵全部熏死，头发上还有枕头里的毛，感觉自己是个送信的。早上起来一定要跳舞。跳大象舞。<br />
<br />
吃完饭，才想起来，没刷牙，穿好衣服，才知道脸没洗。这才是生活规律，我的生活已经有了规律。牙可以不洗，脸可以不刷，烟还是记得晒的，太阳还是记得抽的。生活颠四倒三。<br />
<br />
早上进来个电话，和他扯了半天也不知道他是谁。有病啊。牙不刷和我打个P电话。<br />
<br />
下午还要出去买书。当然是买金瓶梅了。<br />
<br />
浑浑噩噩的把日子过了，疯疯癫癫的被日子强奸着。真是痛并快乐着。<br />
<br />
已经12月了。12月真是秋高气爽的日子，该去吃个玉米了。吃掉它，并扔掉它，然后喜新厌旧的一根又一根。把玉米上撒点盐，给隔壁的小金鱼吃。它可爱吃了。小金鱼旁的乌龟是千年不死的，在我手上也死掉没几只而已。<br />
<br />
老姐是青蛙，姐夫是头牛，希望以后他们生只小牛蛙出来，明天他们结婚了，祝贺一下。<br />
<br />
天上没云朵，云都躲着我，太阳晒着我，只你敢日我。人类已经探月了，探日也不远了。宇宙太小，我太大。。。<br />
<br />
我要去完成我的大业了。白日梦中人。]]></description>
<pubDate>2007-12-08 11:13:06</pubDate>
</item>
<item>
<title><![CDATA[等待了那么长时间。]]></title>
<link>http://font.mytupa.com/blog/view.php?id=3d641a9f2f08635838e878c3f064e2a4</link>
<description><![CDATA[730天的耐心等待，换来了晴天霹雳。<br />
<br />
流星火球，那个火球]]></description>
<pubDate>2007-12-06 18:41:40</pubDate>
</item>
<item>
<title><![CDATA[图葩新功能]]></title>
<link>http://font.mytupa.com/blog/view.php?id=6d4090272c22788375d6322d8d77c4a1</link>
<description><![CDATA[大家访问我的主页就会有所觉悟http://font.mytupa.com<br />
<br />
明天还会继续改点细节]]></description>
<pubDate>2007-12-03 17:11:28</pubDate>
</item>
<item>
<title><![CDATA[梦想与现实]]></title>
<link>http://font.mytupa.com/blog/view.php?id=de45eba0adebe8eb5915b1ee8d4b1c31</link>
<description><![CDATA[现实是残酷的。<br />
<br />
但我依然为当时的梦想而自豪，从制作MYTUPA的那天开始，我要求自己要用心去写。虽然默默无闻的写着枯燥乏味的代码，每天还是快乐着，至少写了自己喜欢的东西，可能代码会被完全的推翻或者重写，一遍又一遍，一次又一次，可是丝毫不能打动我自己的信念。<br />
<br />
与苏小雨同志喋喋不休的“争吵”，应该如何更加完美，我用自己的汗水写出了一个SNS，至少心中还是无比自豪，这种自豪别人抢夺不了，别人也不敢想像，可是有人问我？你为公司做过什么？这个东西无法产生效益。我开始茫然了。。。<br />
<br />
现实是残酷的。<br />
<br />
不是我们写后台的没有内心想法，只是很多东西不想去想，可以说是“逃避”，但是我在致力做好一件事的事情的前提下，我不会动摇去做另一件事情，哪怕这件事情有很大的利益。<br />
<br />
虽然有的时候我很狂妄，可是我也是一位尽职的工程师。我确实不产生效益，可是我对的起我所做的这份工作。对得起使用我程序的每一个朋友。<br />
<br />
今天听到一些我不该听到的事情，心里不太舒服。可能每个人都有自己的不归路，我既然选择了，就不会后悔拥有过，哪怕是非常伤心，至少我付出过，我一直告诉自己，没有功劳也有苦劳，没有苦劳也有疲劳。只是内心的自我安慰罢了。<br />
<br />
被人否定总是不好受的，可能你们认为钱可以买到一切，那么那是错误的，钱买不到尊严。很多事情我会一笑了之，因为人生本来也就是来也匆匆，去也匆匆。<br />
<br />
有的时候抽烟可以忘却烦愁。混沌可以忘记忧伤。。。是梦想大于现实，还是现实大于梦想。因人而异吧]]></description>
<pubDate>2007-11-30 22:54:21</pubDate>
</item>
<item>
<title><![CDATA[ralf说全球只有4个人全部打完。]]></title>
<link>http://font.mytupa.com/blog/view.php?id=5c9bf4c122ad512c9401a4cf1126aeb2</link>
<description><![CDATA[<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="600" height="330" align="top"><param name="allowScriptAccess" value="sameDomain"><param name="movie" value="http://img2.pconline.com.cn/pconline/0708/28/1091170_28turningsqure.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFFFF"><param name="play" value="true"><embed src="http://img2.pconline.com.cn/pconline/0708/28/1091170_28turningsqure.swf" width="600" height="330" play="true" align="top" quality="high" bgcolor="#ffffff" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"/></object><br />
<br />
以下是我打完的结局画面<br />
<br />
最后二版的PASSCODE：614955 和 138620<br />
<br />
<span class="psd"><img name="ubbimage" src="http://upload.mytupa.com/upload/photo/4/7/font/ddb7279d2d2bca4112b61272adab261b.jpg" border="0"/></span><br />
<br />
<span class="psd"><img name="ubbimage" src="http://upload.mytupa.com/upload/photo/4/7/font/e4615230537d95a4388ca4e8c83f49d5.jpg" border="0"/></span>]]></description>
<pubDate>2007-11-29 14:11:18</pubDate>
</item>
<item>
<title><![CDATA[做我老公好不好[歌词]]]></title>
<link>http://font.mytupa.com/blog/view.php?id=08060bf77d573cb04cbc63dfc1814fa4</link>
<description><![CDATA[牵着我的手好不好<br />
喜欢你温暖的大手<br />
勾着我的肩好不好<br />
喜欢你温柔的大手<br />
<br />
记得初见的回忆，心中种下你的影子<br />
每次见你的背影，心中都有一阵悸动<br />
你的离开，我无法承受<br />
做我老公好不好，我不想失去你<br />
<br />
抱紧我的身体好不好<br />
我的灵魂已经无法离开你的胸怀<br />
亲吻我的额头好不好<br />
我的大脑已经无法忘却你的嘴唇<br />
<br />
记得分手的时候，已无法控制我自己<br />
当你离开的之后，我的心已不在跳动<br />
你的离开，我无法承受<br />
做我老公好不好，我不想失去你]]></description>
<pubDate>2007-11-26 16:29:32</pubDate>
</item>
<item>
<title><![CDATA[用JAVA写了个很奇怪的东西]]></title>
<link>http://font.mytupa.com/blog/view.php?id=4afbddd285715fd74abcefc043d35f11</link>
<description><![CDATA[我不知道这个东西叫啥,不过绝对是写游戏用的到的.专门处理时间进程的.支持分布试的运算.可是我还是不知道他是啥.]]></description>
<pubDate>2007-11-15 22:43:51</pubDate>
</item>
<item>
<title><![CDATA[c++简单的队列测试]]></title>
<link>http://font.mytupa.com/blog/view.php?id=e50c79c528d9ccf529c3a9c33f9ca610</link>
<description><![CDATA[#include&nbsp;&nbsp;&nbsp;&lt;queue&gt;&nbsp;&nbsp;&nbsp;<br />
#include&nbsp;&nbsp;&nbsp;&lt;list&gt;&nbsp;&nbsp;&nbsp;<br />
#include&nbsp;&nbsp;&nbsp;&lt;algorithm&gt;&nbsp;&nbsp;&nbsp;<br />
#include&nbsp;&nbsp;&nbsp;&lt;iostream&gt;&nbsp;&nbsp;&nbsp;<br />
using&nbsp;namespace&nbsp;std;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
int&nbsp;main()&nbsp;&nbsp;&nbsp;<br />
{&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;queue&lt;int,&nbsp;list&lt;int&gt;&nbsp;&gt;&nbsp;iqueue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;iqueue.push(1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;iqueue.push(3);<br />
&nbsp;&nbsp;&nbsp;&nbsp;iqueue.push(5);<br />
&nbsp;&nbsp;&nbsp;&nbsp;iqueue.push(7);<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;iqueue.size()&nbsp;&lt;&lt;&nbsp;endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;iqueue.front()&nbsp;&lt;&lt;&nbsp;endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;iqueue.pop();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;&nbsp;&nbsp;iqueue.front()&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;&nbsp;&nbsp;endl;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;iqueue.pop();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;&nbsp;&nbsp;iqueue.front()&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;&nbsp;&nbsp;endl;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;iqueue.pop();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;&nbsp;&nbsp;iqueue.front()&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;&nbsp;&nbsp;endl;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;&nbsp;&nbsp;iqueue.size()&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;&nbsp;&nbsp;endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;system(&quot;pause&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />
}&nbsp;&nbsp;&nbsp;<br />
]]></description>
<pubDate>2007-11-14 11:57:48</pubDate>
</item>
<item>
<title><![CDATA[要减肥先减头]]></title>
<link>http://font.mytupa.com/blog/view.php?id=7f9db609cdbdd9cd569ea5991f50d670</link>
<description><![CDATA[减了个蘑菇头.感觉头大了,装满了知识与草包.]]></description>
<pubDate>2007-11-09 21:35:14</pubDate>
</item>
<item>
<title><![CDATA[什么是认识]]></title>
<link>http://font.mytupa.com/blog/view.php?id=d3aa5628c3c3741bf51da82f588d9180</link>
<description><![CDATA[上帝让我认识了你，可是为什么再让我失去你？莫名其妙．如果为了证明这一切，又何必反反复复．上帝为什么创造了亚当后再造了夏娃？难道上帝认可了背叛？夏娃只是亚当的一根骨头，可是上帝为什么将原本一体的人拆散？又何必分分合合．上帝为什么制造了第三者．是的，上帝不仅上仅创造了亚当，夏娃，那条蛇显然是背这黑锅，如果说夏娃被创造后就是为了勾引亚当．那么蛇则是为了勾引夏娃而生，那条蛇比人更懂得如何做人．上帝到底为了什么创造了世界，创造了苹果．在死亡笔记里，死神一直在吃着苹果，因为它最想了解，或者最了解人类，又或者不是．上帝让人类生生死死，让人类吃着知善恶树上的果子．是被勾引？是定力不足？人类可以为自己的背叛而原谅自己．人类活在世界上，不断出卖自己脑力，体力，自尊，信仰．不知道上帝有没有镜子照．或者当夏娃没有降临伊甸园的时候，亚当是怎么看待这个世界？看待自己？人很多时候都是在和自己搏斗，是出卖还是不出卖，尺度是多少？得到是多少？我们都肩负着自己的神圣使命，不要去责怪别人，上帝创造夏娃，就为了让夏娃偷吃禁果，让亚当了解人间悲喜．认识了一次就可以了．<br />
<br />
上文的你，可能指友情，可能指亲情，可能指爱情，可能指金钱，可能指权利，可能指某样东西，可能指某个人]]></description>
<pubDate>2007-11-07 22:27:03</pubDate>
</item>
<item>
<title><![CDATA[娃哈哈]]></title>
<link>http://font.mytupa.com/blog/view.php?id=d08c994d85821bb7fcbf5dd33994d9ba</link>
<description><![CDATA[修复了部分BUG。不知道还会不会有内存溢出问题。昨天似乎还没这问题，果然人多力量大，我们已经经过严格的压力测试，还是避免不了有错误。今天有位仁兄似乎十分空闲，对我们进行各种不同的攻击尝试。<br />
<br />
这个礼拜六公司要组织活动了，那么晚上大家来我房间打牌，麻将，扑克随便选，输的么。。。嘿嘿。<br />
<br />
不知道那位仁兄似乎特别爱把避风塘叫做避孕套。。。你不恶心么。]]></description>
<pubDate>2007-11-07 19:07:43</pubDate>
</item>
<item>
<title><![CDATA[小组还是有不少BUG]]></title>
<link>http://font.mytupa.com/blog/view.php?id=837198d77d29499fb85880e71bbee5d7</link>
<description><![CDATA[主要原因是服务器上某个东西版本太老。我现在冒死把它升级一下。]]></description>
<pubDate>2007-11-07 17:21:04</pubDate>
</item>
<item>
<title><![CDATA[碰到了好久没见的朋友]]></title>
<link>http://font.mytupa.com/blog/view.php?id=ebffa51f109d8e5891d59224fcca0cb0</link>
<description><![CDATA[血梦这个大帅哥居然和我说他不谈朋友了。真是全球男人的悲哀啊。长那么帅...]]></description>
<pubDate>2007-11-06 21:39:16</pubDate>
</item>
<item>
<title><![CDATA[新小组上线]]></title>
<link>http://font.mytupa.com/blog/view.php?id=13c1737566429c4c0d67dbc2b651fa32</link>
<description><![CDATA[小组上线，BUG修复中，<br />
由于使用了一些特别的技术，暂时还未稳定，相信经过一段时间后，框架会逐渐成熟，希望大家给我点时间。网站其他地方加了很多功能，外加BLOG的50套模板。]]></description>
<pubDate>2007-11-05 19:28:44</pubDate>
</item>
</channel>
</rss>
