<?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>林健的BLOG</title>
	<atom:link href="http://blog.linjian.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.linjian.org</link>
	<description>有容乃大，无欲则刚</description>
	<lastBuildDate>Fri, 03 May 2013 13:36:26 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>获得美国业余无线电呼号与操作资格</title>
		<link>http://blog.linjian.org/articles/get-us-ham-callsign/</link>
		<comments>http://blog.linjian.org/articles/get-us-ham-callsign/#comments</comments>
		<pubDate>Sun, 28 Apr 2013 09:25:15 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[电子与无线电]]></category>
		<category><![CDATA[HAM]]></category>
		<category><![CDATA[无线]]></category>
		<category><![CDATA[电子]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=558</guid>
		<description><![CDATA[　　4 月 14 日，我在上海参加了由 BA1AJ/AB7PY 盛老师组织的 W5YI-VEC 美国业余无线电 [...]]]></description>
				<content:encoded><![CDATA[<p>　　4 月 14 日，我在上海参加了由 <a href="http://www.qrz.com/db/BA1AJ">BA1AJ</a>/<a href="http://www.qrz.com/db/AB7PY">AB7PY</a> <a href="http://ba1aj.blog.163.com/">盛老师</a>组织的 <a href="http://www.w5yi-vec.org/">W5YI-VEC</a> 美国业余无线电考试，取得了 Amateur Extra 级别的合格证书。VEC（Volunteer-Examiner Coordinator）和 FCC（Federal Communications Commission）的办事效率很高，不到半个月时间，我的美国呼号——<a href="http://www.qrz.com/db/AF5JV">AF5JV</a>——就获得批准了。<br />
　　这里介绍一些经验。我去年通过盛老师发表在《现代通信》杂志上的文章得知，在中国国内也可以考取美国业余无线电操作资格。考虑到自己可能会有一些短期出国的机会，而美国执照在其他一些国家也得到认可，于是决定考一个，方便不时之需。美国的业余无线电目前分为 Technician、General 和 Amateur Extra 三个级别，需要依次考取（可在同一次考试中连续考取多个级别）。这个考试只需要笔试，不要求 QSL 卡片或现场操作。与美国的其他不少考试类似，题库是公开的，所有考试题目（三个级别共 1500 多道）均从题库中随机抽取。只有四选一的选择题，较低的 Technician 和 General 级别是 35 题中答对 26 题通过，较高的 Amateur Extra 级别是 50 题中答对 35 题通过。因此对于我这种被应试教育培养、懂点英语、有点工科基础、考过国内业余无线电原三级的 HAM 来说，还是相对容易的。<br />
　　我去年在没有看过题库的情况下在网上进行模拟考试，Technician 和 General 级别能得 60% 以上的分数，而 Amateur Extra 级别也能达到 50% 左右，距离 74% 的合格成绩不是很远。在考前一个月，仔细研读了一遍题库。题库是按内容分类的，我比较熟悉的内容是电路计算、业余操作规范、收发机组成与操作等——这些内容要么在大学学过，要么在国内原三级考试中复习过；而比较生疏的是元器件特性、天线分析、电离层与太阳活动等——毕竟以我目前的条件，短波接触的比较少。有些内容，如美国业余无线电的社会服务，虽然没有接触过，但容易通过推理或联想得到答案；而有的内容，如美国合法使用的频率范围，则需要背下来了。事实上需要死记硬背的内容不多，多数技术知识都可以通过理解记忆，或者关键词记忆。能总结出规律的也有一些，比如数字通信的频段中一般都有个“70”。在考前一周利用晚上的业余时间，把 <a href="http://www.qrz.com/hamtest/">QRZ.com</a> 上每个级别的模拟考试各做了十几轮，强化记忆，最终成绩稳定在 90% 以上。<br />
　　现在就等美国执照寄来了，希望这个执照能尽快有用武之地。另外，我也申请了 W5YI-VEC 的 VE（Volunteer Examiner）资格，待批准之后，我会在方便时尽力协助中国区的考试服务。当然，考试只是纸上功夫，实践能力才是更重要的。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/get-us-ham-callsign/">http://blog.linjian.org/articles/get-us-ham-callsign/</a>，作者：<a href="http://linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/cn/">知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议</a>进行许可。
<br />如何您认为本作品有价值，可以向作者<a href="http://linjian.org/donate/">捐款</a>以表支持。
<br />(Digital fingerprint:  993d4981d6d552510db9a08493b2dbec)]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/get-us-ham-callsign/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Enabling systemd-style socket service written in Java</title>
		<link>http://blog.linjian.org/articles/systemd-style-socket-java/</link>
		<comments>http://blog.linjian.org/articles/systemd-style-socket-java/#comments</comments>
		<pubDate>Sun, 24 Mar 2013 05:33:28 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[Linux与开源]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[systemd]]></category>
		<category><![CDATA[开源]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=557</guid>
		<description><![CDATA[sd-daemon-java Enabling systemd-style socket service wr [...]]]></description>
				<content:encoded><![CDATA[<p><span style="font-size: x-large;"><strong>sd-daemon-java</strong></span></p>
<p>Enabling systemd-style socket service written in Java<br />
<a href="https://github.com/sswv/sd-daemon-java">https://github.com/sswv/sd-daemon-java</a><br />
Licensed under the GNU Lesser General Public License Copyright (c) 2012-2013, Jian Lin</p>
<p><strong>How to use</strong><br />
Please read the example code in "src/java/org/linjian/sd_daemon_java/example", diff'ing the "Server" ones with the "ServerNew" ones.</p>
<p><strong>Notice</strong><br />
This program is not yet mature. Only a part of functions in ServerSocket and ServerSocketChannel are covered, which may contain bugs. The simple examples run properly with this program. However, if you want to use it in more complicated or more crucial applications, this program should be improved.</p>
<p><strong>Reference</strong><br />
systemd-style socket service in C: <a href="http://0pointer.de/blog/projects/socket-activation.html">http://0pointer.de/blog/projects/socket-activation.html</a></p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/systemd-style-socket-java/">http://blog.linjian.org/articles/systemd-style-socket-java/</a>，作者：<a href="http://linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/cn/">知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议</a>进行许可。
<br />如何您认为本作品有价值，可以向作者<a href="http://linjian.org/donate/">捐款</a>以表支持。
<br />(Digital fingerprint:  993d4981d6d552510db9a08493b2dbec)]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/systemd-style-socket-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>夸一下宁波银行的借记卡与网上银行</title>
		<link>http://blog.linjian.org/articles/praise-nbcb/</link>
		<comments>http://blog.linjian.org/articles/praise-nbcb/#comments</comments>
		<pubDate>Thu, 28 Feb 2013 14:44:35 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[生活空间]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[服务]]></category>
		<category><![CDATA[社会]]></category>
		<category><![CDATA[自由软件]]></category>
		<category><![CDATA[银行]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=555</guid>
		<description><![CDATA[　　我了解宁波银行，是在张韡武先生的 openbanks.info 网站，上面介绍说该行的网银对非 Windo [...]]]></description>
				<content:encoded><![CDATA[<p>　　我了解<a href="http://www.nbcb.com.cn/">宁波银行</a>，是在张韡武先生的 <a href="http://openbanks.info/">openbanks.info</a> 网站，上面介绍说该行的网银对非 Windows/IE 平台有良好的支持。出于这一点，在宁波银行北京分行中关村支行开业后，我即前去办理了一张借记卡。使用了一段时间，发现对于我等财力有限且有跨平台网银需求的客户而言，宁波银行确实是一个不错的选择。下面简要介绍一下，只供交流，无软文之念。<br />
　　先看看其优势：<br />
　　1、日常费用暂免：借记卡无开户费，<a href="http://www.nbcb.com.cn/content_list/23132.shtml">收费项目表</a>中规定的年费（10 元/年）、小额账户管理费（3-5 元/季）以及余额变动短信提醒服务费（3 元/月）目前在北京分行都是免收的。特别是短信提醒服务，宁波银行是零起点，对于喜欢网络交易和无卡交易的客户来说，在心理上增加了一定的安全感。<br />
　　2、跨行、异地 ATM 取款手续费暂免：虽然宁波银行收费项目表中规定的跨行、异地 ATM 取款手续费相比各大城市商业银行算是偏高的，但对于北京分行的客户来说，目前也是免收的。这个比华夏等银行每天第一笔跨行、异地 ATM 取款免费要实用得多，因为很多 ATM 机一次取款的额度较低，大额取款不得不分成多次完成。<br />
　　3、电子渠道转账手续费部分暂免：网上银行的普通同城跨行转账手续费暂免，异地跨行转账手续费实行较低比例的阶梯费率，这一点虽比不上华夏、中信等超级网银完全暂免手续费的银行，但也挺不错了。手机银行（WAP 与 iOS 版）跨行、异地转账手续费暂免，这个费用在招行、京行等不少银行也是暂免的，看来各家都在大力推广手机银行平台。<br />
　　除此，还有其他一些暂免的费用，由于我暂时用不到，故不介绍。<br />
　　4、存款利率为基准利率 1.1 倍：参考<a href="http://www.tnds.org/cur/renminbi.php">这里</a>，这一条几乎是中小商业银行的标配了——虽然对于我等没有多少本金的客户而言，利率高一点低一点没有实质影响。<br />
　　5、最后，也是最重要的，网上银行跨平台：对于 Linux 用户来说，这是最大的福音。网上支付和转账时，不必为了操作网银而去启动 Windows 虚拟机。前提是使用短信动态密码认证，而非 USBKey。短信动态密码的支付和转账每日限额是 50000 元，对于日常使用来说足够了。不过在我的 64 位 Debian 上测试发现宁波银行网银对 Firefox（Iceweasel）支持良好，而在 Chrome 下会有假死现象。目前国内做得到网上银行真正跨平台（即使用标准化技术，而非为不同平台开发不同“控件”）的还有浦发银行，但浦发借记卡的各项费用早已不再免费。另外，部分在华营业的外资银行的网银也是跨平台的，例如渣打和华侨，但是很多外资银行还没有加入超级网银体系，也没有与主流的电子商务网站签约，使之在本来就缺少实体网点的情况下，网上操作的空间也不大，实用性不强。<br />
　　再来看看缺点：<br />
　　1、实体网点少：目前宁波银行只在 9 个城市有分支机构，除北京、深圳外，均集中在长三角。北京只有分行营业部（建国门）和中关村支行 2 个网点。对于我等以网上银行操作为主，通过超级网银来搬钱的客户而言，这一点毫无影响。但对于不习惯网上操作，却又想享受其跨行、异地 ATM 取款手续费暂免的客户而言，恐怕就要多跑几步路了。<br />
　　2、暂免政策只对部分地区分行发行的借记卡适用：宁波银行正在逐步由地方向全国扩张，在北京等新兴市场，暂免力度范围广、力度大，而在宁波本地以及上海等成熟市场，不少服务已经开始收费了。这也是很多地方银行发展的必由之路，浦发、兴业和京行也都是在发展壮大的过程中，由本地及外地，一步步收缩和取消暂免政策的。<br />
　　最后我想说，作为自由软件用户，我十分支持诸如<a href="http://www.zeuux.com/blog/content/3615/">徐继哲等人呼吁网银技术标准化</a>的努力，但在中国当前这种以技术约束弥补信用约束的大环境下，我也不得不理解银行的使用专有技术的合理性。建议地方银行在向全国扩展的过程中，不要局限于 1.1 倍利率、手续费暂免等的同质化竞争。不妨学学宁波银行，考虑网银跨平台带来的优势，从 Linux 用户这里另辟蹊径。小众用户带来不了太多的直接收益，但在技术层面标准、开放的姿态必然会赢得客户的尊重。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/praise-nbcb/">http://blog.linjian.org/articles/praise-nbcb/</a>，作者：<a href="http://linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/cn/">知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议</a>进行许可。
<br />如何您认为本作品有价值，可以向作者<a href="http://linjian.org/donate/">捐款</a>以表支持。
<br />(Digital fingerprint:  993d4981d6d552510db9a08493b2dbec)]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/praise-nbcb/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Design of MPI-D logo</title>
		<link>http://blog.linjian.org/articles/design-of-mpi-d-logo/</link>
		<comments>http://blog.linjian.org/articles/design-of-mpi-d-logo/#comments</comments>
		<pubDate>Fri, 16 Nov 2012 06:02:06 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[Linux与开源]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MPI]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[设计]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=552</guid>
		<description><![CDATA[MPI-D will release soon! MPI-D logo Copyright (C) 2012  [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://datampi.org">MPI-D</a> will release soon!</p>
<p><strong>MPI-D logo</strong></p>
<p><a href="https://picasaweb.google.com/lh/photo/_xxLa4P8SGilJgWh91gmBtMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="http://linjian.org/imgcache/getimg.php?u=%3Dcmbw5icvx2bD1iZmlGRt82ZvxULE1SSQ10LwADOz9CN1V3ZXdjZzdzZz9SWVNUQBFUQBFUQB9SSWd2XBhTSTh1SV9SWVRld2A1StkHMB1yLt92YuQnblRnbvNmclNXdlx2Zv92ZuQDas9yL6MHc0RHa" height="240" width="600" title="" alt="Design of MPI D logo" /></a></p>
<p>Copyright (C) 2012 by the MPI-D team<br />
Designed by Jian Lin (<a href="http://linjian.org">http://linjian.org</a>).<br />
Thanks to Xiaoyi Lu, Bing Wang, Fan Liang, and Juan Peng for advice.</p>
<p><strong>The meaning of MPI-D logo</strong></p>
<p>1. The white hollow lines in the logo are the abstract of DOTA model. The endpoints and crosspoints from left to right represent each level of D, O, T, and A respectively.<br />
2. The logo consists of 2 parts, the left and the right, reflecting that the nature of DOTA model is a bipartite graph. The left part is in pure gray with the sense of flatness, while the right part is in gradient green with the sense of three-dimensional space. They represent that MPI-D can transmute insipid data into vibrant value, and also show MPI-D's recognition and practice on green computing.<br />
3. The right part is a variant of the letter D that is the first letter of Data and DOTA. The D composes of 4 blocks, representing the 4 characteristics of data computing, that is, Dichotomic, Dynamic, Diversified and Data-centric. The top and bottom blocks of the D shaped like wings represent that MPI-D will help data computing to take off.<br />
4. The left part composes of 3 blocks, representing the theoretical foundation of MPI-D: the 3 theorems of DOTA. The 3 blocks look like the wake of the flying D as well, enhancing the sense of speed.<br />
5. The writing of MPI-D is in black, which is mature and contrasting. The use of the open source Linux Biolinum font with light serif is easily identifiable, and brings a relaxed atmosphere without losing rigorous.</p>
<p><strong>MPI-D Logo 释义</strong></p>
<p>1. 图形中的白色镂空线条是对 DOTA 模型的抽象，线条端点和交点由左至右，分别代表 D、O、T、A 各个层次。<br />
2. 图形由左、右两部分构成，体现 DOTA 模型的本质是二分图。左侧为单一的、平面感的灰色，右侧为渐变的、立体感的绿色，表示 MPI-D 将平淡无奇数据变为生机盎然的价值，同时也代表 MPI-D 认同并践行绿色计算的理念。<br />
3. 右侧绿色部分是字母 D 的变体，即 Data 和 DOTA 的首字母。D 字由 4 块图形构成，代表数据计算的 Dichotomic、Dynamic、Diversified 和 Data-centric 特征。D 字上方和下方的 2 块图形如同两翼，代表 MPI-D 令数据计算如虎添翼。<br />
4. 左侧灰色部分由 3 块图形构成，代表 MPI-D 的理论基础——DOTA 三大定理。3 块图形如同 3 条尾迹，为腾飞的 D 字增加了速度感。<br />
5. MPI-D 文字为黑色，成熟稳重、对比鲜明。使用带有平缓衬线的 Linux Biolinum 开源字体，可辨识度高，在带来轻松气氛的同时不失严谨。</p>
<p><strong>References</strong></p>
<p>[1] Xiaoyi Lu. Research on Key Issues of Professional Services in Cloud Computing. PhD dissertation, Graduate University of Chinese Academy of Sciences, 2012. (in Chinese)<br />
[2] Xiaoyi Lu, Bing Wang, Li Zha, Zhiwei Xu. Can MPI Benefit Hadoop and MapReduce Applications? In Workshop SRMPDS 2011, Proceedings of the 40th International Conference on Parallel Processing (ICPP 2011), 2011.</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/design-of-mpi-d-logo/">http://blog.linjian.org/articles/design-of-mpi-d-logo/</a>，作者：<a href="http://linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/cn/">知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议</a>进行许可。
<br />如何您认为本作品有价值，可以向作者<a href="http://linjian.org/donate/">捐款</a>以表支持。
<br />(Digital fingerprint:  993d4981d6d552510db9a08493b2dbec)]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/design-of-mpi-d-logo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Run Hadoop on Raspberry Pi</title>
		<link>http://blog.linjian.org/articles/run-hadoop-on-raspberry-pi/</link>
		<comments>http://blog.linjian.org/articles/run-hadoop-on-raspberry-pi/#comments</comments>
		<pubDate>Thu, 15 Nov 2012 08:37:56 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[Linux与开源]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MPI]]></category>
		<category><![CDATA[硬件]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=551</guid>
		<description><![CDATA[A post on serverfault said that running Hadoop on Raspb [...]]]></description>
				<content:encoded><![CDATA[<p> <a href="http://serverfault.com/questions/405834/raspberry-pi-based-hadoop-cluster">A post on serverfault</a> said that running Hadoop on Raspberry Pi would be "incredibly bad". But how bad it would be? By the opportunity of another experiment, I set up a Hadoop standalone installation on my Raspberry Pi Model B (256 MB memory) and tested its performance. We know that the heap size of different components in Hadoop can be scaled. However, after several attempts, I found it difficult to restrict MapReduce, HDFS, and an example job within Raspberry Pi's memory and swap file. Therefore, I plugged a USB flash disk (8GB) and made it as a swap partition (NOTICE: Only for experiment. Frequent swapping in/out operations could damage flash memory). </p>
<p> The operating system is Debian wheezy (with hard-float ABI), Java environment is OpenJDK 6, and Hadoop version is 1.0.4. The native code loader and snappy compression library were compiled in x86, which are not runnable on Raspberry Pi, but this does not affect the normal running of Hadoop. I did not recompile these native libraries in order to save time.</p>
<p> I ran the wordcount example over 80KB text files (i.e. the files in Hadoop's conf directory). The result was really "incredibly bad". The job had run over 1 hour before it completed.</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">User: pi</li>
<li>Job Name: word count</li>
<li>Job File: hdfs://raspberrypi21:54310/home/pi/hdfs/mapred/staging/pi/.staging/job_201211151333_0001/job.xml</li>
<li>Submit Host: raspberrypi21</li>
<li>Submit Host Address: raspberrypi21</li>
<li>Job-ACLs: All users are allowed</li>
<li>Job Setup: Successful</li>
<li>Status: Succeeded</li>
<li>Started at: Thu Nov 15 13:44:59 CST 2012</li>
<li>Finished at: Thu Nov 15 14:49:00 CST 2012</li>
<li>Finished in: 1hrs, 4mins, 1sec</li>
<li>Job Cleanup: Successful</li></ol></div>
<p> In contrast, MPI (MPICH2) has a relatively acceptable performance on Raspberry Pi. From the perspectives of the history and implementation, it is easy to understand. Of course, there should be possibility of memory optimization for running Hadoop on Raspberry Pi.</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/run-hadoop-on-raspberry-pi/">http://blog.linjian.org/articles/run-hadoop-on-raspberry-pi/</a>，作者：<a href="http://linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/cn/">知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议</a>进行许可。
<br />如何您认为本作品有价值，可以向作者<a href="http://linjian.org/donate/">捐款</a>以表支持。
<br />(Digital fingerprint:  993d4981d6d552510db9a08493b2dbec)]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/run-hadoop-on-raspberry-pi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>也谈“我为什么弃用智能手机”</title>
		<link>http://blog.linjian.org/articles/farewell-smart-phone/</link>
		<comments>http://blog.linjian.org/articles/farewell-smart-phone/#comments</comments>
		<pubDate>Sun, 11 Nov 2012 08:04:48 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[手机与移动平台]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Milestone]]></category>
		<category><![CDATA[手机]]></category>
		<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=548</guid>
		<description><![CDATA[　　王佩先生前几天在他的“白板报”上谈了弃用智能手机的原因。而事实上，我也在今年 8 月做出了弃用智能手机、回 [...]]]></description>
				<content:encoded><![CDATA[<p>　　王佩先生前几天在他的“白板报”上谈了<a href="http://www.baibanbao.net/tech/2012/11/08/farewell-smart-arms/">弃用智能手机</a>的原因。而事实上，我也在今年 8 月做出了弃用智能手机、回归传统手机的决定。这 3 个月以来，我只在较长时间外出或前往较陌生地点时才携带智能手机，工作和生活并没有任何影响。<br />
　　如果不算 Nokia 6600（S60v2），我是从 2010 年 8 月开始使用现代意义上的智能手机的。我用的是 <a href="http://blog.linjian.org/articles/my-xt702/">MOTO Milestone（国行版 XT702）</a>，装备中国联通 WCDMA 卡，作为移动互联网主力。购买这部手机当然是想赶上 3G 时代浪潮，体验移动生活。资费方面，合约购机有一定的吸引力。同时，我原有的中国移动 GSM 号码一直作为通信主力使用，先后装备在 2 部<a href="http://blog.linjian.org/articles/cmmb-trial/">华为低端手机</a>中。<br />
　　作出弃用智能手机的决定，首先不是因为我在智能手机上浪费了时间。既不玩游戏——手机上仅有的两个游戏是国行 ROM 预装的，无法删除；也不上社交网络——5 年前停用 QQ，3 年前<a href="http://blog.linjian.org/articles/i-see-sns/">离开几乎所有 SNS</a>，并在今年初注销了 twitter 这最后一块保留地；更不看小说——我的阅读载体主要是实体书和 Kindle，在条件许可的情况下只购买正版。其次不是因为中国联通的服务质量。单位和宿舍中，WCDMA 信号并不差（参见我之前的<a href="http://blog.linjian.org/articles/td-scdma-trial/">对比测试</a>），网络质量对用户体验的影响不大；客户服务也并不像网上一些帖子说得那样极品，遇到过自动订阅炫铃和手机报的情况，但最终都妥善解决了。<br />
　　弃用智能手机，更像是一个自然而然的选择过程，因为我发现智能手机对我日常生活的渗透并不深，作用并不大。我的工作、生活环境中，时时处处可以碰得到电脑、连得上网络，有更大的屏幕和顺手的键盘，为什么还要用手机？从宿舍到单位步行也就 20 分钟，边走边玩手机也不安全。这就使得智能手机缺乏一个常规的切入时间点。我使用智能手机最多的情况是外出场合，当电脑和网络访问不便、路途相对陌生而遥远时，智能手机的功用便发挥了出来——但这种情形并不是的常态。<br />
　　拿数据来说话。我统计了今年 4 月至 8 月我的 Milestone 上的应用使用情况。排在前 15 位的是这些应用：百度地图、拨号、Gmail、电子邮件、浏览器、Gtalk、信息、ConnectBot、有道词典、支付宝、ClockSync、电子市场、Wifi 分析仪、RealCalc、DroidLight。排名第 1 位的百度地图是外出时最常使用的应用，之所以用它取代 Google 地图是因为离线地图功能；第 2 位的拨号（即电话和联系人）是手机最原本的功能，虽然 Milestone 不是我的通信主力机，但尽量不要浪费套餐通话时长。前两者的使用频率占所有应用的一半左右。Gmail、电子邮件、浏览器、Gtalk、ConnectBot 和支付宝这 6 个网络应用是我在不便使用电脑却要执行相关操作时的选择。有道词典、Wifi 分析仪、RealCalc、DroidLight 这 4 个则可以归为偶尔使用的本地离线应用（我的有道词典亦使用本地词库）。ClockSync 用来同步系统时间，电子市场用来更新应用版本，这两者上榜有点强迫症色彩。我很少用 Milestone 发短信，发短信主要使用移动号码。信息应用之所以能排在前面是因为收到了很多 1065 开头的中国联通广告短信。此外，我读本科时很喜欢用手机拍照，后来有了相机，手机拍照功能很少使用了。类似地，上课或听讲座时常用的录音功能也已经被专业录音笔取代。<br />
　　可见，我并没有使用任何移动互联网独有的或能力占优的应用（比如微信或微博）。我使用的网络应用几乎都是传统电脑应用和网络服务的延伸，其中又以基于通用协议的居多（包括电子邮件、浏览器、ConnectBot、ClockSync，从技术角度看 Gmail 和 Gtalk 也算），专有服务的客户端居少（包括支付宝、电子市场，亦可把连网作为可选功能的百度地图和有道词典计算在内）。我对移动互联网及其相关潮流的兴趣更多地体现在技术方面，比如尝试新奇的硬件，测试不同的网络制式，搞明白 4G 和 3G 的差别，体验 WAPI、CMMB、DAB 等周边技术，或是做一些自己也不知道有什么用的 DIY 等。相比之下，我在应用方面则相对保守一些，对移动互联网开辟所谓的新天地仍然谨慎观望，更多的需求是对传统电脑应用和网络服务的移动化。这种情况下，智能手机对我而言只是一台更方便携带、更容易连网的低配电脑而已。<br />
　　除了上述原因，我弃用智能手机还有一些相对公认的理由。耗电问题是老生常谈，本来就指望在外出时才频繁使用的移动设备，偏偏不能持久支撑，不得不备着电池和充电线。体积问题在夏天较为突出，随身带 2 个手机有点别扭，只好把 2 个号码互设呼叫转移，根据情况只带 1 个手机出门。至于隐私泄露问题，我倒是觉得智能手机和非智能手机半斤八两。就我使用的那些应用而论，恐怕主要的信息收集点还是在实名登记、基站注册、通话与短信记录以及电子邮件内容上。这些掌握在网络运营商或服务提供商手中的数据与使用什么样的终端关系不大。<br />
　　当然，看了我的理由，你会知道我所谓的“弃用智能手机”并不是一点儿也不用，只是不作为日常装备而已。已有的投资不能浪费，把智能手机放在和相机、录音笔一样的地位，在必要时携带即可。再等几个月，待中国联通合约到期之后，我会改用费用更低、资源更少的套餐，甚至考虑把 Milestone 作为离线或纯 Wi-Fi 设备使用。另外，如果你哪天又看到我在试用 4G 手机之类的东西也不要稀奇，上文已经澄清了我的关注点。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/farewell-smart-phone/">http://blog.linjian.org/articles/farewell-smart-phone/</a>，作者：<a href="http://linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/cn/">知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议</a>进行许可。
<br />如何您认为本作品有价值，可以向作者<a href="http://linjian.org/donate/">捐款</a>以表支持。
<br />(Digital fingerprint:  993d4981d6d552510db9a08493b2dbec)]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/farewell-smart-phone/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>《叫魂》阅读笔记</title>
		<link>http://blog.linjian.org/articles/read-soulstealers/</link>
		<comments>http://blog.linjian.org/articles/read-soulstealers/#comments</comments>
		<pubDate>Wed, 19 Sep 2012 00:56:25 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[文科类文档]]></category>
		<category><![CDATA[历史]]></category>
		<category><![CDATA[社会]]></category>
		<category><![CDATA[读书会]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=545</guid>
		<description><![CDATA[　　我虽然自称喜好读书，但工科思维使我在对社会科学作品的选择上也倾向于那种具有教科书式条理的“正统”作品，而对 [...]]]></description>
				<content:encoded><![CDATA[<p>　　我虽然自称喜好读书，但工科思维使我在对社会科学作品的选择上也倾向于那种具有教科书式条理的“正统”作品，而对于孔飞力的《<a href="http://book.douban.com/subject/10471333/">叫魂</a>》这类无论标题还是内容都比较文学化的作品，以前很少进入我的涉猎范围。<a href="http://weibo.com/gaofu">杨早</a>老师这次给了我一块不错的敲门砖。<br />
　　拿到一本书，我常常先看完前言后记之类，再去读正文，《叫魂》入手之后亦是如此。这本书的译者后记篇幅较长，译者在表达对原作赞赏之意的同时，也难免有些“剧透”。这也倒好，对于我这样的读者，这篇后记正好提供了全书的脉络，使我有信心认为这是一本基于史实的、严肃的学术著作。<br />
　　这本书针对乾隆时期的叫魂一案，清晰地给出了民间、官员和皇帝三个叙事与分析视图，而我下面的阅读感想，主要针对民间视图。<br />
　　叫魂案伊始，有一个细节令我感触较深，即民间对外来人员的恐惧。因为这让我想起了我初到北京那年，在穿过一个住宅小区时被几位居委会大妈围住问讯的情形。民间认为僧道与鬼神相通，乞丐与灾病相联，这些容易理解；然而对于农夫、船员在内的一切外来人员的敌视态度，却成为社会恐慌时期的标志性现象。妖术还没有现身，人祸却首先降临，大量无辜的外来人员因此挨打甚至丧命，切实印证了进攻是最好的防守。联想到现今，排外、防外的情绪依然常见：一些欧美国家的居民出于民族主义或竞争压力，对新兴移民持抵制态度，极端代表诸如俄罗斯的光头党；而中国则将流动人员管理制度化，在制度被其执行者不断异化之后出现过孙志刚事件一类的惨案。因此，叫魂案中的那些事例并非偶然，决非只与妖术相关。排外、防外的深层原因是什么？以往我认为主要是外来人员剥夺了本地人的自然和社会资源，而《叫魂》给出的核心答案则是本地人安全感的缺失。这种缺失出现在一个所谓的盛世时期，而非战乱或饥荒年代，不得不让我们思考其中有多少是那个社会体制的原因。推而广之，民间对“防人之心不可无”这句古语的实践深浅很可能可以作为检验社会机制运行健康程度的标志。盛世与否，这一民间指数能够说明一定的问题。<br />
　　叫魂案中所谓的恐慌时期，民间真的是一种失去理性的混乱状态吗？群体现象上看也许是，但在个体思维方面，我相当怀疑。虽然基于传统信仰体系，民众对鬼神和妖术的恐惧可以理解，但这只能算是一个引子。这种基于超自然概念的恐惧长期停留在口口相传阶段，却难以亲眼见妖术的直接受害者。在这种状态下，民众也许很快就会习惯新的行为方式和处世原则，逐渐开始一边防范、一边利用这种新的社会元素——至于它的来源如何，已经不再重要。当我看到作者和译者均以“文化大革命”时期的思维模式、人际关系与叫魂案对比后，更加坚信所谓恐慌的民众，就个体而言事实上都在以一种与其认知水平相符合的理性参与这种难得的社会互动——用文革术语说就是“大民主”。作者将民众在叫魂案中的热情参与称之为“权力的幻觉”，强调病态社会中民众的病态心理，但我更倾向于认为病态的社会源于清醒的民众。先不说这种清醒背后的个人目的是否光彩，但可以肯定各阶层人士都在抓紧机会做那些在太平时期有所顾忌的事，区别只在于他们各自代表的利益实体：对社会底层大众来说有可能是所谓的冤冤相报，对官僚和知识分子来说则有可能是升迁发展之道。我认同“历史是人民创造的”，但这对人民来说显然不只是赞美之辞，更是一种不可回避的责任。这种自下而上的社会参与积极性恐怕才是这场风波得以长期延续的动力。<br />
　　这种似醉实醒的精神状态大约就是中华民族中庸哲学的表现，而作者认为这也是社会道德堕落的体现。但作者在做这些带有贬义特征的归纳时，几乎总要限定一下时代背景，加之书中又以中世纪欧洲的宗教迫害、二十世纪美国的“零和社会”与叫魂案时期的中国相类比，使我还隐隐感到作者有意回避用中国人的民族性来解释叫魂案中的社会丑态。当然，作为一位历史学家、一位严谨的学者，这也许是职业习惯或义务。我并不十分了解作者所提的欧洲和美国的那些故事，但对于当今中国人动辄以民族性来解释社会问题的观点保持警惕。毕竟，我们能够经历的只是人类历史长河中的微小片段，多数人能了解到的历史也只是经过加工修饰的资料。民族性本身及其差异可以研究，但它是否有优劣之分？置身于人类文明之中，受制于已经带有民族性及其衍生特征的观察视角，这恐怕永远是一个无解的问题。<br />
　　我不太了解社会科学的研究和评价方法，特别是像历史这种不易以实验方法探究的领域，我只能妄言几句。“叫魂”这一主题不像我此前阅读过的编年体正史或专题类历史作品，它以小见大，以细节叙事方式，由一个特定的社会事件反映一个政权的维系体系、一个时期的社会风貌，乃至一个民族的心理特质。在我看来，花大力气写这种作品是要冒很大风险的，特别是在遭遇学界非议的情况下。即便如此，作者能够花数年时间淡定地完成如此一部需要大量外文史料整理和分析工作的著作。我虽然尚不能理解学界为什么把《叫魂》看作一本“大书”，但从上面这一点，我能够体会出大师与凡人的区别。<br />
　　还要感谢两位译者的。虽然作者向译者提供了史料的复制件，但要想准确而流畅地表达《叫魂》中那些与现代社会已有所隔阂的诸多概念，非业内学者不能为。相比专业学识，我认为更加值得敬佩的是译者的文字功底和敬业精神，而这正是中国科技类图书翻译大军所欠缺的。<br />
　　我深知以我目前之力，通过《叫魂》窥到的只是历史和现实（即作者所谓“我这本书也是在写今天的中国”）的局部。这块敲门砖以及它为我打开的这片空间都有待进一步体味。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/read-soulstealers/">http://blog.linjian.org/articles/read-soulstealers/</a>，作者：<a href="http://linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/cn/">知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议</a>进行许可。
<br />如何您认为本作品有价值，可以向作者<a href="http://linjian.org/donate/">捐款</a>以表支持。
<br />(Digital fingerprint:  993d4981d6d552510db9a08493b2dbec)]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/read-soulstealers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一种声光电磁网结合的鲁布·戈德堡机械的设计与实现</title>
		<link>http://blog.linjian.org/articles/goldberg-cw/</link>
		<comments>http://blog.linjian.org/articles/goldberg-cw/#comments</comments>
		<pubDate>Tue, 31 Jul 2012 15:01:07 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[电子与无线电]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[实验]]></category>
		<category><![CDATA[电子]]></category>
		<category><![CDATA[硬件]]></category>
		<category><![CDATA[设计]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=538</guid>
		<description><![CDATA[一种声光电磁网结合的鲁布·戈德堡机械的设计与实现（林健，BH1NAF） 概述 　　传统鲁布·戈德堡机械往往以多 [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><strong>一种声光电磁网结合的鲁布·戈德堡机械的设计与实现<br /></strong>（林健，BH1NAF）</p>
<p><strong>概述</strong></p>
<p>　　传统<a href="http://zh.wikipedia.org/wiki/%E9%AD%AF%E5%B8%83%C2%B7%E6%88%88%E5%BE%B7%E5%A0%A1%E6%A9%9F%E6%A2%B0">鲁布·戈德堡机械</a>往往以多种物理传动装置连接构成，通过机械连锁反应实现无意义的功能，视觉冲击力和趣味性强。但其设计实现受制于空间和材料、部署与执行稳定性低、实验和调试成本高。本文提出一种以电子技术为主的，声光电磁网结合的鲁布·戈德堡机械设计思路。相比传统设计，基于电子技术的设计具有执行速度快、空间可扩展性强、受物理环境干扰小、便于重做和调试等优势。此外，作者期望使鲁布·戈德堡机械具备有意义的功能，兼顾趣味性和实用性。基于此设计，本文给出了一套原型系统，通过模拟电路、微控制器、单板机、微型计算机、无线电与红外线收发信机以及网络终设备的连接与交互，实现了一种具有声光反馈、能够自动归档的分布式<a href="http://zh.wikipedia.org/wiki/CW">CW</a>电键练习装置。实验验证了此类设计的可行性与应用优势。</p>
<p>　　（以下省略原理与模型设计部分）</p>
<p><strong>原型系统</strong></p>
<p>　　图0给出了基于电子技术的鲁布·戈德堡机械原型系统的执行流程。下文通过展示原型系统实现效果，对此流程进行简述。</p>
<p style="text-align: center;"><a href="https://picasaweb.google.com/lh/photo/X4_RSTH8OrwprJ8oqrHuqNMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="http://linjian.org/imgcache/getimg.php?u=%3Dcmbw5CMnJXZiRGbvd2LwADOz9SRfpkQrlkMrZHb69ybUNUQBFUQBFUQB9SSSZXZlRXLOlmQV9yayQHeFVEdoFHdo1yLt92YuQnblRnbvNmclNXdlx2Zv92ZuUDas9yL6MHc0RHa" height="480" width="640" title="" alt="一种声光电磁网结合的鲁布·戈德堡机械的设计与实现" /></a><br />图0 基于电子技术的鲁布·戈德堡机械原型系统的执行流程</p>
<p>　　CW电键作为开关，控制左侧回路电流通断。电流接通时，电磁铁产生磁场，使得右侧回路中的干簧管导通，输出控制电平。右侧回路中带有一个发光二极管，作为视觉反馈。</p>
<p style="text-align: center;"><a href="https://picasaweb.google.com/lh/photo/Ea48vTKROkil5iWu8jdxstMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="http://linjian.org/imgcache/getimg.php?u=%3DcGcq5SMnJXZiRGbvd2LwQjNz9ycIpGa3MjdCF0Qy8COTNUQBFUQBFUQB9SSFdzdCFncTZmQV9SUoVVTyBXb0Bna50yLt92YuQnblRnbvNmclNXdlx2Zv92ZuYDas9yL6MHc0RHa" height="480" width="640" title="" alt="一种声光电磁网结合的鲁布·戈德堡机械的设计与实现" /></a><br />图1 接口电路</p>
<p>　　左侧<a href="http://arduino.cc/">Arduino</a> 1检测到控制电平后，通过数字I/O点亮发光二极管，并设置少量延时，防止抖动。右侧Arduino 2以光敏电阻作为电平控制开关，在光照达到一定强度后，通过数字I/O输出1000Hz的方波信号，并将该信号作为调频发射机的音频输入。调频发射机将信号调制之后，在100.0MHz上广播。</p>
<p style="text-align: center;"><a href="https://picasaweb.google.com/lh/photo/3rnxwmNoSxgDUgy1x9JeG9MTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="http://linjian.org/imgcache/getimg.php?u=%3DcGcq5iMnJXZiRGbvd2LwQjNz9yYGBTbOlUYZh0c19COTNUQBFUQBFUQB9SSfFjRJhDcTZmQV9SQDZFSPp2U1I2QO1yLt92YuQnblRnbvNmclNXdlx2Zv92ZuQDas9yL6MHc0RHa" height="480" width="640" title="" alt="一种声光电磁网结合的鲁布·戈德堡机械的设计与实现" /></a><br />图2 Arduino 1、Arduino 2</p>
<p>　　调频收音机接收频率设置为100.0MHz，并将耳机输出作为红外发射机的音频输入。红外发射机将信号调制之后，以2.8MHz载波频率发射。</p>
<p style="text-align: center;"><a href="https://picasaweb.google.com/lh/photo/88L49HYwAbt0PtXMsp8XWtMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="http://linjian.org/imgcache/getimg.php?u=%3DcGcq5yMnJXZiRGbvd2LwQjNz9ycQFneY91Nvx2SN9COTNUQBFUQBFUQB9SSwRUYBNHTUZmQV9yZSJWaF5Uay4Ubw1yLt92YuQnblRnbvNmclNXdlx2Zv92ZuQDas9yL6MHc0RHa" height="480" width="640" title="" alt="一种声光电磁网结合的鲁布·戈德堡机械的设计与实现" /></a><br />图3 调频收音机</p>
<p>　　红外收音机固定接收2.8MHz的红外载波信号，将音频信号解调之后直接播放，一方面作为听觉反馈，一方面通过计算机1（Windows系统）的麦克风输入，由计算机上运行的<a href="http://f6cte.free.fr/">MultiPSK</a>软件进行信号处理，将音频序列按<a href="http://zh.wikipedia.org/wiki/%E6%91%A9%E6%96%AF%E5%AF%86%E7%A2%BC">Morse电码</a>解码为字符序列，输出在屏幕上（可观察到“HELLO WORLD”序列）。同时在无线网卡上开放3122端口，以TCP报文发送字符序列。<br />
　　注意，这里可以将红外收音机的耳机输出连接到计算机的线路输入接口或麦克风接口。为消除干扰，可添加简单的滤波电路。如果使用麦克风接口，还需要考虑降低输入电平。原型系统中为体现听觉反馈特性，采用外放外录方案。</p>
<p style="text-align: center;"><a href="https://picasaweb.google.com/lh/photo/xYX6SgZKZdfQ7mWhg7Gs9tMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="http://linjian.org/imgcache/getimg.php?u=%3DcGcq5CNnJXZiRGbvd2LwQjNz9COMJ1YmdVUygnby8COTNUQBFUQBFUQB9SSuNjW3F0dTZmQV9SVaZ2d6d0Ro1iTL1yLt92YuQnblRnbvNmclNXdlx2Zv92ZuUDas9yL6MHc0RHa" height="480" width="640" title="" alt="一种声光电磁网结合的鲁布·戈德堡机械的设计与实现" /></a><br />图4 红外收音机、计算机1</p>
<p>　　计算机2（Linux系统）同样连接无线网络，使用nc命令监听计算机1发来的TCP报文，使用tr命令将MultiPSK生成的组分隔符（\035）替换为换行符（\n），然后通过管道将字符序列重定向到本地串口ttyS0。该串口连接到<a href="http://blog.linjian.org/articles/get-raspberry-pi/">Raspberry Pi</a>的USB外接串口ttyUSB0，Raspberry Pi读取串口输出，写入命名管道mypipe。后台执行的sender脚本定时读取mypipe，将字符序列调整格式，封装为发送给<a href="http://www.amazon.com/gp/help/customer/display.html/ref=hp_pdoc_main_short_us?nodeId=200767340">Kindle Personal Documents Service</a>的SMTP消息。借助3G路由器和3G Modem，先后通过有线网络和3G网络连接远程邮件服务器发送邮件。</p>
<p style="text-align: center;"><a href="https://picasaweb.google.com/lh/photo/IFz-96cltbiFQLDqGX6ohtMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="http://linjian.org/imgcache/getimg.php?u=%3DcGcq5SNnJXZiRGbvd2LwQjNz9yYSlVNjN3XlpHbn9COTNUQBFUQBFUQB9SSCBnNOFWdTZmQV9yczcjSJpFesVUSv1yLt92YuQnblRnbvNmclNXdlx2Zv92ZuMDas9yL6MHc0RHa" height="480" width="640" title="" alt="一种声光电磁网结合的鲁布·戈德堡机械的设计与实现" /></a><br />图5 计算机2、Raspberry Pi、3G路由器</p>
<p>　　Kindle通过3G网络接收来自Personal Documents Service的推送信息。点击之后可显示定时归档的字符序列（可观察到“HELLO WORLD”序列）。<br />
　　注意：原型系统为节省Amazon美国境外3G推送服务费用，使用WiFi网络演示</p>
<p style="text-align: center;"><a href="https://picasaweb.google.com/lh/photo/typrYQZyxNBN6tuoP33h29MTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="http://linjian.org/imgcache/getimg.php?u=%3DcGcq5iNnJXZiRGbvd2LwQjNz9SRxZUNXhGTwN2Vt9COTNUQBFUQBFUQB9SSMJ1SzUFeTZmQV9CMwkVOpNjR0cGTz1yLt92YuQnblRnbvNmclNXdlx2Zv92ZuMDas9yL6MHc0RHa" height="480" width="640" title="" alt="一种声光电磁网结合的鲁布·戈德堡机械的设计与实现" /></a><br />图6 Kindle</p>
<p>　　除最后一步基于网络服务的自动归档外，系统其他环节皆以接近光速、声速或局域网络延迟的速度执行，满足CW电键练习装置的实时性需求。</p>
<p>　　（以下省略系统评测与相关工作部分）</p>
<p><strong>结论</strong></p>
<p>　　本文提出的以电子技术为主的，声光电磁网结合的鲁布·戈德堡机械设计思路在一定程度上解决了此类机械设计中的稳定性、可扩展性和可调试性等问题。给出的原型系统在传统CW电键练习装置基础上增加了分布式部署、自动归档等特性，验证了这类设计的可行性，体现了趣味性和实用性。<br />
　　Arduino和Raspberry Pi提供了I2C、SPI等数字与模拟输入输出接口，在设计时可以充分发挥其能力，例如连接传感器与物理世界进行交互。此外，电话、电视与电力网络、互联网<a href="http://blog.linjian.org/articles/mashup-more-crazy/">Mashup</a>服务乃至业余卫星与短波通信等也可作为设计元素，以此增强系统的空间扩展性。本文由于器材和时间限制，未进行深入研究。</p>
<p><strong>致谢</strong></p>
<p>　　感谢为我提供部分实验器材的同学，感谢各位耐心的读者。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/goldberg-cw/">http://blog.linjian.org/articles/goldberg-cw/</a>，作者：<a href="http://linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/cn/">知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议</a>进行许可。
<br />如何您认为本作品有价值，可以向作者<a href="http://linjian.org/donate/">捐款</a>以表支持。
<br />(Digital fingerprint:  993d4981d6d552510db9a08493b2dbec)]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/goldberg-cw/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>为什么会有 setuid？为什么不是别的机制？</title>
		<link>http://blog.linjian.org/articles/why-setuid/</link>
		<comments>http://blog.linjian.org/articles/why-setuid/#comments</comments>
		<pubDate>Mon, 16 Jul 2012 11:42:05 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[Linux与开源]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[思想]]></category>
		<category><![CDATA[系统]]></category>
		<category><![CDATA[设计]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=535</guid>
		<description><![CDATA[　　来我们组面试过的同学，如果在简历中写了“熟悉 Unix/Linux”之类的话，那么很可能被问到类似这样的问 [...]]]></description>
				<content:encoded><![CDATA[<p>　　来我们组面试过的同学，如果在简历中写了“熟悉 Unix/Linux”之类的话，那么很可能被问到类似这样的问题：“为什么会有 <a href="http://en.wikipedia.org/wiki/Setuid">setuid</a>？为什么不是别的机制？”。前不久和<a href="http://sourcedb.cas.cn/sourcedb_ict_cas/cn_1/jssrck/200909/t20090917_2496752.html">徐老师</a>讨论设计原则问题时又聊到了这个 setuid。应徐老师建议，写下这篇命题作文，说说我的理解。<br />
　　首先从 setuid 的应用场景谈起。很多教科书和网络文章讲 setuid 时都会拿 passwd 命令举例（据说老一辈人更喜欢举 mailbox 的例子，异曲同工）。我们抛开对已知实现方式的理解，假设需要重新设计，看看这个场景有哪些需求和解决方案。需求方面，一种典型理解是：要求用户 a 可以使用程序 φ 受控地操作用户 b 的文件 θ。所谓受控，是指满足一个操作约束集合 S。除此之外，用户 a 对用户 b 的其他文件没有任何特权。事实上这就是一个访问控制问题，前人已经总结了<a href="http://en.wikipedia.org/wiki/Access_control#Access_control_models">若干解决模型</a>。完备的角色访问控制（RBAC）或许能够涵盖全部需求，只要系统或管理员为特定的业务提供特定的角色并严格控制会话；即便使用自主访问控制（DAC），只要实现得足够细粒度，也可以尽力满足上述需求，只是安全性保证略差。但以文件为主要客体抽象的 Unix 偏偏选择了一种粗粒度的 DAC——<a href="http://en.wikipedia.org/wiki/Filesystem_permissions#Traditional_Unix_permissions">ugorwx</a>。为什么要做出这种选择？这很可能与 Unix 的“简单（K.I.S.S.）”设计哲学密切相关。相比其他模型，ugorwx 对系统和应用作出最少的必要假设，在提供最基本安全性的同时保证了较小的存储和决策开销。单纯使用 ugorwx 模型已经能够涵盖大多数正常业务操作（与系统管理或实用工具操作相对）的访问控制共性需求。<br />
　　然而 ugorwx 不能满足 passwd 和 mailbox 那样的需求，因为它对 θ 的控制粒度太粗，允许 b 使用 φ 操作 θ，就意味着必须允许所有用户使用任意程序操作 θ，那么篡改他人密码、偷看他人邮件岂不易如反掌？于是，必须要有一种额外机制为 ugorwx 的简单性承担责任。现在假设要我们来设计这个额外机制，可以怎么干呢？万全之道可能是做一套基于规则的访问控制系统，在特定条件触发时执行——这显然不够简单。还可以给每个用户或文件挂一个访问控制列表（ACL），声明特权，但其实主体之间的特殊关系可以通过 group 约束，ACL 这种特殊化不但不够简单，还可能违背了 ugorwx 的设计初衷。那么，只能把目光集中到那个特殊的程序 φ 上。可以对它做一些手脚吗？其一，φ 只是一小类需要特殊处理的例外程序，程序本身是可以精心设计的，也就是说 φ 已经自包含了 S 和 θ 属性，无须对 S 和 θ 做专门处理。其二，既然 ugorwx 的设计将主体关系特殊性交由 group 处理，那么就有理由忽略各个 others 成员的特殊性，即忽略 a。其三，b 对 θ 的 owner 关系是 ugorwx 中已经存在的，φ 运行时访问 θ，可以获知这个信息。基于上述事实，一种最小开销的额外机制设计也就水到渠成：通过一个特殊的标志位标识特殊的程序 φ，并在进程中区分“真实 UID”与“有效 UID”的概念——这基本就是 setuid 了。论功能，setuid 的确不够完备，但上述分析说明这并不是大问题，至少已经可以应对 passwd 和 mailbox 场景了。<br />
　　事实上，Unix 设计哲学对各个属性的取舍早已得到总结。<a href="http://en.wikipedia.org/wiki/Richard_P._Gabriel">Richard Gabriel</a> 的经典名篇 <a href="http://www.jwz.org/doc/worse-is-better.html">The Rise of “Worse is Better”</a>中将其归纳为“新泽西方法”，即：简单性是系统设计的第一要素，实现的简单比接口的简单更重要；任何值得注意的方面都要求正确性，但为了简单性，正确性可以轻微让步；设计不能过于不一致，但为了简单性，一致性可以有所牺牲；完备性应该覆盖实践中许多重要的情况，但只要简单性受到危害，完备性必须作出牺牲。对照来看，ugorwx 是一种接口和实现都很简单的设计；ugorwx 与 setuid 提供的安全级别（正确性）有限，但对通用操作系统来说已经足够；setuid 以牺牲接口一致性为代价确保了 ugorwx 机制在多数情况下的简单性，同时本身的实现也保持了尽量简单；setuid 不具有 RBAC 那样的完备性，但已经能够应对系统管理或实用工具的等常见的重要场景。<br />
　　最后，我们向历史求证一下 setuid 的来源。Wikipedia 给出的答案并不令人惊讶，setuid 的创造者正是 <a href="http://en.wikipedia.org/wiki/Dennis_Ritchie">Dennis Ritchie</a> 大神，当时的一篇专利（<a href="http://www.google.com/patents/US4135240">US4135240 - Protection of data file contents</a>）记录了他的设计思想。在这篇如同学术论文的专利中，Ritchie 确实把简单性作为了 setuid 的主要出发点和创新点。专利风格诚恳，不但给出了 setuid 的设计方案和应用示例，同时也承认了它在功能上的不足。根据 Wikipedia 上给出的<a href="http://www.textfiles.com/law/softpat.txt">引文</a>，AT&amp;T 出于“不值得收取许可费用”的考虑，将该专利释放到了公有领域，任由开发者使用，这也使得 setuid 在多种衍生系统中发扬光大，流传至今。<br />
　　当然，对于这种开放性问题，每个人都可能有自己的答案，本文观点也只是作者的个人理解。不过如果你下次面试时遇到了诸如“为什么会有 <a href="http://en.wikipedia.org/wiki/Ioctl">ioctl</a>”之类的问题，不妨从设计哲学角度考虑一下。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/why-setuid/">http://blog.linjian.org/articles/why-setuid/</a>，作者：<a href="http://linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/cn/">知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议</a>进行许可。
<br />如何您认为本作品有价值，可以向作者<a href="http://linjian.org/donate/">捐款</a>以表支持。
<br />(Digital fingerprint:  993d4981d6d552510db9a08493b2dbec)]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/why-setuid/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Raspberry Pi 到手</title>
		<link>http://blog.linjian.org/articles/get-raspberry-pi/</link>
		<comments>http://blog.linjian.org/articles/get-raspberry-pi/#comments</comments>
		<pubDate>Sat, 30 Jun 2012 15:06:19 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[Linux与开源]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[硬件]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=531</guid>
		<description><![CDATA[　　我五月初订购的 Raspberry Pi 到手了，比预计时间早一些。 　　二月底 Raspberry Pi [...]]]></description>
				<content:encoded><![CDATA[<p>　　我五月初订购的 <a href="http://www.raspberrypi.org/">Raspberry Pi</a> 到手了，比预计时间早一些。<br />
　　二月底 Raspberry Pi 正式发布时，<a href="http://blog.xiang.li/">idealee</a> 同学专门给我发邮件说过它。我当时没太在意，因为大学时做竞赛项目也用过一些小主板、小 PC，包括 <a href="http://www.via.com.tw/en/initiatives/spearhead/pico-itx/index.jsp">VIA Pico-ITX</a> 和 <a href="http://www.compactpc.com.tw/ebox-2300.htm">eBox</a>，故而对 Raspberry Pi 的“小”没什么感觉。但五一时偶然在所里见到一块 Raspberry Pi，试用了一下，又听了同学神侃，我发现 Raspberry Pi 还是有一些优势的，包括价格、开放性、可折腾性等。加之它有慈善组织背景，于是决定订购一块，研究加收藏。<br />
<a href="https://picasaweb.google.com/lh/photo/wJJxZ_dq3nR5Be2dQLWPXtMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="http://linjian.org/imgcache/getimg.php?u=%3DcGcq5SaQ1SeyJXZiB3chJ1LwQjNz9SUqN1XzQlNC9kaI9ycSNUQBFUQBFUQB9SSM92Z6tWWQhTLU9CMvhVRlREUHZVQ10yLt92YuQnblRnbvNmclNXdlx2Zv92ZuYDas9yL6MHc0RHa" height="480" width="640" title="" alt="Raspberry Pi 到手" /></a><br />
　　到手之后简单测试，感觉 Raspberry Pi 的性能还是符合我的预期的。官方提供的映像使用起来基本没有障碍，我手头的外设也都工作良好。专门试了一下 GPIO，只需要读写 /sys 文件系统就可以实现控制交互。只有一点不爽的：Raspberry Pi 的视频输出接口是 HDMI 和 Composite RCA（“AV”的“V”），而我周围的显示器都是 VGA 的，不光没有 HDMI，连 DVI 都没有，只能使用 HDMI-VGA 转接头。一个转接头的价格快赶上 Raspberry Pi 本身了，好在实验室某果粉手里有一个，借来先用。通过廉价的山寨 USB 视频采集卡接入 Composite RCA 信号也是一个办法，但这又不是玩 FC，PAL/NTSC 那点分辨率看看视频还行，操作终端和桌面可能会是煎熬。（这句话反过来说似乎也对？）<br />
　　顺便聊聊相关的产品。我前不久关注过 <a href="http://www.arduino.cc/">Arduino</a>，因为连续几期《无线电》杂志几乎被它占领了。最初看到 Raspberry Pi 上那两排针脚时，我曾期望它能够完全涵盖 Arduino 的能力。不过查看相关资料后发现，<a href="http://www.raspberrypi.org/archives/1171">Raspberry Pi 并没有侵占 Arduino 市场的意思</a>。它只有 8 个非 0 即 1 的 GPIO，其余针脚是 UART、I2C、SPI 等接口，而非板载 ADC、DAC。这也好，EE 和 CS 本来就是有分工、有合作（如 <a href="http://omer.me/2012/05/introducing-ponte/">Ponte</a>）。<br />
　　最近另一款吸引眼球的小设备是 <a href="http://www.engadget.com/2012/06/07/mk802-android-4-0-mini-pc-hands-on-impressions/">MK802 Android 4.0 Mini PC</a>，它基于 <a href="http://rhombus-tech.net/allwinner_a10/">Allwinner A10</a> 解决方案，主要面向家庭娱乐市场。不考虑开放性等理想因素，对于非折腾型用户，MK802 的性价比可能比 Raspberry Pi 更高一些。当然，Android 系的东西要想折腾都是有可能的，CSK 同学几天前就给出了<a href="http://www.csksoft.net/blog/post/288.html">一个例子</a>。<a href="http://twitter.com/lonepig">@lonepig</a> 同学根据 Android 市场现状估计，MK802 这类产品还有降价空间。<br />
　　后续仍然关注 Raspberry Pi 的 26 根针脚，以及 DSI、CSI 接口的潜力。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/get-raspberry-pi/">http://blog.linjian.org/articles/get-raspberry-pi/</a>，作者：<a href="http://linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/cn/">知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议</a>进行许可。
<br />如何您认为本作品有价值，可以向作者<a href="http://linjian.org/donate/">捐款</a>以表支持。
<br />(Digital fingerprint:  993d4981d6d552510db9a08493b2dbec)]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/get-raspberry-pi/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>
