<?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>Hello World</title>
	<atom:link href="http://blog.sunner.cn/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sunner.cn</link>
	<description>孙志岗的博客</description>
	<lastBuildDate>Sun, 05 Sep 2010 23:26:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>强制Makefile中的一条必须执行</title>
		<link>http://blog.sunner.cn/2010/09/force-makefile/</link>
		<comments>http://blog.sunner.cn/2010/09/force-makefile/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 04:49:39 +0000</pubDate>
		<dc:creator>Sunner</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.sunner.cn/?p=546</guid>
		<description><![CDATA[一个工程有多个子目录。每个子目录下都有一个Makefile，将该子目录下的源代码编译为一个.o文件。根目录下的Makefile控制将这些.o链接到一起形成最终的执行文件。执行文件只依赖.o文件，对每个.o的处理规则都是进入其子目录然后make。这种布局会遇到一个问题，就是子目录里有源码的修改，根目录Makefile定义的依赖关系里检测不到，就不会重新编译。被这个问题困扰很久，今天看qt的Makefile，发现了一个很巧的解决方法。 subdir1/sub1.o: FORCE cd subdir1 &#38;&#38; make &#160; subdir2/sub2.o: FORCE cd subdir2 &#38;&#38; make &#160; FORCE:]]></description>
			<content:encoded><![CDATA[<p>一个工程有多个子目录。每个子目录下都有一个Makefile，将该子目录下的源代码编译为一个.o文件。根目录下的Makefile控制将这些.o链接到一起形成最终的执行文件。执行文件只依赖.o文件，对每个.o的处理规则都是进入其子目录然后make。这种布局会遇到一个问题，就是子目录里有源码的修改，根目录Makefile定义的依赖关系里检测不到，就不会重新编译。被这个问题困扰很久，今天看qt的Makefile，发现了一个很巧的解决方法。</p>

<div class="wp_syntax"><div class="code"><pre class="makefile" style="font-family:monospace;">subdir1/sub1.o: FORCE
    cd subdir1 &amp;&amp; make
&nbsp;
subdir2/sub2.o: FORCE
    cd subdir2 &amp;&amp; make
&nbsp;
FORCE:</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.sunner.cn/2010/09/force-makefile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>给一台没有系统且不能从光驱、U盘、PXE等启动的电脑安装Linux</title>
		<link>http://blog.sunner.cn/2010/09/install-linux-on-old-machine/</link>
		<comments>http://blog.sunner.cn/2010/09/install-linux-on-old-machine/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 15:28:12 +0000</pubDate>
		<dc:creator>Sunner</dc:creator>
				<category><![CDATA[NULL]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.sunner.cn/?p=544</guid>
		<description><![CDATA[把硬盘拆下来，挂到别的机器上，并且拆下那台机器的硬盘； 在别的机器上安装Linux； 硬盘换回原先的机器； done 同样的方法用来安装Windows，硬件的相似度必备比较高才行。Linux貌似并不保存硬件信息，而是每次启动时重新检测。至少我这两台年龄相差6岁的机器没有半点儿相同的硬件。]]></description>
			<content:encoded><![CDATA[<ol>
<li>把硬盘拆下来，挂到别的机器上，并且拆下那台机器的硬盘；</li>
<li>在别的机器上安装Linux；</li>
<li>硬盘换回原先的机器；</li>
<li>done</li>
</ol>
<p>同样的方法用来安装Windows，硬件的相似度必备比较高才行。Linux貌似并不保存硬件信息，而是每次启动时重新检测。至少我这两台年龄相差6岁的机器没有半点儿相同的硬件。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sunner.cn/2010/09/install-linux-on-old-machine/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Android内核开发的几个便捷命令</title>
		<link>http://blog.sunner.cn/2010/09/android-kernel-development-env/</link>
		<comments>http://blog.sunner.cn/2010/09/android-kernel-development-env/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 10:48:32 +0000</pubDate>
		<dc:creator>Sunner</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.sunner.cn/?p=541</guid>
		<description><![CDATA[在android源码的根目录下执行: . build/envsetup.sh 可以获得下列非常方便的命令： croot:   Changes directory to the top of the tree. m:       Makes from the top of the tree. mm:      Builds all of the modules in the current directory. mmm:     Builds all of the modules in the supplied directories. cgrep:   Greps on all local [...]]]></description>
			<content:encoded><![CDATA[<p>在android源码的根目录下执行:</p>
<p>. build/envsetup.sh</p>
<p>可以获得下列非常方便的命令：</p>
<div id="_mcePaste">croot:   Changes directory to the top of the tree.</div>
<div id="_mcePaste">m:       Makes from the top of the tree.</div>
<div id="_mcePaste">mm:      Builds all of the modules in the current directory.</div>
<div id="_mcePaste">mmm:     Builds all of the modules in the supplied directories.</div>
<div id="_mcePaste">cgrep:   Greps on all local C/C++ files.</div>
<div id="_mcePaste">jgrep:   Greps on all local Java files.</div>
<div id="_mcePaste">resgrep: Greps on all local res/*.xml files.</div>
<div id="_mcePaste">godir:   Go to the directory containing a file.</div>
<p>当我第一次获知它们的时候，内流满面啊……</p>
<p>用“help”命令可以获知更多……</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sunner.cn/2010/09/android-kernel-development-env/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>moodle的隐藏功能</title>
		<link>http://blog.sunner.cn/2010/08/hidden-features-in-moodle/</link>
		<comments>http://blog.sunner.cn/2010/08/hidden-features-in-moodle/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 03:01:21 +0000</pubDate>
		<dc:creator>Sunner</dc:creator>
				<category><![CDATA[NULL]]></category>
		<category><![CDATA[moodle_dev]]></category>
		<category><![CDATA[moodle_using]]></category>

		<guid isPermaLink="false">http://blog.sunner.cn/?p=533</guid>
		<description><![CDATA[当了解到这些隐藏功能后，我不得不对Moodle的喜爱又增加了一层。本文慢慢搜集它们，持续补充。 隐藏功能是那些在moodle界面中找不到，必须手工在地址栏输入url才能使用的功能。本文后面只给出每个url相对于moodle root的部分，比如“/foo/bar.php”意味着应该访问“http://www.mymoodle.com/foo/bar.php”。 1. 系统管理 1.1 数据库性能监视 /admin/dbperformance.php 1.2 把MySQL数据库从MyISAM格式转换到InnoDB格式 /admin/innodb.php 因为MyISAM不支持事务等缺点，从Moodle 2.0开始，InnoDB将成为官方推荐的格式。详情可以参考MDL-23682，moodler们对MyISAM的态度几近于愤怒。 1.3 体检中心 /admin/health.php 自动检查系统潜在的问题，并给出建议性的解决方案。这个很值得每隔一段时间就用一用。 1.4 全数据库替换 /admin/replace.php 对整个moodle数据库进行文本搜索和替换。比如网站更换了域名，就可以用一下这个。 2.辅助开发 2.1 调试发出的email 把所有发出的email都重定向到一个log文件中。 脚本在/admin/mailout-debugger.php，但它不是从浏览器里访问的。它的注释详细说明了使用方法。 3. 彩蛋 3.1 列出所有上传了头像图片用户的头像 /userpix/index.php]]></description>
			<content:encoded><![CDATA[<p>当了解到这些隐藏功能后，我不得不对Moodle的喜爱又增加了一层。本文慢慢搜集它们，持续补充。</p>
<p>隐藏功能是那些在moodle界面中找不到，必须手工在地址栏输入url才能使用的功能。本文后面只给出每个url相对于moodle root的部分，比如“/foo/bar.php”意味着应该访问“http://www.mymoodle.com/foo/bar.php”。</p>
<h2>1. 系统管理</h2>
<p><strong>1.1 数据库性能监视</strong></p>
<p>/admin/dbperformance.php</p>
<h3>1.2 把MySQL数据库从MyISAM格式转换到InnoDB格式</h3>
<p>/admin/innodb.php</p>
<p>因为MyISAM不支持事务等缺点，从Moodle 2.0开始，InnoDB将成为官方推荐的格式。详情可以参考<a href="http://tracker.moodle.org/browse/MDL-23682">MDL-23682</a>，moodler们对MyISAM的态度几近于愤怒。</p>
<h3>1.3 体检中心</h3>
<p>/admin/health.php</p>
<p>自动检查系统潜在的问题，并给出建议性的解决方案。这个很值得每隔一段时间就用一用。</p>
<h3>1.4 全数据库替换</h3>
<p>/admin/replace.php</p>
<p>对整个moodle数据库进行文本搜索和替换。比如网站更换了域名，就可以用一下这个。</p>
<p><strong>2.辅助开发</strong></p>
<h3>2.1 调试发出的email</h3>
<p>把所有发出的email都重定向到一个log文件中。</p>
<p>脚本在/admin/mailout-debugger.php，但它不是从浏览器里访问的。它的注释详细说明了使用方法。</p>
<h2>3. 彩蛋</h2>
<h3>3.1 列出所有上传了头像图片用户的头像</h3>
<p>/userpix/index.php</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sunner.cn/2010/08/hidden-features-in-moodle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android 2.2 (Froyo) 中文联系人拼音检索增强补丁</title>
		<link>http://blog.sunner.cn/2010/08/patch-for-android-2-2-froyo-enchance-lookuping-chinese-contacts/</link>
		<comments>http://blog.sunner.cn/2010/08/patch-for-android-2-2-froyo-enchance-lookuping-chinese-contacts/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 10:36:37 +0000</pubDate>
		<dc:creator>Sunner</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.sunner.cn/?p=523</guid>
		<description><![CDATA[Froyo终于开始官方支持在任何系统语言下都能把中文联系人按照拼音顺序排序，并且支持全拼和简拼（可以从名字中间任意一字的拼音开始）检索。这要感谢一位叫Bai Tao的工程师。 不过，google的改进有一点不如我以前的补丁，只是很小的一点，就是用“gdg”可以搜索到“郭德纲”，而“gdgang”不行。gdgang这种简全混合的模式在同一简拼的联系人较多的时候，只要比纯简拼多敲1-2个字符，就能让检索的结果好很多。比如“gdga”可以过滤掉郭得乖、国大贵、关定格等等。 下面这个补丁，就补全了这个功能： --- a/src/com/android/providers/contacts/ContactLocaleUtils.java +++ b/src/com/android/providers/contacts/ContactLocaleUtils.java @@ -102,7 +102,13 @@ public class ContactLocaleUtils &#123; final Token token = tokens.get&#40;i&#41;; if &#40;Token.PINYIN == token.type&#41; &#123; keyPinyin.insert&#40;0, token.target&#41;; - keyInitial.insert&#40;0, token.target.charAt&#40;0&#41;&#41;; + if &#40;i == tokenCount - 1&#41; &#123; + // Use all characters of the last token + keyInitial.insert&#40;0, token.target&#41;; + &#125; else &#123; [...]]]></description>
			<content:encoded><![CDATA[<p>Froyo终于开始官方支持在任何系统语言下都能把中文联系人按照拼音顺序排序，并且支持全拼和简拼（可以从名字中间任意一字的拼音开始）检索。这要感谢一位叫<a href="http://android.git.kernel.org/?p=platform/packages/providers/ContactsProvider.git;a=history;f=src/com/android/providers/contacts/ContactLocaleUtils.java;h=1c2ad979efdef07f7bcc2354e8f5656c51b8dd51;hb=HEAD">Bai Tao</a>的工程师。</p>
<p>不过，google的改进有一点不如我以前的补丁，只是很小的一点，就是用“gdg”可以搜索到“郭德纲”，而“gdgang”不行。gdgang这种简全混合的模式在同一简拼的联系人较多的时候，只要比纯简拼多敲1-2个字符，就能让检索的结果好很多。比如“gdga”可以过滤掉郭得乖、国大贵、关定格等等。</p>
<p>下面这个补丁，就补全了这个功能：</p>

<div class="wp_syntax"><div class="code"><pre class="diff" style="font-family:monospace;">--- a/src/com/android/providers/contacts/ContactLocaleUtils.java
<span style="color: #888822;">+++ b/src/com/android/providers/contacts/ContactLocaleUtils.java</span>
<span style="color: #440088;">@@ -<span style="">102</span>,<span style="">7</span> +<span style="">102</span>,<span style="">13</span> @@ public class ContactLocaleUtils <span style="">&#123;</span></span>
                 final Token token = tokens.get<span style="">&#40;</span>i<span style="">&#41;</span>;
                 if <span style="">&#40;</span>Token.PINYIN == token.type<span style="">&#41;</span> <span style="">&#123;</span>
                     keyPinyin.insert<span style="">&#40;</span><span style="">0</span>, token.target<span style="">&#41;</span>;
<span style="color: #991111;">-                    keyInitial.insert<span style="">&#40;</span><span style="">0</span>, token.target.charAt<span style="">&#40;</span><span style="">0</span><span style="">&#41;</span><span style="">&#41;</span>;</span>
<span style="color: #00b000;">+                    if <span style="">&#40;</span>i == tokenCount - <span style="">1</span><span style="">&#41;</span> <span style="">&#123;</span></span>
<span style="color: #00b000;">+                        // Use all characters of the last token</span>
<span style="color: #00b000;">+                        keyInitial.insert<span style="">&#40;</span><span style="">0</span>, token.target<span style="">&#41;</span>;</span>
<span style="color: #00b000;">+                    <span style="">&#125;</span> else <span style="">&#123;</span></span>
<span style="color: #00b000;">+                        // Use the first character of other tokens</span>
<span style="color: #00b000;">+                        keyInitial.insert<span style="">&#40;</span><span style="">0</span>, token.target.charAt<span style="">&#40;</span><span style="">0</span><span style="">&#41;</span><span style="">&#41;</span>;</span>
<span style="color: #00b000;">+                    <span style="">&#125;</span></span>
                 <span style="">&#125;</span> else if <span style="">&#40;</span>Token.LATIN == token.type<span style="">&#41;</span> <span style="">&#123;</span>
                     // Avoid adding space at the end of String.
                     if <span style="">&#40;</span>keyPinyin.length<span style="">&#40;</span><span style="">&#41;</span> &gt; <span style="">0</span><span style="">&#41;</span> <span style="">&#123;</span>
<span style="color: #440088;">@@ -<span style="">112</span>,<span style="">7</span> +<span style="">118</span>,<span style="">13</span> @@ public class ContactLocaleUtils <span style="">&#123;</span></span>
                         keyOrignal.insert<span style="">&#40;</span><span style="">0</span>, ' '<span style="">&#41;</span>;
                     <span style="">&#125;</span>
                     keyPinyin.insert<span style="">&#40;</span><span style="">0</span>, token.source<span style="">&#41;</span>;
<span style="color: #991111;">-                    keyInitial.insert<span style="">&#40;</span><span style="">0</span>, token.source.charAt<span style="">&#40;</span><span style="">0</span><span style="">&#41;</span><span style="">&#41;</span>;</span>
<span style="color: #00b000;">+                    if <span style="">&#40;</span>i == tokenCount - <span style="">1</span><span style="">&#41;</span> <span style="">&#123;</span></span>
<span style="color: #00b000;">+                        // Use all characters of the last token</span>
<span style="color: #00b000;">+                        keyInitial.insert<span style="">&#40;</span><span style="">0</span>, token.source<span style="">&#41;</span>;</span>
<span style="color: #00b000;">+                    <span style="">&#125;</span> else <span style="">&#123;</span></span>
<span style="color: #00b000;">+                        // Use the first character of other tokens</span>
<span style="color: #00b000;">+                        keyInitial.insert<span style="">&#40;</span><span style="">0</span>, token.source.charAt<span style="">&#40;</span><span style="">0</span><span style="">&#41;</span><span style="">&#41;</span>;</span>
<span style="color: #00b000;">+                    <span style="">&#125;</span></span>
                 <span style="">&#125;</span>
                 keyOrignal.insert<span style="">&#40;</span><span style="">0</span>, token.source<span style="">&#41;</span>;
                 keys.add<span style="">&#40;</span>keyOrignal.toString<span style="">&#40;</span><span style="">&#41;</span><span style="">&#41;</span>;</pre></div></div>

<p>我已经编译好一个，安装方法如下：</p>
<ol>
<li>下载<a href="http://blog.sunner.cn/wp-content/uploads/2010/08/ContactsProvider.apk">ContactsProvider.apk</a>，通过adb、Root Explorer等覆盖Android系统的/system/app/下的同名文件；或者下载<a href="http://blog.sunner.cn/wp-content/uploads/2010/08/pyin-patch-froyo-0.1.zip">pyin-patch-froyo-0.1.zip</a>，用刷rom的方法刷一下。</li>
<li>更改两次系统的语言（比如：中文-&gt;英文-&gt;中文），并且更改后等一小会儿，让系统在后台刷新联系人检索关键词数据库。</li>
<li>搞定！</li>
</ol>
<p>以上内容在CM 6.0 RC3 for G1测试通过。理论上说，只要是2.2的Rom应该都能用，除非厂商自己在ContactsProvider里动了手脚。</p>
<p>欢迎反馈使用情况。如果比较多人喜欢这个，可以考虑提交给google&#8230;&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sunner.cn/2010/08/patch-for-android-2-2-froyo-enchance-lookuping-chinese-contacts/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Linux内核源码中寻找系统调用入口</title>
		<link>http://blog.sunner.cn/2010/08/search-syscall-entries-in-linux-kernel-source/</link>
		<comments>http://blog.sunner.cn/2010/08/search-syscall-entries-in-linux-kernel-source/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 04:24:52 +0000</pubDate>
		<dc:creator>Sunner</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.sunner.cn/?p=515</guid>
		<description><![CDATA[在内核源码目录下使用下面命令： grep SYSCALL_DEFINE&#91;0-6&#93;\&#40;XXXX * -R --include=*.c XXXX可以替换为任何系统调用名。未必能找到所有的，八九不离十吧。至少2.6.32下是这样。]]></description>
			<content:encoded><![CDATA[<p>在内核源码目录下使用下面命令：</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">grep</span> SYSCALL_DEFINE<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">0</span>-<span style="color: #000000;">6</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>\<span style="color: #7a0874; font-weight: bold;">&#40;</span>XXXX <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #660033;">-R</span> <span style="color: #660033;">--include</span>=<span style="color: #000000; font-weight: bold;">*</span>.c</pre></div></div>

<p>XXXX可以替换为任何系统调用名。未必能找到所有的，八九不离十吧。至少2.6.32下是这样。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sunner.cn/2010/08/search-syscall-entries-in-linux-kernel-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>想不人云亦云，好难啊</title>
		<link>http://blog.sunner.cn/2010/08/hard-to-think-differently/</link>
		<comments>http://blog.sunner.cn/2010/08/hard-to-think-differently/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 05:52:16 +0000</pubDate>
		<dc:creator>Sunner</dc:creator>
				<category><![CDATA[生活]]></category>
		<category><![CDATA[感悟]]></category>

		<guid isPermaLink="false">http://blog.sunner.cn/?p=512</guid>
		<description><![CDATA[前两天在buzz上reshare了一篇文章，讲的是有人真正做了一次温水煮青蛙的实验，结果与广泛传播的故事完全不一样，文火逐渐加温的水中的青蛙，全都安全地跳出去了。然后，文章用加粗的字体强调：“即便所有人都认同并且经常说的道理，也可能是错的。那些被社会普遍认定的真理，也可能是谎言。凡事一定要经过亲自实验、调查、思考，不要人云亦云。” 这个故事和结论是很有震撼力的，好几个朋友也都对它进行了reshare。这两天我也时不时地回味几下，以提醒自己不要人云亦云。但是就在刚才，我突然想到，无论我reshare的动作，还是后来的思考，恰恰都是在人云亦云啊！就算流传很久的故事是杜撰的，那么这篇文章的故事就肯定不是杜撰的吗？按照这篇文章的精神，我应该是去搞两只青蛙，亲自煮煮看，才算真的“亲自实验、调查、思考，不要人云亦云”。 一篇反对人云亦云的文章，只是改变了我对“人云”的认识，并没有改变我“亦云”的习惯，挺讽刺。这说明什么？说明在我的意识中，打破“人云”是很容易的，而改变“亦云”是很难的。 谁知道哪里能买到活青蛙？]]></description>
			<content:encoded><![CDATA[<p>前两天在buzz上reshare了<a href="http://www.google.com/buzz/sunner/LYcQASHDu5H/%E9%9D%92%E8%9B%99%E6%9C%89%E9%82%A3%E4%B9%88%E8%A0%A2%E5%90%97-%E5%8F%A6%E4%B8%80%E4%B8%AA-%E6%B8%A9%E6%B0%B4%E7%85%AE">一篇文章</a>，讲的是有人真正做了一次温水煮青蛙的实验，结果与广泛传播的故事完全不一样，文火逐渐加温的水中的青蛙，全都安全地跳出去了。然后，文章用加粗的字体强调：“即便所有人都认同并且经常说的道理，也可能是错的。那些被社会普遍认定的真理，也可能是谎言。凡事一定要经过亲自实验、调查、思考，不要人云亦云。”</p>
<p>这个故事和结论是很有震撼力的，好几个朋友也都对它进行了reshare。这两天我也时不时地回味几下，以提醒自己不要人云亦云。但是就在刚才，我突然想到，无论我reshare的动作，还是后来的思考，恰恰都是在人云亦云啊！就算流传很久的故事是杜撰的，那么这篇文章的故事就肯定不是杜撰的吗？按照这篇文章的精神，我应该是去搞两只青蛙，亲自煮煮看，才算真的“亲自实验、调查、思考，不要人云亦云”。</p>
<p>一篇反对人云亦云的文章，只是改变了我对“人云”的认识，并没有改变我“亦云”的习惯，挺讽刺。这说明什么？说明在我的意识中，打破“人云”是很容易的，而改变“亦云”是很难的。</p>
<p>谁知道哪里能买到活青蛙？</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sunner.cn/2010/08/hard-to-think-differently/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>最难了解的是自己</title>
		<link>http://blog.sunner.cn/2010/08/hard-to-know-yourself/</link>
		<comments>http://blog.sunner.cn/2010/08/hard-to-know-yourself/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 03:35:30 +0000</pubDate>
		<dc:creator>Sunner</dc:creator>
				<category><![CDATA[教书匠]]></category>
		<category><![CDATA[感悟]]></category>
		<category><![CDATA[教学]]></category>
		<category><![CDATA[评教]]></category>

		<guid isPermaLink="false">http://blog.sunner.cn/?p=508</guid>
		<description><![CDATA[昨日偶发一想法，给评师网发了一封信，质问为什么我的页面里的负面评价都被删除了。其实很久以前就发现了，只是昨天才想起来该问问他们。 答复说：“评师网并未删除任何与教学有关非重复发表的负面评论，只是将所有负面评论予以隐藏，只提供老师本人查看，老师用户的此项功能将在近期放出。” 我猜想，评师网一定是受到了强大的、来自各色教师的压力，才决定这么做的。大约半年多前，我曾经和某高校教师讨论过评师网。他当时很愤慨地说，“高校教师又不像明星那样是公众人物，凭什么要被摆到明面上被大众评论？”我相信他的想法在教师圈里应该是主流的。评师网为了生存，就自然得选择主动过滤掉负面的评论，创造和谐景色。 最难了解的是自己。这里的“难”有两层含义。一层是“不容易”，不容易获得别人对自己的客观评价，尤其是负面评价；另一层是“不愿意”，不愿意听到负面评价，让自己心安理得地活在一片美好中，并让自己相信那是真实的。 高中时候我曾经非常主动征询周围同学对我的意见，让他们帮我挑缺点。在等待回应的时候，我的心里是其实是“不愿意”听到不好的话的，所以我听到的真的都是好话。也许是我的表情在暗示他们别说难听的，也许是我用快速的回答抹杀了他们在一番赞美然后说“但是”的机会。反正我挺美滋滋的，觉得自己真的可能是天下第一大好人。 大学时，为了证明自己真是第一大好人，我开始另一种尝试：四处树敌。这里有点儿言重了，所谓树敌不过就是故意很直白地当面指出别人的这不好那不行。确实真的惹恼了不少人，换回的是很多反击。于是，我终于有机会重新认识自己了。值得一提的是，我惹恼的人，现在都是很好的朋友。难道大家本质上都是喜欢被人当面品头论足？ 工作后，我鼓了若干次勇气，终于建了真言堂，在2003年3月17日那一天。开始几年，我经常气急败坏地想把它关掉；中间几年，我很庆幸它没被关掉；最近几年，我觉得几近干涸的它继续存在的意义已经不大了。这7年多，我做的事情并没有改变，但是学生对我的态度却发生了很大变化，究其原因，是真言堂让我得到了最直接、最极端的反馈，使我知道用什么样的方式去实行我的理念，可以让学生更平和地接受，从而效果更好。同时，真言堂中匿名支持我的话可信度也很高，使我更自信。 当言论突然放开时，真的是能吓死人的。但只要坚持住，若干年后，无论听言的还是发言的，就都能享受到开放言论带来的好处了。这是真言堂教给我的最大的道理。 回到评师网，它的做法已然很不错了。虽然表面在粉饰太平，但至少在试图把负面的东西通过隐秘的通道呈现给当事人。不知道在其它媒体上被封、被删的林林总总，是否会通过某些渠道送交给当事人做参考呢？希望不要真的是“删除”了啊。]]></description>
			<content:encoded><![CDATA[<p>昨日偶发一想法，给<a href="http://www.pinglaoshi.com">评师网</a>发了一封信，质问为什么<a href="http://www.pinglaoshi.com/teacherId14134">我的页面</a>里的负面评价都被删除了。其实很久以前就发现了，只是昨天才想起来该问问他们。</p>
<p>答复说：“评师网并未删除任何与教学有关非重复发表的负面评论，只是将所有负面评论予以隐藏，只提供老师本人查看，老师用户的此项功能将在近期放出。”</p>
<p>我猜想，评师网一定是受到了强大的、来自各色教师的压力，才决定这么做的。大约半年多前，我曾经和某高校教师讨论过评师网。他当时很愤慨地说，“高校教师又不像明星那样是公众人物，凭什么要被摆到明面上被大众评论？”我相信他的想法在教师圈里应该是主流的。评师网为了生存，就自然得选择主动过滤掉负面的评论，创造和谐景色。</p>
<p>最难了解的是自己。这里的“难”有两层含义。一层是“不容易”，不容易获得别人对自己的客观评价，尤其是负面评价；另一层是“不愿意”，不愿意听到负面评价，让自己心安理得地活在一片美好中，并让自己相信那是真实的。</p>
<p>高中时候我曾经非常主动征询周围同学对我的意见，让他们帮我挑缺点。在等待回应的时候，我的心里是其实是“不愿意”听到不好的话的，所以我听到的真的都是好话。也许是我的表情在暗示他们别说难听的，也许是我用快速的回答抹杀了他们在一番赞美然后说“但是”的机会。反正我挺美滋滋的，觉得自己真的可能是天下第一大好人。</p>
<p>大学时，为了证明自己真是第一大好人，我开始另一种尝试：四处树敌。这里有点儿言重了，所谓树敌不过就是故意很直白地当面指出别人的这不好那不行。确实真的惹恼了不少人，换回的是很多反击。于是，我终于有机会重新认识自己了。值得一提的是，我惹恼的人，现在都是很好的朋友。难道大家本质上都是喜欢被人当面品头论足？</p>
<p>工作后，我鼓了若干次勇气，终于建了<a href="http://sunner.cn/truth/">真言堂</a>，在2003年3月17日那一天。开始几年，我经常气急败坏地想把它关掉；中间几年，我很庆幸它没被关掉；最近几年，我觉得几近干涸的它继续存在的意义已经不大了。这7年多，我做的事情并没有改变，但是学生对我的态度却发生了很大变化，究其原因，是真言堂让我得到了最直接、最极端的反馈，使我知道用什么样的方式去实行我的理念，可以让学生更平和地接受，从而效果更好。同时，真言堂中匿名支持我的话可信度也很高，使我更自信。</p>
<p><strong>当言论突然放开时，真的是能吓死人的。但只要坚持住，若干年后，无论听言的还是发言的，就都能享受到开放言论带来的好处了。</strong>这是真言堂教给我的最大的道理。</p>
<p>回到评师网，它的做法已然很不错了。虽然表面在粉饰太平，但至少在试图把负面的东西通过隐秘的通道呈现给当事人。不知道在其它媒体上被封、被删的林林总总，是否会通过某些渠道送交给当事人做参考呢？希望不要真的是“删除”了啊。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sunner.cn/2010/08/hard-to-know-yourself/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>婚礼两周年，三俗三下</title>
		<link>http://blog.sunner.cn/2010/08/2nd-wedding-anniversary/</link>
		<comments>http://blog.sunner.cn/2010/08/2nd-wedding-anniversary/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 11:06:58 +0000</pubDate>
		<dc:creator>Sunner</dc:creator>
				<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://blog.sunner.cn/?p=505</guid>
		<description><![CDATA[老婆好庸俗，非要庆祝一下结婚两周年。我就媚俗了一下，附和了。一起出去低俗了一下：吃自助餐吃到快撑死。 自从听林海峰在百科全说讲无敌自助餐吃法，就一直想找机会试试。基本路数是先吃5盘水果，再吃5盘蔬菜，再猛吃海鲜，再吃肉，最后吃点儿主食意思一下。据说最低也能吃掉15盘食物。 我先吃了三盘水果两盘菜，此时还真觉得和啥都没吃一样。然后开始吃海鲜，吃肉，吃主食。最后的战果是：我俩几乎是最早进场的，一直不住嘴地吃，话都没说多少，等离开的时候，我们不仅是最后一桌，而且服务员已经擦完地，换完所有的桌布了。真的是没少吃啊！ 几点感想： 高丽园涨价了，77一位了，食品的档次提高了很多，鲍鱼和鱼翅汤做得都挺好，生鱼片马马虎虎，螃蟹质量较差。 服务员最先送上来的是一份黑椒牛扒，限量供应的。味道很好，但如果你先吃，就着了道儿了。一块牛扒下去，基本都半饱了。我们忍着最后吃的。 水果蔬菜吃得足，整个过程都不觉得口渴，饮料一口没喝。 肉吃到不想吃了，还是一点儿没有饱的感觉。最后吃了三块年糕，喝了半杯橙汁，缴械了。 两年前在这儿婚礼，两年后又来吃，没啥特别感觉。 兆麟公园终于免费了！]]></description>
			<content:encoded><![CDATA[<p>老婆好庸俗，非要庆祝一下结婚两周年。我就媚俗了一下，附和了。一起出去低俗了一下：吃自助餐吃到快撑死。</p>
<p>自从听林海峰在百科全说讲无敌自助餐吃法，就一直想找机会试试。基本路数是先吃5盘水果，再吃5盘蔬菜，再猛吃海鲜，再吃肉，最后吃点儿主食意思一下。据说最低也能吃掉15盘食物。</p>
<p>我先吃了三盘水果两盘菜，此时还真觉得和啥都没吃一样。然后开始吃海鲜，吃肉，吃主食。最后的战果是：我俩几乎是最早进场的，一直不住嘴地吃，话都没说多少，等离开的时候，我们不仅是最后一桌，而且服务员已经擦完地，换完所有的桌布了。真的是没少吃啊！</p>
<p>几点感想：</p>
<ol>
<li>高丽园涨价了，77一位了，食品的档次提高了很多，鲍鱼和鱼翅汤做得都挺好，生鱼片马马虎虎，螃蟹质量较差。</li>
<li>服务员最先送上来的是一份黑椒牛扒，限量供应的。味道很好，但如果你先吃，就着了道儿了。一块牛扒下去，基本都半饱了。我们忍着最后吃的。</li>
<li>水果蔬菜吃得足，整个过程都不觉得口渴，饮料一口没喝。</li>
<li>肉吃到不想吃了，还是一点儿没有饱的感觉。最后吃了三块年糕，喝了半杯橙汁，缴械了。</li>
<li>两年前在这儿婚礼，两年后又来吃，没啥特别感觉。</li>
<li>兆麟公园终于免费了！</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.sunner.cn/2010/08/2nd-wedding-anniversary/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>博客遭受攻击，怀疑和骏丰集团有关</title>
		<link>http://blog.sunner.cn/2010/08/blog_under_attack/</link>
		<comments>http://blog.sunner.cn/2010/08/blog_under_attack/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 12:13:56 +0000</pubDate>
		<dc:creator>Sunner</dc:creator>
				<category><![CDATA[NULL]]></category>
		<category><![CDATA[骏丰频谱]]></category>

		<guid isPermaLink="false">http://blog.sunner.cn/?p=499</guid>
		<description><![CDATA[先看一张图，是google analytics统计的blog.sunner.cn最近一个月的流量。 左上图可以看出最近两天访问量异常地增大。 从左下图可以看出流量的增加并不是因为有人链接过来，而是直接的访问。这说明，如果增加的流量不是攻击，那么只可能是有很多人（从日志可以看到上千个独立ip）对我的网站超级感兴趣，直接在浏览器地址框里输入网址访问。 从右下图可以看出，这些人直接访问的并不是我的首页，而是不厌其烦地输入两个超长链接，访问的是两篇关于骏丰频谱的帖子。一篇是揭露骏丰频谱在营销过程中如何夸大宣传，另一篇通过拆解机器让消费者了解其内里乾坤。文章内容的真实性得到了骏丰高层的认可。 8月4日，刚刚又有骏丰公关部的人和我接洽，8月6日，攻击就开始了。 那么，我当然首先会怀疑骏丰在搞鬼。当然，也不排除有人栽赃陷害他们。 现在攻击已经暂时减弱，本人保留继续追究的一切权力。 最后本人声明，放弃此链接下所有文章的版权，任何团体和个人都可以随意转载、发表，文责我自己承担。热烈欢迎转载！]]></description>
			<content:encoded><![CDATA[<p>先看一张图，是google analytics统计的<a href="http://blog.sunner.cn">blog.sunner.cn</a>最近一个月的流量。<br />
<a href="http://blog.sunner.cn/wp-content/uploads/2010/08/blog_under_attack.jpg"><img class="aligncenter size-full wp-image-500" title="blog_under_attack" src="http://blog.sunner.cn/wp-content/uploads/2010/08/blog_under_attack.jpg" alt="攻击下的博客流量" width="970" height="485" /></a></p>
<p>左上图可以看出最近两天访问量异常地增大。</p>
<p>从左下图可以看出流量的增加并不是因为有人链接过来，而是直接的访问。这说明，如果增加的流量不是攻击，那么只可能是有很多人（从日志可以看到上千个独立ip）对我的网站超级感兴趣，直接在浏览器地址框里输入网址访问。</p>
<p>从右下图可以看出，这些人直接访问的并不是我的首页，而是不厌其烦地输入两个超长链接，访问的是两篇关于骏丰频谱的帖子。<a href="http://blog.sunner.cn/?p=379">一篇是揭露骏丰频谱在营销过程中如何夸大宣传</a>，<a href="http://blog.sunner.cn/?p=221">另一篇通过拆解机器让消费者了解其内里乾坤</a>。<a href="http://blog.sunner.cn/?p=379">文章内容的真实性得到了骏丰高层的认可</a>。</p>
<p>8月4日，刚刚又有<a href="http://blog.sunner.cn/?p=494">骏丰公关部的人和我接洽</a>，8月6日，攻击就开始了。</p>
<p>那么，我当然首先会怀疑骏丰在搞鬼。当然，也不排除有人栽赃陷害他们。</p>
<p>现在攻击已经暂时减弱，本人保留继续追究的一切权力。</p>
<p>最后本人声明，放弃<a href="http://blog.sunner.cn/tag/%E9%AA%8F%E4%B8%B0%E9%A2%91%E8%B0%B1/">此链接下</a>所有文章的版权，任何团体和个人都可以随意转载、发表，文责我自己承担。热烈欢迎转载！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sunner.cn/2010/08/blog_under_attack/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
