<?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>Pep&#039;s Top Blog</title>
	<atom:link href="http://www.peptop.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.peptop.com</link>
	<description>The more we share, the more we have!</description>
	<lastBuildDate>Fri, 06 Aug 2010 14:37:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>PHP Study Notes – Storing and Retrieving Data</title>
		<link>http://www.peptop.com/web/php-study-notes-storing-retrieving-data/</link>
		<comments>http://www.peptop.com/web/php-study-notes-storing-retrieving-data/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 14:36:02 +0000</pubDate>
		<dc:creator>Pep</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Study Notes]]></category>

		<guid isPermaLink="false">http://www.peptop.com/?p=141</guid>
		<description><![CDATA[Storing and retrieving data section of the PHP study notes, including reading and writing data via file functions, introduced many useful file functions, such as fopen, fclose, fread, and fwrite, etc.]]></description>
			<content:encoded><![CDATA[<p>Chapter 2 , introduced how to open, read, write, lock, close a file and other useful file functions.<br />
<span id="more-141"></span></p>
<h3>Opening a File</h3>
<h4>Using fopen() to Open a File</h4>
<p>fopen() definition:<br />
<code>resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )</code></p>
<p>fopen() examples:<br />
<code>$handle = fopen("/home/rasmus/file.txt", "r");<br />
$fp = fopen("$_SERVER['DOCUMENT_ROOT']/../orders/orders.txt",'w'); </code></p>
<h4>Summary of File Modes for fopen()</h4>
<table>
<thead>
<tr>
<th>mode</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>&#8216;r&#8217;</td>
<td>Open for reading only; place the file pointer at the beginning of the file.</td>
</tr>
<tr>
<td>&#8216;r+&#8217;</td>
<td>Open for reading and writing; place the file pointer at the beginning of the file.</td>
</tr>
<tr>
<td>&#8216;w&#8217;</td>
<td>Open for writing only; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.</td>
</tr>
<tr>
<td>&#8216;w+&#8217;</td>
<td>Open for reading and writing; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.</td>
</tr>
<tr>
<td>&#8216;a&#8217;</td>
<td>Open for writing only; place the file pointer at the end of the file. If the file does not exist, attempt to create it.</td>
</tr>
<tr>
<td>&#8216;a+&#8217;</td>
<td>Open for reading and writing; place the file pointer at the end of the file. If the file does not exist, attempt to create it.</td>
</tr>
<tr>
<td>&#8216;x&#8217;</td>
<td>Create and open for writing only; place the file pointer at the beginning of the file.<br />
If the file already exists, the fopen() call will fail by returning FALSE, and PHP will generate a warning.<br />
If the file does not exist, attempt to create it.</td>
</tr>
<tr>
<td>&#8216;x+&#8217;</td>
<td>Create and open for reading and writing; place the file pointer at the beginning of the file.<br />
If the file already exists, the fopen() call will fail by returning FALSE, and PHP will generate a warning.<br />
If the file does not exist, attempt to create it.</td>
</tr>
<tr>
<td>&#8216;b&#8217;</td>
<td>Used in conjunction with one of the other modes. Opening file in binary mode, recommend. It is the default mode.</td>
</tr>
<tr>
<td>&#8216;t&#8217;</td>
<td>Used in conjunction with one of the other modes. Opening file in text mode, not recommend.</td>
</tr>
</tbody>
</table>
<h4>Other Points Requiring Attention</h4>
<ul>
<li>You can open files via FTP, HTTP, and other protocols using fopen(). You can disable this capability by turning off the allow_url_fopen directive in the php.ini file.</li>
<li>The scripts must has permission to access the file you are trying to use.</li>
</ul>
<h3>2. Reading and Writing Files</h3>
<h4>Reading from a File</h4>
<p><code>string fgets ( resource $handle [, int $length ] )</code>Gets a line from file pointer.</p>
<p><code>string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )</code>Identical to fgets(), except that fgetss() attempts to strip any NUL bytes, HTML and PHP tags from the text it reads.</p>
<p><code>array fgetcsv ( resource $handle [, int $length [, string $delimiter = ',' [, string $enclosure = '"' [, string $escape='\\']]]] )</code>Similar to fgets() except that fgetcsv() parses the line it reads for fields in CSV format and returns an array containing the fields read.</p>
<p><code>string fgetc ( resource $handle )</code>Gets a character from the given file pointer.</p>
<p><code>string fread ( resource $handle , int $length )</code>Reads up to length bytes from the file pointer referenced by handle.</p>
<p><code>int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )</code>Reads a file and writes it to the output buffer.</p>
<p><code>int fpassthru ( resource $handle )</code>Reads to EOF on the given file pointer from the current position and writes the results to the output buffer.</p>
<p><code>array file ( string $filename [, int $flags = 0 [, resource $context ]] )</code>Reads an entire file into an array, each element of the array corresponds to a line in the file, with the newline still attached.</p>
<p><code>string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen = -1 ]]]] )</code>This function is similar to file(), except that file_get_contents() returns the file in a string , starting at the specified offset up to maxlen bytes.</p>
<h4>Writing to a File</h4>
<p><code>int fwrite ( resource $handle , string $string [, int $length ] )</code>Writes the contents of string to the file stream pointed to by handle.</p>
<p><code>int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )</code>This function is identical to calling fopen(), fwrite() and fclose() successively to write data to a file. If filename does not exist, the file is created. Otherwise, the existing file is overwritten, unless the FILE_APPEND flags is set.</p>
<h4>Navigating Inside a File</h4>
<p><code>bool rewind ( resource $handle )</code>Sets the file position indicator for handle to the beginning of the file stream.</p>
<p><code>int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )</code>Sets the file position indicator for the file referenced by handle. The new position, measured in bytes from the beginning of the file, is obtained by adding offset to the position specified by whence.</p>
<p><code>int ftell ( resource $handle )</code>Returns the position of the file pointer referenced by handle.</p>
<p><code>bool feof ( resource $handle )</code>Tests for end-of-file on a file pointer.</p>
<h3>3. Other Useful File Functions</h3>
<p><code>bool fclose ( resource $handle )</code>The file pointed to by handle is closed.</p>
<p><code>bool file_exists ( string $filename )</code>Checks whether a file or directory exists.</p>
<p><code>int filesize ( string $filename )</code>Gets the size for the given file.</p>
<p><code>bool unlink ( string $filename [, resource $context ] )</code>Deletes filename. There is no function called delete.</p>
<p><code>bool flock ( resource $handle , int $operation [, int &amp;$wouldblock ] )</code>Locks or releases a file.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peptop.com/web/php-study-notes-storing-retrieving-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Study Notes &#8211; Crash Course</title>
		<link>http://www.peptop.com/web/php-study-notes-crash-course/</link>
		<comments>http://www.peptop.com/web/php-study-notes-crash-course/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 09:08:15 +0000</pubDate>
		<dc:creator>Pep</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Study Notes]]></category>

		<guid isPermaLink="false">http://www.peptop.com/?p=129</guid>
		<description><![CDATA[Crash course section of the PHP study notes, including the PHP tag styles, comment styles, variables, constants, variable scope, variables related functions, conditional statements, operators, and an overview of precedence.]]></description>
			<content:encoded><![CDATA[<p>Chapter 1 , from a  C/C++ programmer&#8217;s point of view, introduced the PHP basic syntax, variables, constants, variables and constants scope, operator, operator precedence, variable functions, conditional statements, etc for Crash Course.<br />
<span id="more-129"></span></p>
<h3>1. Basic Syntax</h3>
<h4>PHP Tags</h4>
<ul>
<li>XML style (recommended):<br />
<code>&lt;?php echo '&lt;p&gt;Order processed.&lt;/p&gt;'; ?&gt;</code></li>
<li>Short style (need to enable short_open_tag setting):<br />
<code>&lt;? echo '&lt;p&gt;Order processed.&lt;/p&gt;'; ?&gt;</code></li>
<li>Script style:<br />
<code>&lt;script language='php'&gt; echo '&lt;p&gt;Order processed.&lt;/p&gt;'; &lt;/script&gt;</code></li>
<li>ASP style (Need to enable asp_tags setting, not recommended):<br />
<code>&lt;% echo '&lt;p&gt;Order processed.&lt;/p&gt;'; %&gt;</code></li>
</ul>
<h4>Comments</h4>
<ul>
<li>Multiline comments: /*&#8230;*/</li>
<li>single-line comments: //&#8230; or #&#8230;</li>
</ul>
<h3>2. Variables</h3>
<h4>Identifiers Naming Rules</h4>
<ul>
<li>Variables must start with $</li>
<li>Identifiers can be of any length and can consist of letters, numbers, and under-scores</li>
<li>Identifiers cannot begin with a digit</li>
<li>In PHP, identifiers are case sensitive</li>
<li>Function names are not case sensitive, and a variable can have the same name as a function (not make sense enough)</li>
</ul>
<h4>Variable Types</h4>
<p>PHP supports the following basic data types: Integer, Float, String, Boolean, Array, Object.<br />
Two special types are also available: NULL and Resource.</p>
<p>PHP is called weakly typed, or dynamically typed language. So when you needn&#8217;t explicitly specify the type when you declare a variable, PHP changes the variable type according to what is stored in it at any given time. In addition, the variables need not declare a variable before using it.</p>
<h4>Variable Variables</h4>
<p>Variable variables enable you to change the name of a variable dynamically.<br />
<code>$varname = 'tireqty';<br />
$$varname = 5;<br />
This is exactly equivalent to<br />
$tireqty = 5;</code></p>
<h3>3. Constants</h3>
<h4>Declaring Constants</h4>
<p><code>define('USER_NAME', 'admin');<br />
define('IS_ADMIN', TRUE); </code></p>
<h4>Data Type</h4>
<p>Constants can store only boolean, integer, float, or string data.</p>
<h4>Using Constants</h4>
<p>You needn&#8217;t type a &#8220;$&#8221; before a constant name.</p>
<h3>4. Variable and Constant Scope</h3>
<ul>
<li>Built-in superglobal variables are visible everywhere within a script.</li>
<li>Constants, once declared, are always visible globally; that is, they can be used inside and outside functions.</li>
<li>Global variables declared in a script are visible throughout that script, but not inside functions except you declare global refer:<br />
<code>&lt;?php<br />
$a = 1;<br />
$b = 2;<br />
function Sum()<br />
{<br />
global $a, $b;	//global refer<br />
$b = $a + $b;<br />
}<br />
Sum();<br />
echo $b;	//Output result is 3<br />
?&gt;</code></li>
<li>Variables created inside functions are local to the function and cease to exist when the function terminates.</li>
<li>Variables created inside functions and declared as static are invisible from outside the function but keep their value between one execution of the function and the next.</li>
</ul>
<h3>5. Operators</h3>
<h4>Arithmetic Operators</h4>
<p>Including &#8220;+,-,*,/,% (Modulus) &#8220;.</p>
<h4>String Operators</h4>
<p>&#8220;.&#8221;  String concatenation operator adds two strings and generates and stores a result.</p>
<h4>Assignment and Combined Assignment Operators</h4>
<p>Including &#8220;=,+=,-=,*=,/=,%=,.=&#8221;, similar to the C language.</p>
<h4>Self-increment and Self-decrement Operators</h4>
<p>Including &#8220;++,- -&#8221;, like the C language, just understand the difference between $a++ and ++a$.</p>
<h4>Reference Operator</h4>
<p><code>$a = 5;<br />
$b = &amp;$a;<br />
$a = 7; // $a and $b are now both 7<br />
</code></p>
<h4>Comparison Operators</h4>
<p>Including &#8220;==,===,!=,!==,&lt;&gt;,&lt;,&gt;,&lt;=,&gt;=&#8221;.<br />
Note that &#8220;7&#8243; == 7 return TRUE, while 7 === &#8220;7&#8243; returns False, because the identical operator (===), which returns true only if the two operands are both equal and of the same type.</p>
<h4>Logical Operators</h4>
<p>Including &#8220;!, &amp;&amp;, ||, and, or, xor&#8221;, similar to the C language.</p>
<h4>Bitwise Operators</h4>
<p>Including &#8220;~, &amp;, |, ^, &gt;&gt;, &lt;&lt;&#8221;, similar to the C language.</p>
<h4>Other Operators</h4>
<ul>
<li>&#8220;,,new,-&gt;,(?:)&#8221;  similar to the C language.</li>
<li>&#8220;@&#8221; The error suppression operator (@) can be used in front of any expression.</li>
<li>&#8220;` `&#8221; The execution operator is really a pair of operators—a pair of backticks (&#8220;) , PHP attempts to execute whatever is contained between the backticks as a command at the server’s command line.</li>
</ul>
<h3>6. Operator Precedence</h3>
<p>No need to remember precedence and associativity, you can use parentheses when you are uncertain.</p>
<h3>7. Variables and Types Related Functions</h3>
<ul>
<li>string gettype(mixed var); //Returns a string containing the type name</li>
<li>bool settype(mixed var, string type); //change the type of the var</li>
<li>bool is_array(mixed var); //Checks whether the variable is an array</li>
<li>bool  is_long(mixed var); / is_int() / is_integer() //Checks whether the variable is an integer</li>
<li>bool is_double(mixed var); / is_float() / is_real() //Checks whether the variable is a float</li>
<li>bool is_scalar(mixed var); //Checks whether the variable is a scalar, that is, an integer, boolean, string, or float</li>
<li>bool is_callable(mixed var); //Checks whether the variable is the name of a valid function</li>
<li>There are similar functions like is_string(), is_bool(), is_object(), is_resource(), is_null() etc.</li>
<li>bool isset ( mixed var [, mixed var [, ...]]); //Returns true if it exists and false otherwise</li>
<li>void unset ( mixed var [, mixed var [, ...]]); //Gets rid of the variable it is passed</li>
<li>bool empty ( mixed var [, mixed var [, ...]]); //Checks to see whether a variable exists and has a nonempty, nonzero value</li>
</ul>
<h3>8. Conditional statements</h3>
<ul>
<li>if/elseif/else</li>
<li>switch</li>
<li>while/do&#8230;while</li>
<li>for/foreach</li>
<li>break</li>
</ul>
<p>All these conditional and loop statements are similar to other programming languages.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peptop.com/web/php-study-notes-crash-course/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Study Notes</title>
		<link>http://www.peptop.com/web/php-study-notes/</link>
		<comments>http://www.peptop.com/web/php-study-notes/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 08:37:59 +0000</pubDate>
		<dc:creator>Pep</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Study Notes]]></category>

		<guid isPermaLink="false">http://www.peptop.com/?p=125</guid>
		<description><![CDATA[Include introduction of "PHP and MySQL Web Development 4th Edition" and the directory of  PHP study notes.]]></description>
			<content:encoded><![CDATA[<p>For PHP, I can read it, modify it, but can not write it, after the World Cup, I intend to make a systematic study of PHP.<br />
The reference book is &#8220;PHP and MySQL Web Development 4th Edition&#8221; written by Luke Welling and Laura Thomson, this book is known as  &#8220;PHP Bible&#8221; .</p>
<p>As usual, the book briefly introduced what is PHP, MySQL, Why use PHP / MySQL, as well as their strengths and so on, quickly scanned.</p>
<p>Followed by What is new in PHP5:</p>
<ul>
<li> Better object-oriented support built around a completely new object model</li>
<li> Exceptions for scalable, maintainable error and exception handling </li>
<li> built-in SimpleXML for easy handling of XML data </li>
</ul>
<p>And key features of PHP 5.3 (At the time of writing, PHP 5.2 was the current version) for example, namespaces (very important) and so on.<span id="more-125"></span></p>
<h3> Directory of PHP Study Notes </h3>
<ol>
<li> <a href="/web/php-study-notes-crash-course/">PHP Crash Course</a> </li>
<li> <a href="/web/php-study-notes-storing-retrieving-data/">Storing and Retrieving Data</a> </li>
<li> Using Arrays </li>
<li> String Manipulation and Regular Expressions </li>
<li> Reusing Code and Writing Functions</li>
<li> Object-Oriented PHP </li>
<li> Error and Exception Handling </li>
<li> &#8230;&#8230;</li>
<li> To be added </li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.peptop.com/web/php-study-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Doodle Pac-Man Source Code</title>
		<link>http://www.peptop.com/web/google-doodle-pac-man-source-code/</link>
		<comments>http://www.peptop.com/web/google-doodle-pac-man-source-code/#comments</comments>
		<pubDate>Sat, 22 May 2010 07:09:29 +0000</pubDate>
		<dc:creator>Pep</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Google Doodle]]></category>
		<category><![CDATA[PacMan]]></category>
		<category><![CDATA[Source Code]]></category>

		<guid isPermaLink="false">http://www.peptop.com/?p=113</guid>
		<description><![CDATA[Provides extracted Pac-Man game source code from Google Doodle, including online demos and JavaScript source code package to download.]]></description>
			<content:encoded><![CDATA[<p>Google has unveiled a Pac-Man doodle to celebrate the game&#8217;s 30th anniversary. You can play the game on the Google homepage.</p>
<p>The Logo on the homepage of Google can be used directly as a Pac-Man game to play, to support double and  to support keyboard / mouse operation, a total of more than 200 levels.</p>
<p>Here is the online demo provided by <a href="http://www.peptop.com/">Pep</a> for researching and collection. Google owns all rights.<br />
Click &#8220;Insert Coin&#8221; to start the game, click twice to start the double game, tested OK in IE / FireFox / Chrome .</p>
<h4>Google Pac-Man Online Demo:</h4>
<p><iframe src="/wp-content/uploads/pacman/pacman.html" height="340px" width="660px" style="overflow:hidden" frameborder="0" ></iframe></p>
<h4>Google Pac-Man Source Code:</h4>
<p><a href="/wp-content/uploads/pacman/pacman.zip" >JavaScript Source Code of Google Pac-Man Doodle</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.peptop.com/web/google-doodle-pac-man-source-code/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>How to Use Self Sign Free SSL Cert on Nginx</title>
		<link>http://www.peptop.com/web/self-sign-free-ssl-cert/</link>
		<comments>http://www.peptop.com/web/self-sign-free-ssl-cert/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 08:39:12 +0000</pubDate>
		<dc:creator>Pep</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[HTTPS]]></category>
		<category><![CDATA[Nginx Configuration]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://www.peptop.com/?p=105</guid>
		<description><![CDATA[Described in Debian5 OS, OpenSSL module, Nginx environment, how to self sign a SSL digital certificates by free, and how to configure Nginx, visit the website with HTTPS protocol.]]></description>
			<content:encoded><![CDATA[<p>As the HTTP protocol transfer information with plain data, some websites such as shopping, transaction, login and register need to open the HTTPS protocol to increase security, ensure important data like password will not be intercepted and sniffed.</p>
<p>HTTPS need the support of SSL digital certificate, almost every browser trusted CA organizations charge fees when sign digital certificates, and the price is generally 13 U.S. dollars to 50 U.S. dollars per year. (Except StartSSL and PositiveSSL)</p>
<p>If the certificate only for the own use, to prevent the online management of your password has been tapped, you can self sign SSL digital certificate by free.<br />
On Debian5 + OpenSSL + Nginx environment, just follow these steps:<span id="more-105"></span></p>
<h3>1. Generate SSL digital certificate with OpenSSL</h3>
<p><code class="command">openssl genrsa -out privkey.pem 2048<br />
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095<br />
</code><br />
The first command is to generate the user certificate RSA key pair, and not with a password.<br />
The second command is to generate and self sign certificate. At this time, you will be asked to input parameters, random fill, but the Common Name must fill in the domain name of your website, for example: *. yourdomain.com.</p>
<h3>2. Configure and compile Nginx with SSL module</h3>
<p>The Nginx does not support SSL by default, so we need re-configure and compile it, the commands are as follows:<br />
<code class="command">wget http://nginx.org/download/nginx-0.7.65.tar.gz<br />
tar zxvf nginx-0.7.65.tar.gz<br />
cd /root/nginx-0.7.65<br />
./configure --with-http_stub_status_module --with-http_ssl_module<br />
make<br />
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old<br />
cp ./objs/nginx /usr/local/nginx/sbin/nginx<br />
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`<br />
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`<br />
</code><br />
Thees commands are actually a standard Nginx upgrade operation, you shloud replace the directories to your owns.<br />
In addition, you can also comment line CFLAGS = &#8220;$ CFLAGS-g&#8221; in auto/cc/gcc , so to compile Nginx not in Debug mode, saving file size and memory usage, improving the speed.</p>
<h3>3. Modify Nginx configuration file</h3>
<p>Modify corresponding server section in nginx.conf:<br />
<code>	server<br />
	{<br />
		listen 443;<br />
		ssl on;<br />
		ssl_certificate /etc/ssl/cacert.pem;<br />
		ssl_certificate_key /etc/ssl/privkey.pem;<br />
		server_name www.yourdoamin.com;<br />
		index index.html index.htm index.php;<br />
		root  /home/wwwroot/yourdomain;<br />
		......<br />
		......<br />
	}<br />
</code><br />
You should also change the path of pem files according to actual conditions.</p>
<h3>4. Restart Nginx</h3>
<p>Upload nginx.conf, then test the configuration file, and restart Nginx：<br />
<code class="command">/usr/local/nginx/sbin/nginx -t<br />
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`<br />
</code></p>
<h3>5. Test your website with HTTPS</h3>
<p>Input https://www.yourdomain.com, you will see a security alert dialog like this:<br />
<img src="/wp-content/uploads/2010/03/ssl-cert-security-alert.png" alt="security alert dialog of SSL" /><br />
Because it is for own use, just click View Certificate &#8211; install the certificate, the browser will no longer pop up the alert box.</p>
<p>At this point, you can use the HTTPS protocol visit your website, do not worry about the user name and password will be sniffed during transmission.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peptop.com/web/self-sign-free-ssl-cert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LinLink Official Theme &#8211; Mliho</title>
		<link>http://www.peptop.com/linlink/theme-mliho/</link>
		<comments>http://www.peptop.com/linlink/theme-mliho/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 13:12:24 +0000</pubDate>
		<dc:creator>Pep</dc:creator>
				<category><![CDATA[LinLink]]></category>
		<category><![CDATA[LinLink Theme]]></category>
		<category><![CDATA[Mliho]]></category>

		<guid isPermaLink="false">http://www.peptop.com/?p=83</guid>
		<description><![CDATA[The introducation of LinLink official theme - Mliho, include features, authors and screenshot.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.linlink.net" rel="external"><img src="http://www.peptop.com/wp-content/uploads/2010/01/theme-mliho-thumbnail.jpg" alt="LinLink Official Theme Mliho" class="alignleft" /></a><br />
<h3>Key features: </h3>
<p>Animated Tile Images<br />
Different Background Pictures</p>
<h3>The authors:</h3>
<p>Skyker Software<br />
Mliho.com</p>
<p><span id="more-83"></span></p>
<h3 class="clear">How to install this theme:</h3>
<p><strong>Registered User</strong>: Enter LinLink 5&#8242;s theme mode, click the thumbnail of Mliho theme.<br />
<strong>Trial user</strong>: Download it from <a href="http://www.linlink.net/update/theme/Mliho.zip">here</a>, and unzip the file to LinLink 5&#8242;s theme directory.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peptop.com/linlink/theme-mliho/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LinLink Support</title>
		<link>http://www.peptop.com/linlink/linlink-support/</link>
		<comments>http://www.peptop.com/linlink/linlink-support/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 10:55:40 +0000</pubDate>
		<dc:creator>Pep</dc:creator>
				<category><![CDATA[LinLink]]></category>

		<guid isPermaLink="false">http://www.peptop.com/?p=77</guid>
		<description><![CDATA[Because of lots of spam threads in LinLink Support Forum, we replaced it with this Blog, and we will continue to provide quality services for LinLink users. Ask Any Questions about LinLink]]></description>
			<content:encoded><![CDATA[<p>Because of lots of spam threads in LinLink Support Forum, we replaced it with this Blog, and we will continue to provide quality services for LinLink users.</p>
<p><a href="http://www.peptop.com/linlink/linlink-support/#respond">Ask Any Questions about LinLink</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.peptop.com/linlink/linlink-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google is a real man!</title>
		<link>http://www.peptop.com/others/google-is-a-real-man/</link>
		<comments>http://www.peptop.com/others/google-is-a-real-man/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 07:55:08 +0000</pubDate>
		<dc:creator>Pep</dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.peptop.com/?p=65</guid>
		<description><![CDATA[Google has decided to  stop censoring search results in China.
Some photos about 'Google wins the respect', 'Google is a real man!' and etc. Support #GoogleCN.]]></description>
			<content:encoded><![CDATA[<p>Google, the world&#8217;s leading search engine, has thrown down the gauntlet to Chinese government by announcing it is no longer willing to censor search results on its Chinese version.</p>
<p>&#8220;We have decided we are no longer willing to continue censoring our results on Google.cn, and so over the next few weeks we will be discussing with the Chinese government the basis on which we could operate an unfiltered search engine within the law, if at all. We recognize that this may well mean having to shut down Google.cn, and potentially our offices in China.<br />
The message, headlined &#8220;A New Approach to China&#8221; and signed by David Drummond, Senior vice president of Corporate Development and Chief Legal Officer.</p>
<p><strong>Following photos show the reaction of Chinese people:</strong><br />
<span id="more-65"></span></p>
<h3>Respect paid to Google China with a flower and a note &#8220;Google is a real man&#8221;</h3>
<p><img src="/wp-content/uploads/2010/01/google-real-man.jpg" alt="Google is a Real Man" /></p>
<h3>A man shouts a Chinese slogan, &#8220;Google Niu Bi&#8221; which means &#8220;Google Awesome&#8221;</h3>
<p><img src="/wp-content/uploads/2010/01/google-awesome.jpg" alt="Google Awesome" /></p>
<h3>Google China wins the respect and a bow</h3>
<p><img src="/wp-content/uploads/2010/01/google-win-the-respect-and-bow.jpg" alt="Google win the respect and a bow" /></p>
<h3>Witnessed frequent flower deliveries to Google China with a slogan &#8220;Farewell for reunion&#8221;</h3>
<p><img src="/wp-content/uploads/2010/01/farewell-for-reunion.jpg" alt="Google Awesome" /></p>
<h3>&#8220;Thank you, Google!&#8221;</h3>
<p><img src="/wp-content/uploads/2010/01/thank-you-google.jpg" alt="Thank you, Google" /></p>
<h3>&#8220;Google, I will be right here waiting for you!&#8221;</h3>
<p><img src="/wp-content/uploads/2010/01/google-wait-for-your-back.jpg" alt="Google, wait for your back!" /></p>
<p>Whether Google.cn will leave China or not, whether Google.com will be blocked by Chinese government or not, Google has won the respect of people.</p>
<p>&#8220;<strong>For all the truth that you made me see. For all the joy you brought to my life.</strong>&#8220;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peptop.com/others/google-is-a-real-man/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to migrate from Blogger to WordPress</title>
		<link>http://www.peptop.com/web/migrate-from-blogger-to-wordpress/</link>
		<comments>http://www.peptop.com/web/migrate-from-blogger-to-wordpress/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 10:34:55 +0000</pubDate>
		<dc:creator>Pep</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Berlin Wall]]></category>
		<category><![CDATA[Blogger]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.peptop.com/?p=49</guid>
		<description><![CDATA[Introduced how to migrate from Blogger to WordPress, include three simple steps.]]></description>
			<content:encoded><![CDATA[<p>The day b4 yesterday, I migrated my blog from Blogger to my self-hosting WordPress blog.</p>
<p>The reason is blogger.com blocked by Chinese government, so I can&#8217;t login to update my blog. Although I have my own domain, I even can&#8217;t visit my blog because some ghs servers of Google are blocked too.</p>
<p>After a long waiting, I can&#8217;t bear any more, finally decided to buy a hosting and transfer my blog to WordPress.<br />
<strong>The following are some simple steps: </strong>(You should change peptop.com with your wanted domain)<span id="more-49"></span></p>
<h3>Install WordPress 2.9.1</h3>
<p>Because I have no Fantastico so I have to install WordPress manually, luckily it is not complex.</p>
<ol>
<li>Login to my VPS via Putty with root role.</li>
<li>Download lastest WordPress vis following command:<br />
	<code class="command">wget http://wordpress.org/latest.tar.gz</code></li>
<li>unextract it to the right directory<br />
	<code class="command">tar zxvf latest.tar.gz -C /home/wwwroot/peptop.com</code></li>
<li>Use a control panel or change config file to bind /home/wwwroot/peptop.com/wordpress to www.peptop.com</li>
<li>Use PhpMyAdmin to create a MySQL database.</li>
<li>Change the DB_NAME, DB_USER, DB_PASSWORD settings in wp-config-sample.php and rename it to wp-config.php</li>
<li>Open http://www.peptop.com/wp-admin/install.php in browser, the installation will finish automatically.</li>
</ol>
<h3>Import blog from Blogger to WordPress</h3>
<ol>
<li>Login to new WordPress blog first.</li>
<li>Find &#8220;Tools&#8221; » &#8220;Import&#8221; in left menu panel.</li>
<li>Choose &#8220;Blogger&#8221;.<br />
	The Blogger will verify your account and the WordPress will import your posts and comments automaticlly.</li>
</ol>
<h3>Adjust old posts and comments</h3>
<p>After migration, you have to adjust some categories, edit some posts to fit on the new theme.<br />
If you are brave, you can use PhpMyAdmin open the database and set comments&#8217; parentid fields, with this, the old posts can have threaded comments effect like the following image:<br />
<img src="/wp-content/uploads/2010/01/thread-comment.jpg" alt="thread comment effect"  /></p>
<h3>Conclusion</h3>
<p>Migration from Blogger to WordPress is not that difficult, but in the end it took me several hours to transfer and cost me several dollas for self-hosting. Because the Chinese government blocked almost every free BSP, I will always pay for my blog hosting in future.</p>
<p>&#8220;<strong>Freedom has many difficulties and democracy is not perfect, but we have never had to put a wall up to keep our people in &#8211; to prevent them from leaving us.</strong>&#8220;, said John F. Kennedy under the Berlin Wall.</p>
<p>The Berlin Wall has collapsed for more than 20 years, but the evil Chinese government is building a new wall on the internet, isn&#8217;t it?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peptop.com/web/migrate-from-blogger-to-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Are They Pandas or Dogs?</title>
		<link>http://www.peptop.com/fun/are-they-pandas-or-dogs/</link>
		<comments>http://www.peptop.com/fun/are-they-pandas-or-dogs/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 09:27:00 +0000</pubDate>
		<dc:creator>Pep</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Panda Dog]]></category>

		<guid isPermaLink="false">http://temp.peptop.com/uncategorized/are-they-pandas-or-dogs/</guid>
		<description><![CDATA[The Giant Panda (Ailuropoda melanoleuca, literally meaning &#8220;cat-foot black-and-white&#8221;) is a bear only native to central-western and southwestern China. Although they&#8217;re lovely and cute, it&#8217;s impossible to keep a panda pet because of their rareness. However, some guys disguised their dogs as pandas to meet their desire for having a panda pet. Let&#8217;s look at [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full" title="panda" src="/wp-content/uploads/2009/08/panda.jpg" alt="panda"  />The Giant Panda (Ailuropoda melanoleuca, literally meaning &#8220;cat-foot black-and-white&#8221;) is a bear only native to central-western and southwestern China.</p>
<p>Although they&#8217;re lovely and cute, it&#8217;s impossible to keep a panda pet because of their rareness.</p>
<p>However, some guys disguised their dogs as pandas to meet their desire for having a panda pet.</p>
<p><strong>Let&#8217;s look at some funny &#8220;panda dog&#8221; photos:</strong><span id="more-6"></span><br />
<img src="http://lh3.ggpht.com/_MHj1UrQq-XI/SpT6uN_mLJI/AAAAAAAAAH4/i1_3TfVlr_M/s800/panda_dog1.jpg" alt="a panda dog" /><br />
<strong>A &#8220;panda dog&#8221;.</strong></p>
<p><img src="http://lh3.ggpht.com/_MHj1UrQq-XI/SpT6uQANdxI/AAAAAAAAAH8/33bxdBb_-Oo/s800/panda_dog2.jpg" alt="it's a dog" /><br />
<strong>No doubt about it, it&#8217;s a dog.</strong></p>
<p><img src="http://lh3.ggpht.com/_MHj1UrQq-XI/SpT6uXxl7_I/AAAAAAAAAIA/tXK3VZkkyxw/s800/panda_dog3.jpg" alt="walk a panda" /><br />
<strong>Walk a &#8220;panda&#8221;.</strong></p>
<p><img src="http://lh3.ggpht.com/_MHj1UrQq-XI/SpT6utyMB4I/AAAAAAAAAIE/X-WWguQQBvg/s800/panda_dog4.jpg" alt="peculiar expression" /><br />
<strong>Please don&#8217;t look at me with a very peculiar expression.</strong></p>
<p><img src="http://lh6.ggpht.com/_MHj1UrQq-XI/SpT_roI3iGI/AAAAAAAAAIY/CelKfEJ1yTs/s800/panda_cat.jpg" alt="a panda cat" /><br />
<strong>A &#8220;panda cat&#8221;.</strong></p>
<p><img src="http://lh4.ggpht.com/_MHj1UrQq-XI/SpT_rt9ZnqI/AAAAAAAAAIU/11Qyfpb5otQ/s800/panda.jpg" alt="a panda cat" /><br />
<strong>Trust your judgement, it&#8217;s a real panda *_^ .</strong></p>
<p>Visit my picasa album to find more <a href="http://picasaweb.google.com/PepTop.com/PandasOrDogs" rel="external nofollow">&#8220;panda dog&#8221; photos</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.peptop.com/fun/are-they-pandas-or-dogs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
