<?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>Shadow &#38; Honnix</title>
	<atom:link href="http://honnix.com/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://honnix.com/blog</link>
	<description>Baby baby baby!</description>
	<lastBuildDate>Sat, 07 Aug 2010 09:37:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>今天准备Lift codekata的时候又发现新东西了</title>
		<link>http://honnix.com/blog/archives/599</link>
		<comments>http://honnix.com/blog/archives/599#comments</comments>
		<pubDate>Sat, 07 Aug 2010 09:37:48 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Lift]]></category>
		<category><![CDATA[Scala]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[attribute]]></category>
		<category><![CDATA[binding]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=599</guid>
		<description><![CDATA[那本著名的书上也没写，但是应该是比较常用的功能：如何绑定一个attribute。 有一段html，内容如下： ?View Code HTML&#60;div&#62; &#60;dl id=&#34;xxx&#34;&#62; &#60;dt&#62;xxx&#60;/dt&#62; &#60;dd&#62;yyy&#60;/dd&#62; &#60;/dl&#62; &#60;/div&#62; 要实现的是把“dl”的“id&#8221;动态绑定到一个值，这样可以直接使用数据库中的id，并且也方便jQuery操作。lift里面可以这样实现： 首先把上面的html改造一下： ?View Code HTML&#60;div&#62; &#60;dl entry:id=&#34;xxx&#34;&#62; &#60;dt&#62;xxx&#60;/dt&#62; &#60;dd&#62;yyy&#60;/dd&#62; &#60;/dl&#62; &#60;/div&#62; 然后Scala代码这样写： ?View Code SCALA bind&#40;&#34;entry&#34;, xhtml, AttrBindParam&#40;&#34;id&#34;, Text&#40;article.id.is.toString&#41;, &#34;id&#34;&#41; &#41;]]></description>
			<content:encoded><![CDATA[<p>那本著名的书上也没写，但是应该是比较常用的功能：如何绑定一个attribute。<br />
有一段html，内容如下：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p599code4'); return false;">View Code</a> HTML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5994"><td class="code" id="p599code4"><pre class="html" style="font-family:monospace;">&lt;div&gt;
  &lt;dl id=&quot;xxx&quot;&gt;
    &lt;dt&gt;xxx&lt;/dt&gt;
    &lt;dd&gt;yyy&lt;/dd&gt;
  &lt;/dl&gt;
&lt;/div&gt;</pre></td></tr></table></div>

<p>要实现的是把“dl”的“id&#8221;动态绑定到一个值，这样可以直接使用数据库中的id，并且也方便jQuery操作。lift里面可以这样实现：<br />
首先把上面的html改造一下：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p599code5'); return false;">View Code</a> HTML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5995"><td class="code" id="p599code5"><pre class="html" style="font-family:monospace;">&lt;div&gt;
  &lt;dl entry:id=&quot;xxx&quot;&gt;
    &lt;dt&gt;xxx&lt;/dt&gt;
    &lt;dd&gt;yyy&lt;/dd&gt;
  &lt;/dl&gt;
&lt;/div&gt;</pre></td></tr></table></div>

<p>然后Scala代码这样写：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p599code6'); return false;">View Code</a> SCALA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5996"><td class="code" id="p599code6"><pre class="scala" style="font-family:monospace;">      bind<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;entry&quot;</span>, xhtml,
           AttrBindParam<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;id&quot;</span>, Text<span style="color: #F78811;">&#40;</span>article.<span style="color: #000000;">id</span>.<span style="color: #000000;">is</span>.<span style="color: #000000;">toString</span><span style="color: #F78811;">&#41;</span>, <span style="color: #6666FF;">&quot;id&quot;</span><span style="color: #F78811;">&#41;</span>
      <span style="color: #F78811;">&#41;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/599/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>宝宝游泳</title>
		<link>http://honnix.com/blog/archives/593</link>
		<comments>http://honnix.com/blog/archives/593#comments</comments>
		<pubDate>Mon, 02 Aug 2010 08:12:09 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Baby]]></category>
		<category><![CDATA[宝宝]]></category>
		<category><![CDATA[游泳]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=593</guid>
		<description><![CDATA[your browser does not support the video tag]]></description>
			<content:encoded><![CDATA[<p><video src="http://honnix.com/blog/wp-content/uploads/2010/08/IMG_0342.MOV" controls="controls"><br />
your browser does not support the video tag<br />
</video></p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/593/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
<enclosure url="http://honnix.com/blog/wp-content/uploads/2010/08/IMG_0342.MOV" length="247291046" type="video/quicktime" />
		</item>
		<item>
		<title>在问题没出现之前，能不能不把事情整得太复杂？</title>
		<link>http://honnix.com/blog/archives/586</link>
		<comments>http://honnix.com/blog/archives/586#comments</comments>
		<pubDate>Wed, 21 Jul 2010 14:09:31 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=586</guid>
		<description><![CDATA[是不是所有做软件的人都有这种天生的冲动，把系统设计得所有人都看不懂？ 究竟是不是需要一开始就把一切都考虑清楚，然后做出复杂无比的方案，去应对你根本无法确定会不会出现的问题或异常？ 难道所谓的商用级别的软件都一定要极度复杂、无法维护、一般水平的人根本读不懂，才能称得上是好的软件？ 我很怀疑。]]></description>
			<content:encoded><![CDATA[<p>是不是所有做软件的人都有这种天生的冲动，把系统设计得所有人都看不懂？</p>
<p>究竟是不是需要一开始就把一切都考虑清楚，然后做出复杂无比的方案，去应对你根本无法确定会不会出现的问题或异常？</p>
<p>难道所谓的商用级别的软件都一定要极度复杂、无法维护、一般水平的人根本读不懂，才能称得上是好的软件？</p>
<h1>我很怀疑。</h1>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/586/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>又见村上</title>
		<link>http://honnix.com/blog/archives/583</link>
		<comments>http://honnix.com/blog/archives/583#comments</comments>
		<pubDate>Tue, 15 Jun 2010 15:45:50 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Daily Life]]></category>
		<category><![CDATA[1Q84]]></category>
		<category><![CDATA[一九八四]]></category>
		<category><![CDATA[村上]]></category>
		<category><![CDATA[林少华]]></category>
		<category><![CDATA[王小波]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=583</guid>
		<description><![CDATA[一边听着世界杯，一边在网上闲逛。近来《一九八四》又火了起来，个中原因大家也都清楚，于是很想读一下。到当当一搜，发现了村上的新书《1Q84》，跟《一九八四》一起买，便宜不少。但是很意外，居然不是林少华译的，顿感遗憾。读了林少华的博客，不译的原因大概是版权之类，当然也不排除其它什么乱七八糟的隐情。 从《挪威的森林》开始，大学时代几乎读遍了当时村上所有的作品，小说、随笔、散文。那时候读的小说可以说是很不少，但是印象最深、影响最大的却也无非就是村上和王小波。村上小说中瑰丽的想象、莫名其妙的虚空感、人与人之间纠缠不清的关系，构成了他的整体风格；王小波的纵横开阖、天马行空，确实无愧于他行吟骑士的称号。 有时候会想，如果小波现在还在世，会写些什么样的文章呢？如果他有博客，点击率是不是秒杀韩寒呢？可惜英年早逝…… 没有了林少华的村上，还会是村上么？我已经习惯了林氏的文学气息浓郁的长句，个人风格强烈的用词，深陷得不行，还能接受他人的译作么？我不想骗自己，还是决定不读了。]]></description>
			<content:encoded><![CDATA[<p>一边听着世界杯，一边在网上闲逛。近来《一九八四》又火了起来，个中原因大家也都清楚，于是很想读一下。到当当一搜，发现了村上的新书《1Q84》，跟《一九八四》一起买，便宜不少。但是很意外，居然不是林少华译的，顿感遗憾。读了林少华的博客，不译的原因大概是版权之类，当然也不排除其它什么乱七八糟的隐情。</p>
<p>从《挪威的森林》开始，大学时代几乎读遍了当时村上所有的作品，小说、随笔、散文。那时候读的小说可以说是很不少，但是印象最深、影响最大的却也无非就是村上和王小波。村上小说中瑰丽的想象、莫名其妙的虚空感、人与人之间纠缠不清的关系，构成了他的整体风格；王小波的纵横开阖、天马行空，确实无愧于他行吟骑士的称号。</p>
<p>有时候会想，如果小波现在还在世，会写些什么样的文章呢？如果他有博客，点击率是不是秒杀韩寒呢？可惜英年早逝……</p>
<p>没有了林少华的村上，还会是村上么？我已经习惯了林氏的文学气息浓郁的长句，个人风格强烈的用词，深陷得不行，还能接受他人的译作么？我不想骗自己，还是决定不读了。</p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/583/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何对付那些发了疯的蜘蛛们</title>
		<link>http://honnix.com/blog/archives/580</link>
		<comments>http://honnix.com/blog/archives/580#comments</comments>
		<pubDate>Sun, 06 Jun 2010 01:15:52 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[CPU占用率]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[二奶机]]></category>
		<category><![CDATA[搜狗]]></category>
		<category><![CDATA[爬虫]]></category>
		<category><![CDATA[腾讯]]></category>
		<category><![CDATA[蜘蛛]]></category>
		<category><![CDATA[防火墙]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=580</guid>
		<description><![CDATA[最近两天，二奶机经常过热关机，毕竟是老机器了，经不起过高的温度。什么原因呢？top一下发现apache占用CPU高达30％。这就诡异了，我的网站啥时候也没有这么高的访问量啊。查了下access_log，居然有无数的IP来访。whois加上Google，原来是一堆的蜘蛛，大部分来自腾讯和搜狗。简直是疯狗，同时放出几十个蜘蛛来爬，这哪受得了！ 我的路由器没有防火墙功能，所以只好在二奶机上弄了。还好上次编内核的时候把iptables编进去了，否则我估计这种天气，内核都编不下去就要关机了。折腾了一番，终于搞定。Gentoo对iptables的支持还不错，emerge了之后/etc/init.d里面就有了启动脚本，简单地看了一下也就会用了。现在我的iptables里面是这种状况，列出来给需要的人参考一下（基本上我把IP在中国的都给踢出去了，谁知道它们在找什么）： # iptables -L Chain INPUT (policy ACCEPT) target     prot opt source               destination all  &#8211;  anywhere             anywhere DROP       all  &#8211;  124.115.4.0/24       anywhere DROP       all  &#8211;  124.115.0.0/24       anywhere [...]]]></description>
			<content:encoded><![CDATA[<p>最近两天，二奶机经常过热关机，毕竟是老机器了，经不起过高的温度。什么原因呢？top一下发现apache占用CPU高达30％。这就诡异了，我的网站啥时候也没有这么高的访问量啊。查了下access_log，居然有无数的IP来访。whois加上Google，原来是一堆的蜘蛛，大部分来自腾讯和搜狗。简直是疯狗，同时放出几十个蜘蛛来爬，这哪受得了！</p>
<p>我的路由器没有防火墙功能，所以只好在二奶机上弄了。还好上次编内核的时候把iptables编进去了，否则我估计这种天气，内核都编不下去就要关机了。折腾了一番，终于搞定。Gentoo对iptables的支持还不错，emerge了之后/etc/init.d里面就有了启动脚本，简单地看了一下也就会用了。现在我的iptables里面是这种状况，列出来给需要的人参考一下（基本上我把IP在中国的都给踢出去了，谁知道它们在找什么）：</p>
<blockquote>
<div id="_mcePaste"># iptables -L</div>
<div id="_mcePaste">Chain INPUT (policy ACCEPT)</div>
<div id="_mcePaste">target     prot opt source               destination</div>
<div id="_mcePaste">all  &#8211;  anywhere             anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  124.115.4.0/24       anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  124.115.0.0/24       anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  122.194.170.0/24     anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  114.80.93.56         anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  122.81.25.8          anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  123.125.66.0/24      anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  218.5.3.149          anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  220.181.94.222       anywhere</div>
<div id="_mcePaste">Chain FORWARD (policy ACCEPT)</div>
<div id="_mcePaste">target     prot opt source               destination</div>
<div id="_mcePaste">Chain OUTPUT (policy ACCEPT)</div>
<div id="_mcePaste">target     prot opt source               destination</div>
</blockquote>
<div>最后简单说一下iptables的用法，网上到处都是，不多啰嗦了。</div>
<blockquote>
<div>iptables -A INPUT -s &lt;ip&gt; -j DROP</div>
</blockquote>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/580/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>很久没更新了，说说翻墙的事儿吧</title>
		<link>http://honnix.com/blog/archives/575</link>
		<comments>http://honnix.com/blog/archives/575#comments</comments>
		<pubDate>Tue, 01 Jun 2010 14:44:11 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[anti-idle]]></category>
		<category><![CDATA[expect]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[翻墙]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=575</guid>
		<description><![CDATA[买了个ssh，淘宝上到处都是，就不说具体哪家了。价格还可以，一个月3块，先来了一个月尝尝。 速度还行，就是有一点比较讨厌，没法保持连接，一段时间idle之后就被断开了，尝试设了一些参数，还是不行，还是写个脚本来干。 ?Download wall.expect#!/usr/bin/expect -f &#160; set timeout 30 spawn ssh wall match_max 100000 expect -re &#34;.*password:.*&#34; send -- &#34;xxxxxx\r&#34; send -- &#34;\r\r\r\r&#34; expect timeout &#160; for &#123;&#125; 1 &#123;&#125; &#123; send &#34;ls\r&#34; expect timeout &#125; &#160; exit 0 其实很简单，就是登录之后每隔30秒就ls一下。估计这样就行了。]]></description>
			<content:encoded><![CDATA[<p>买了个ssh，淘宝上到处都是，就不说具体哪家了。价格还可以，一个月3块，先来了一个月尝尝。<br />
速度还行，就是有一点比较讨厌，没法保持连接，一段时间idle之后就被断开了，尝试设了一些参数，还是不行，还是写个脚本来干。</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://honnix.com/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=575&amp;download=wall.expect">wall.expect</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5758"><td class="code" id="p575code8"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/expect -f</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">set</span> timeout <span style="color: #000000;">30</span>
spawn <span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #c20cb9; font-weight: bold;">wall</span>
match_max <span style="color: #000000;">100000</span>
expect <span style="color: #660033;">-re</span> <span style="color: #ff0000;">&quot;.*password:.*&quot;</span>
send <span style="color: #660033;">--</span> <span style="color: #ff0000;">&quot;xxxxxx<span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>
send <span style="color: #660033;">--</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>
expect timeout
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    send <span style="color: #ff0000;">&quot;ls<span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>
    expect timeout
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span></pre></td></tr></table></div>

<p>其实很简单，就是登录之后每隔30秒就ls一下。估计这样就行了。</p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/575/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>如何在Lift里用javascript的confirm</title>
		<link>http://honnix.com/blog/archives/566</link>
		<comments>http://honnix.com/blog/archives/566#comments</comments>
		<pubDate>Thu, 13 May 2010 15:30:48 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Lift]]></category>
		<category><![CDATA[Scala]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[anchor]]></category>
		<category><![CDATA[confirm]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=566</guid>
		<description><![CDATA[使用Lift的SHtml.a()设计ajax调用的时候，老版本的Lift不支持给onclick加入用户自己定义的javascript方法，新版本的有了。 ?View Code SCALA/** * Create an anchor tag around a body which will do an AJAX call and invoke the function * * @param jsFunc -- the user function that will be executed. This function will receive as last parameter * the function that will actually do the ajax call. Hence the user function [...]]]></description>
			<content:encoded><![CDATA[<p>使用Lift的SHtml.a()设计ajax调用的时候，老版本的Lift不支持给onclick加入用户自己定义的javascript方法，新版本的有了。</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p566code11'); return false;">View Code</a> SCALA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p56611"><td class="code" id="p566code11"><pre class="scala" style="font-family:monospace;"><span style="color: #00ff00; font-style: italic;">/**
   * Create an anchor tag around a body which will do an AJAX call and invoke the function
   *
   * @param jsFunc -- the user function that will be executed. This function will receive as last parameter
   *                  the function that will actually do the ajax call. Hence the user function can decide when
   * 				  to make the ajax request.
   * @param func - the function to invoke when the link is clicked
   * @param body - the NodeSeq to wrap in the anchor tag
   * @param attrs - the anchor node attributes
   */</span>
  <a href="http://scala-lang.org"><span style="color: #0000ff; font-weight: bold;">def</span></a> a<span style="color: #F78811;">&#40;</span>jsFunc<span style="color: #000080;">:</span> Call, func<span style="color: #000080;">:</span> <span style="color: #F78811;">&#40;</span><span style="color: #F78811;">&#41;</span> <span style="color: #000080;">=&gt;;</span> JsCmd, body<span style="color: #000080;">:</span> NodeSeq, attrs<span style="color: #000080;">:</span> <span style="color: #F78811;">&#40;</span>String, String<span style="color: #F78811;">&#41;</span><span style="color: #000080;">*</span><span style="color: #F78811;">&#41;</span><span style="color: #000080;">:</span> Elem <span style="color: #000080;">=</span> <span style="color: #F78811;">&#123;</span>
    attrs.<span style="color: #000000;">foldLeft</span><span style="color: #F78811;">&#40;</span>fmapFunc<span style="color: #F78811;">&#40;</span>contextFuncBuilder<span style="color: #F78811;">&#40;</span>func<span style="color: #F78811;">&#41;</span><span style="color: #F78811;">&#41;</span><span style="color: #F78811;">&#40;</span>name <span style="color: #000080;">=&gt;;</span>
            <span style="color: #000080;">&lt;</span>a onclick<span style="color: #000080;">=</span><span style="color: #6666FF;">&quot;{deferCall(Str(name&quot;</span> href<span style="color: #000080;">=</span><span style="color: #6666FF;">&quot;javascript://&quot;</span><span style="color: #000080;">&gt;</span><span style="color: #F78811;">&#123;</span>body<span style="color: #F78811;">&#125;</span><span style="color: #000080;">&lt;</span>/a<span style="color: #000080;">&gt;</span><span style="color: #F78811;">&#41;</span><span style="color: #F78811;">&#41;</span><span style="color: #F78811;">&#40;</span><span style="color: #000080;">_</span> <span style="color: #000080;">%</span> <span style="color: #000080;">_</span><span style="color: #F78811;">&#41;</span>
  <span style="color: #F78811;">&#125;</span></pre></td></tr></table></div>

<p>对于jsFunc可以这样理解：<br />
用户定义了一个方法：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p566code12'); return false;">View Code</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p56612"><td class="code" id="p566code12"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #000066; font-weight: bold;">delete</span><span style="color: #009900;">&#40;</span>toDelete<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066;">confirm</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Delete?&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    toDelete<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>那么jsFunc可以这样定义：Call(&#8220;delete&#8221;)，Lift会把它生成的ajax方法作为最后一个参数传递给delete方法。</p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/566/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>APE解码器MAC在Snow Leopard上的问题</title>
		<link>http://honnix.com/blog/archives/564</link>
		<comments>http://honnix.com/blog/archives/564#comments</comments>
		<pubDate>Fri, 23 Apr 2010 15:19:31 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[APE]]></category>
		<category><![CDATA[Snow Leopard]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=564</guid>
		<description><![CDATA[其实也不是多大的问题，只是方向不对，搞了很久才解决。 移植MAC的这哥们儿提供了一个configure，当然，是根据Leopard生成的，或者更早Tiger，然后对于SL就不工作了。问题在于port里面的yasm不再接受-fno-common这个选项，只能用-fmacho32或者-fmacho64。 我满心欢喜地统统配成64位，结果一跑就core；不过还好开源，直接gdb上，调了半天才发现很多指针直接cast成int，而SL里int仍然是32位的，所以用截了一半儿的地址肯定会core。统统改成32位再来，就好了。 顺便改了一下configure.in，然后重新autoconf一下，貌似这样比较完美。 SL里面看core文件生成在什么地方用这个命令：sysctl kern.corefile；生成core文件么，同样也是：ulimit -c unlimited。]]></description>
			<content:encoded><![CDATA[<p>其实也不是多大的问题，只是方向不对，搞了很久才解决。</p>
<p>移植MAC的这哥们儿提供了一个configure，当然，是根据Leopard生成的，或者更早Tiger，然后对于SL就不工作了。问题在于port里面的yasm不再接受-fno-common这个选项，只能用-fmacho32或者-fmacho64。</p>
<p>我满心欢喜地统统配成64位，结果一跑就core；不过还好开源，直接gdb上，调了半天才发现很多指针直接cast成int，而SL里int仍然是32位的，所以用截了一半儿的地址肯定会core。统统改成32位再来，就好了。</p>
<p>顺便改了一下configure.in，然后重新autoconf一下，貌似这样比较完美。</p>
<p>SL里面看core文件生成在什么地方用这个命令：sysctl kern.corefile；生成core文件么，同样也是：ulimit -c unlimited。</p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/564/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>USB邮件提醒器</title>
		<link>http://honnix.com/blog/archives/559</link>
		<comments>http://honnix.com/blog/archives/559#comments</comments>
		<pubDate>Fri, 16 Apr 2010 15:23:54 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[libusb]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[pyusb]]></category>
		<category><![CDATA[USB notifier]]></category>
		<category><![CDATA[USB邮件提醒器]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=559</guid>
		<description><![CDATA[买了个山寨版的这个玩意儿，软件不爽，随即hack之。libusb+pyusb，搞定。不过Mac下面还不行，kernel的module直接claim设备，不知道怎么unclaim。 然后封装了一个简单的库： ?Download lamp.py1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 [...]]]></description>
			<content:encoded><![CDATA[<p>买了个山寨版的这个玩意儿，软件不爽，随即hack之。libusb+pyusb，搞定。不过Mac下面还不行，kernel的module直接claim设备，不知道怎么unclaim。</p>
<p>然后封装了一个简单的库：</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://honnix.com/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=559&amp;download=lamp.py">lamp.py</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p55914"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
</pre></td><td class="code" id="p559code14"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/python</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">Queue</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">Queue</span>
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">threading</span> <span style="color: #ff7700;font-weight:bold;">import</span> Thread
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> usb.<span style="color: black;">core</span>
<span style="color: #ff7700;font-weight:bold;">import</span> usb.<span style="color: black;">util</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> Singleton<span style="color: black;">&#40;</span><span style="color: #008000;">type</span><span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span>cls, name, bases, <span style="color: #008000;">dict</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">super</span><span style="color: black;">&#40;</span>Singleton, cls<span style="color: black;">&#41;</span>.<span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span>name, bases, <span style="color: #008000;">dict</span><span style="color: black;">&#41;</span>
        cls.<span style="color: black;">instance</span> = <span style="color: #008000;">None</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__call__</span><span style="color: black;">&#40;</span>cls, <span style="color: #66cc66;">*</span>args, <span style="color: #66cc66;">**</span>kw<span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">if</span> cls.<span style="color: black;">instance</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #008000;">None</span>:
            cls.<span style="color: black;">instance</span> = <span style="color: #008000;">super</span><span style="color: black;">&#40;</span>Singleton, cls<span style="color: black;">&#41;</span>.<span style="color: #0000cd;">__call__</span><span style="color: black;">&#40;</span><span style="color: #66cc66;">*</span>args, <span style="color: #66cc66;">**</span>kw<span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">return</span> cls.<span style="color: black;">instance</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> Lamp<span style="color: black;">&#40;</span><span style="color: #008000;">object</span><span style="color: black;">&#41;</span>:
    GREEN = 0x01
    RED = 0x02
    BLUE = 0x03
    PURPLE = 0x04
    X = 0x05
    Y = 0x06
    WHITE = 0x07
    __QUIT = -<span style="color: #ff4500;">1</span>
&nbsp;
    <span style="color: #0000cd;">__metaclass__</span> = Singleton
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">t</span> = <span style="color: #008000;">None</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">q</span> = <span style="color: #008000;">None</span>
&nbsp;
        <span style="color: #008000;">self</span>.<span style="color: black;">dev</span> = usb.<span style="color: black;">core</span>.<span style="color: black;">find</span><span style="color: black;">&#40;</span>idVendor = 0x1294, idProduct = 0x1320<span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">os</span>.<span style="color: black;">uname</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span> == <span style="color: #483d8b;">'Linux'</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">dev</span>.<span style="color: black;">detach_kernel_driver</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #008000;">self</span>.<span style="color: black;">dev</span>.<span style="color: black;">set_configuration</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> __worker<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        item = <span style="color: #008000;">self</span>.<span style="color: black;">q</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">while</span> item <span style="color: #66cc66;">!</span>= Lamp.__QUIT:
            <span style="color: #ff7700;font-weight:bold;">if</span> item <span style="color: #66cc66;">&amp;</span>gt<span style="color: #66cc66;">;</span>= Lamp.<span style="color: black;">GREEN</span> <span style="color: #ff7700;font-weight:bold;">and</span> item <span style="color: #66cc66;">&amp;</span>lt<span style="color: #66cc66;">;</span>= Lamp.<span style="color: black;">WHITE</span>:
                <span style="color: #ff7700;font-weight:bold;">print</span> item
                data = <span style="color: black;">&#40;</span>item, 0x04, 0x04, 0x04, 0x04<span style="color: black;">&#41;</span>
                <span style="color: #008000;">self</span>.<span style="color: black;">dev</span>.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">2</span>, data, <span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span>
&nbsp;
            <span style="color: #008000;">self</span>.<span style="color: black;">q</span>.<span style="color: black;">task_done</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
            item = <span style="color: #008000;">self</span>.<span style="color: black;">q</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> plug<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">self</span>.<span style="color: black;">q</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #008000;">None</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">q</span> = <span style="color: #dc143c;">Queue</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">t</span> = Thread<span style="color: black;">&#40;</span>target=<span style="color: #008000;">self</span>.__worker<span style="color: black;">&#41;</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">t</span>.<span style="color: black;">start</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> unplug<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">self</span>.<span style="color: black;">q</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">None</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">q</span>.<span style="color: black;">put</span><span style="color: black;">&#40;</span>Lamp.__QUIT<span style="color: black;">&#41;</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">t</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">q</span> = <span style="color: #008000;">None</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">t</span> = <span style="color: #008000;">None</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> on<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, color<span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">q</span>.<span style="color: black;">put</span><span style="color: black;">&#40;</span>color<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> off<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">q</span>.<span style="color: black;">put</span><span style="color: black;">&#40;</span>0x00<span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">'__main__'</span>:
    lamp1 = Lamp<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    lamp2 = Lamp<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    lamp3 = Lamp<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    lamp1.<span style="color: black;">plug</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    lamp2.<span style="color: black;">plug</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    lamp3.<span style="color: black;">plug</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    lamp1.<span style="color: black;">on</span><span style="color: black;">&#40;</span>Lamp.<span style="color: black;">GREEN</span><span style="color: black;">&#41;</span>
    lamp1.<span style="color: black;">on</span><span style="color: black;">&#40;</span>Lamp.<span style="color: black;">RED</span><span style="color: black;">&#41;</span>
    lamp1.<span style="color: black;">on</span><span style="color: black;">&#40;</span>Lamp.<span style="color: black;">WHITE</span><span style="color: black;">&#41;</span>
    lamp1.<span style="color: black;">on</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">100</span><span style="color: black;">&#41;</span>
&nbsp;
    lamp1.<span style="color: black;">unplug</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    lamp2.<span style="color: black;">unplug</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    lamp3.<span style="color: black;">unplug</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p>忘记还有其它什么颜色了，暂时用X、Y代替吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/559/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>强化部与我的成长</title>
		<link>http://honnix.com/blog/archives/555</link>
		<comments>http://honnix.com/blog/archives/555#comments</comments>
		<pubDate>Sat, 10 Apr 2010 09:59:48 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Daily Life]]></category>
		<category><![CDATA[强化部]]></category>
		<category><![CDATA[成长]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=555</guid>
		<description><![CDATA[接到季老师的电话，强化部成立十周年，让我写点东西。 电话挂断，愣了半天神儿，掰开手指头算算，真的已经十年了。这个占据了到目前为止我的人生三分之一还要多的十年，居然这么一晃就过来了。大学毕业、读研、上班、结婚，再过几个月将为人父；那些不同时代的同学、朋友，也都有了自己的家庭和事业，过去的十年，梦一般。 大学时代，二十出头的青年，充满朝气，学什么都起劲儿，这个阶段是积累知识、建立世界观和价值观的最佳时期。我很庆幸自己读了大学，尽管当今社会越来越流行所谓的“大学无用”论。我不知道这种论调究竟是经过了严谨的推导，还是根本就是“酸葡萄”，总之，我很不屑。也许是经济飞速发展带来的莫名的浮躁，现在的人们普遍认为大学里面学不到东西，你所学的以后根本对工作（或者说赚钱）没有任何帮助，大学毕业后还是要经过职业教育才能工作，才能在社会里立足，大学里出来的都是书呆子，社会大学才是最终奥义，等等等等。这些乍看起来，很有些道理，但是斟酌一番，却完全不能作为“大学无用”的论据。 根本问题在于，高等教育绝不等同于职业教育。 大学里面学的东西，“也许”真的对以后的工作没有直接帮助，但是正如强化部一位老师所说，你在大学里学到的是如何学习新东西的能力，这个才是你一辈子受益无穷的。大学教育是一个“润物细无声”的过程，在大学四年中经历的点点滴滴，会逐渐渗透到你的筋骨里，在以后的人生中缓缓释放。前面我说“也许”，对不起，我扯了个谎，实际上，你所学的大部分东西在将来的某个时刻都会释放巨大的潜能。这一点，我很难论证也不想论证，只有经历了才会明白。 职业教育可以教会你工作中实际需要的本领，但是不可能教会你所有的本领，更多的需要你自己学习，而这种学习能力的个体差异才会最终体现在你的职位、薪水、地位上。当然，我没有任何否认职业教育的意思，它在社会中的地位举足轻重，没有良好的职业教育，社会将会缺少将知识转化为生产力的关键环节。但是，我想说的是，从大学中走出的人，如果你的四年没有荒废，即使真正工作前仍需要一定程度的职业教育，你的起点也会高很多。而这时的职业教育提供者，也并不是你想像中的那种职业培训机构，而是你的工作单位。我始终认为，对人的培养是一个现代企业需要具备的最基本的素质和承担的社会责任，但是很不幸，在这个一切向“钱”看的时代，很多企业（尤其是国内企业）完全忽视了这一点，总有一天，他们会为他们的无知买单。但是，作为一个完整的人，我们难道要为他们的无知放弃自己的一生吗？ 作为一个过来人，我可以非常厚颜无耻地说：珍惜大学的四年时光，学到你想学的东西，了解自己，掌握适合自己的学习方法，最后也给你一个十年来领悟，我保证你不会后悔。 貌似有些跑题，应该更多地谈谈强化部如何影响了我的人生，如何促成了我的成长，但实际上，我想我已经说了许多。 强化部注重的是个人的全面成长，这也是为什么我们要学习各种不同科目的原因。打个比方，如果用四年的时间给你强化培养如何写程序，估计最笨的人也能找到工作，也能养活自己。但是，正如我前面所说，那不是大学教育的目的和意义。不同的科目有不同的学习方法，这些方法反映到每个人身上又会千差万别，如何从其中理出一条属于你个人的脉络，这才是关键。同时，不同的科目可以帮助我们开阔眼见，从各处汲取营养，我们不能只会写程序，多少还要懂点诗词曲赋什么的。 在强调宽厚基础的同时，强化部并没有一刀切，所有人都是一个模式，而是崇尚个性发展。经过一定广度的知识积累后，你同样可以选择喜欢的专业，发挥个人优势。实际上，高中时代的过早文理分科，导致了个人的不平衡发展，我们进入大学的时候已经是一个胳膊长一个胳膊短，而毕业后，则是一个胳膊能着地，另一个也就只能挠挠胳肢窝了。很幸运，强化部能提供一个医治的机会，使得最终的结果不过是你更习惯用左手还是右手罢了。 我不想过多地谈论强化部的老师，因为不管我怎么说，最后都只是一句话：他们都很优秀，他们的言行举止或多或少都影响了我的人生。所有帮助过、见证过我成长的各位老师，借此机会，向你们真心地道一声，辛苦了。你们为强化部、为我们倾注的太多太多了，这根本不是一句感谢可以概括的，我会永远记住和你们相处的那些精彩瞬间，牢记住你们的谆谆教诲。你们永远是我成长的基石和土壤，你们的支撑和营养将使我一生受益。 十年风雨，强化部一路从学步的婴儿成长为充满活力的少年，其间经历了许多，我也算是看着她成长起来的第一届学生，在这样的日子里，感慨颇多，说句俗套但是真心的话，祝您十岁生日快乐，永远健康。 很想知道十年庆有什么活动，也很想回去看看……]]></description>
			<content:encoded><![CDATA[<p>接到季老师的电话，强化部成立十周年，让我写点东西。</p>
<p>电话挂断，愣了半天神儿，掰开手指头算算，真的已经十年了。这个占据了到目前为止我的人生三分之一还要多的十年，居然这么一晃就过来了。大学毕业、读研、上班、结婚，再过几个月将为人父；那些不同时代的同学、朋友，也都有了自己的家庭和事业，过去的十年，梦一般。</p>
<p><span id="more-555"></span></p>
<p>大学时代，二十出头的青年，充满朝气，学什么都起劲儿，这个阶段是积累知识、建立世界观和价值观的最佳时期。我很庆幸自己读了大学，尽管当今社会越来越流行所谓的“大学无用”论。我不知道这种论调究竟是经过了严谨的推导，还是根本就是“酸葡萄”，总之，我很不屑。也许是经济飞速发展带来的莫名的浮躁，现在的人们普遍认为大学里面学不到东西，你所学的以后根本对工作（或者说赚钱）没有任何帮助，大学毕业后还是要经过职业教育才能工作，才能在社会里立足，大学里出来的都是书呆子，社会大学才是最终奥义，等等等等。这些乍看起来，很有些道理，但是斟酌一番，却完全不能作为“大学无用”的论据。</p>
<p>根本问题在于，高等教育绝不等同于职业教育。</p>
<p>大学里面学的东西，“也许”真的对以后的工作没有直接帮助，但是正如强化部一位老师所说，你在大学里学到的是如何学习新东西的能力，这个才是你一辈子受益无穷的。大学教育是一个“润物细无声”的过程，在大学四年中经历的点点滴滴，会逐渐渗透到你的筋骨里，在以后的人生中缓缓释放。前面我说“也许”，对不起，我扯了个谎，实际上，你所学的大部分东西在将来的某个时刻都会释放巨大的潜能。这一点，我很难论证也不想论证，只有经历了才会明白。</p>
<p>职业教育可以教会你工作中实际需要的本领，但是不可能教会你所有的本领，更多的需要你自己学习，而这种学习能力的个体差异才会最终体现在你的职位、薪水、地位上。当然，我没有任何否认职业教育的意思，它在社会中的地位举足轻重，没有良好的职业教育，社会将会缺少将知识转化为生产力的关键环节。但是，我想说的是，从大学中走出的人，如果你的四年没有荒废，即使真正工作前仍需要一定程度的职业教育，你的起点也会高很多。而这时的职业教育提供者，也并不是你想像中的那种职业培训机构，而是你的工作单位。我始终认为，对人的培养是一个现代企业需要具备的最基本的素质和承担的社会责任，但是很不幸，在这个一切向“钱”看的时代，很多企业（尤其是国内企业）完全忽视了这一点，总有一天，他们会为他们的无知买单。但是，作为一个完整的人，我们难道要为他们的无知放弃自己的一生吗？</p>
<p>作为一个过来人，我可以非常厚颜无耻地说：珍惜大学的四年时光，学到你想学的东西，了解自己，掌握适合自己的学习方法，最后也给你一个十年来领悟，我保证你不会后悔。</p>
<p>貌似有些跑题，应该更多地谈谈强化部如何影响了我的人生，如何促成了我的成长，但实际上，我想我已经说了许多。</p>
<p>强化部注重的是个人的全面成长，这也是为什么我们要学习各种不同科目的原因。打个比方，如果用四年的时间给你强化培养如何写程序，估计最笨的人也能找到工作，也能养活自己。但是，正如我前面所说，那不是大学教育的目的和意义。不同的科目有不同的学习方法，这些方法反映到每个人身上又会千差万别，如何从其中理出一条属于你个人的脉络，这才是关键。同时，不同的科目可以帮助我们开阔眼见，从各处汲取营养，我们不能只会写程序，多少还要懂点诗词曲赋什么的。</p>
<p>在强调宽厚基础的同时，强化部并没有一刀切，所有人都是一个模式，而是崇尚个性发展。经过一定广度的知识积累后，你同样可以选择喜欢的专业，发挥个人优势。实际上，高中时代的过早文理分科，导致了个人的不平衡发展，我们进入大学的时候已经是一个胳膊长一个胳膊短，而毕业后，则是一个胳膊能着地，另一个也就只能挠挠胳肢窝了。很幸运，强化部能提供一个医治的机会，使得最终的结果不过是你更习惯用左手还是右手罢了。</p>
<p>我不想过多地谈论强化部的老师，因为不管我怎么说，最后都只是一句话：他们都很优秀，他们的言行举止或多或少都影响了我的人生。所有帮助过、见证过我成长的各位老师，借此机会，向你们真心地道一声，辛苦了。你们为强化部、为我们倾注的太多太多了，这根本不是一句感谢可以概括的，我会永远记住和你们相处的那些精彩瞬间，牢记住你们的谆谆教诲。你们永远是我成长的基石和土壤，你们的支撑和营养将使我一生受益。</p>
<p>十年风雨，强化部一路从学步的婴儿成长为充满活力的少年，其间经历了许多，我也算是看着她成长起来的第一届学生，在这样的日子里，感慨颇多，说句俗套但是真心的话，祝您十岁生日快乐，永远健康。</p>
<p>很想知道十年庆有什么活动，也很想回去看看……</p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/555/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
