<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>zerocool (麥機長)</title>
    <link>https://ruby-china.org/zerocool</link>
    <description>Talk is cheap, show me the action.</description>
    <language>en-us</language>
    <item>
      <title>Bootstrap 在 Rails 上的问题</title>
      <description>&lt;p&gt;在 Rails 页面里使用 Bootstrap 的按钮下拉菜单，很简单的结构，HTML 输出结果也跟 Bootstrap 官方的 sample 一样，采用的 jquery 为 jquery-2.0.3.min.js，所有 js 在页面尾部加载，而且 jquery 先于所有 bootstrap 的 js 加载，同时，也加载了 bootstrap-dropdown.js。&lt;/p&gt;

&lt;p&gt;现在的问题是，点击下拉按钮的时候，菜单总是弹不出来，打开 Firefox 的 console，看到一行错误：
&lt;code&gt;Empty string passed to getElementById()&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;换成未压缩 jquery 后，定位错误，的确是传递了一个空字符串，但我想应该不是 jQuery 的问题，而是 Bootstrap 整合到 rails 里的问题，因为在 HTML 页面里没有问题。&lt;/p&gt;

&lt;p&gt;Button 的 data loading 也有同样的问题。&lt;/p&gt;

&lt;p&gt;请问大家是否也遇到过这样的问题？&lt;/p&gt;</description>
      <author>zerocool</author>
      <pubDate>Tue, 01 Oct 2013 22:19:28 +0800</pubDate>
      <link>https://ruby-china.org/topics/14503</link>
      <guid>https://ruby-china.org/topics/14503</guid>
    </item>
    <item>
      <title>一个 User.find 的问题</title>
      <description>&lt;p&gt;请教各位一个问题：我想在页面上输出一个用户的用户名，当前页面数据对象是&lt;a href="/stuff" class="user-mention" title="@stuff"&gt;&lt;i&gt;@&lt;/i&gt;stuff&lt;/a&gt;，所以要用 User.find 先找到该用户数据对象，但有可能该用户已被删除，所以逻辑上是，如果能拿到数据结果，就显示用户名，否则显示“该用户已注销”。&lt;/p&gt;

&lt;p&gt;很简单的一个问题，但不知道哪里不对，就是搞不定。&lt;a href="/stuff.ower_id" class="user-mention" title="@stuff.ower_id"&gt;&lt;i&gt;@&lt;/i&gt;stuff.ower_id&lt;/a&gt;是 1，这个用户已删除，所以逻辑上 owner 就是 false，直接输出“该用户已注销”。但我这么写的话，页面总是报错，说是找不到该页面；如果我把&lt;a href="/stuff.ower_id" class="user-mention" title="@stuff.ower_id"&gt;&lt;i&gt;@&lt;/i&gt;stuff.ower_id&lt;/a&gt;换成 3，就能正常工作。是我代码写错了，还是 ActiveRecord 遇到 not_find 错误的路由问题？&lt;/p&gt;

&lt;p&gt;请大家伙儿帮忙给掌掌眼，多谢！&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sx"&gt;% owner &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt; &lt;span class="vi"&gt;@stuff.ower_id&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sx"&gt;% if &lt;/span&gt;&lt;span class="n"&gt;owner&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="kp"&gt;nil&lt;/span&gt; &lt;span class="sx"&gt;%&amp;gt;
&amp;lt;%= owner.user_name %&amp;gt;&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sx"&gt;% else &lt;/span&gt;&lt;span class="o"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;span&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;该用户已注销&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/span&amp;gt;
&amp;lt;% end %&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <author>zerocool</author>
      <pubDate>Tue, 24 Sep 2013 22:31:49 +0800</pubDate>
      <link>https://ruby-china.org/topics/14359</link>
      <guid>https://ruby-china.org/topics/14359</guid>
    </item>
    <item>
      <title>Alfred 的一个 Bug？</title>
      <description>&lt;p&gt;不知道大家有没有在 OSX 10.8.5 上遇到 Alfred 这样一个问题：明明 Applications 里面只有一个 Gimp 程序，Alfred 却认为有两个？&lt;/p&gt;

&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/0d5668f15b4111fc7316402c1a6b8d85.png" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>zerocool</author>
      <pubDate>Sun, 22 Sep 2013 11:00:32 +0800</pubDate>
      <link>https://ruby-china.org/topics/14272</link>
      <guid>https://ruby-china.org/topics/14272</guid>
    </item>
    <item>
      <title>成田的雾</title>
      <description>&lt;p&gt;麦机长穿好制服，拖着飞行箱来到楼下的餐厅准备用餐，副驾驶小李远远地朝他挥了挥手，身旁是几位嘻嘻哈哈的空姐。机长嘴角上翘，象征性地笑了笑，点头示意，便走向取盘处了。&lt;/p&gt;

&lt;p&gt;小李今年 27 岁，未婚，据同事间传说他跟公司里某空姐正在半公开地交往，正好这位空姐这次也在这个机组里面，难怪这小子一大早就这么活泼。&lt;/p&gt;

&lt;p&gt;机长拿了几块面包、一个鸡蛋和一杯牛奶，走到同事旁边坐下，正准备用餐，旁边几位空姐更叽叽喳喳了，“呀，机长，您怎么就吃这么点儿呀？”“哟，一大早就板着个脸，是不是咱几个照顾不周呀，哈哈哈”“机长，衬衣有褶了哦，赶紧给咱找个嫂子帮你熨熨吧，啊哈哈哈”“哈哈哈哈……”&lt;/p&gt;

&lt;p&gt;机长赶紧低头看看衬衣，哪儿有褶儿，昨晚洗衣房刚洗熨过，明明就是这几个小丫头无事生非拿自己开涮呢，于是假装生气道：“小孩子家家的，哪儿那么多事儿，赶紧吃，瞧一会儿乘务长来了怎么收拾你们，嘿嘿。”&lt;/p&gt;

&lt;p&gt;说曹操曹操到，这不，就说话这功夫，乘务长端着盘子也过来了。&lt;/p&gt;

&lt;p&gt;说实话谁都不清楚乘务长具体年龄是多大，也没人敢问，虽然她并不是个不好接近的人，但成熟端庄的打扮背后总透着一股不怒自威的气场。乘务长爱笑，不过大多时候都只是矜持的微笑，很少有像这群疯丫头一样的哈哈大笑。大家知道关于乘务长最私人的事情大概就是她有个 6 岁的儿子，平时由她父母带着，前夫在国外，差不多三年前因为他跟一工作中认识的编辑搞婚外情被乘务长发现了，所以两人才分手的。&lt;/p&gt;

&lt;p&gt;乘务长一坐下，这群小丫头们就收敛多了，副驾驶小李也正经起来，机长笑道：“看吧，我说什么来着？”&lt;/p&gt;

&lt;p&gt;“机长，这次飞得够辛苦，晚上从大阪回去，就可以休息两天吧？”&lt;/p&gt;

&lt;p&gt;“还好，不累。其实要不是王机长病了，我还挺想在大阪歇两天，说实话这还是第一次飞大阪呢。”&lt;/p&gt;

&lt;p&gt;“啊，是吗？以为你这两年去过日本不少地方呢。”乘务长拿起杯子喝了口果汁。&lt;/p&gt;

&lt;p&gt;“哪儿啊，我去年下半年才正式飞日本航线，以前港澳台去得多点儿，但都是中国人为主的地方，去几次就感觉不到多大的差别了。”&lt;/p&gt;

&lt;p&gt;“哦，也是。你一直飞的都是 738 吧？嗨，我说你们几个小东西在笑什么呢。”乘务长注意到那几位小空姐正痴痴地偷笑，肯定在八卦什么，于是故意用眼睛瞪着她们，这一下空姐们反而更加肆无忌惮了。一位胆大的空姐说：“老大，看你俩聊天，要不今儿就跟公司请个假，去新宿逛逛街怎么样呀。”“哈哈哈……”大家一下子笑开了，连小李也低着头拘谨地笑了起来。“讨厌，你们几个里头就属你最坏！”其实她知道，自己对于机长来说就是位大姐姐，而且铁打的飞机流水的机组，所以压根儿不会拿这事儿较真。&lt;/p&gt;

&lt;p&gt;机长不是开不起玩笑，只是不想这种风气在自己机组里蔓延下去，觉得该用个什么话题来转移大家的注意力了：“呵呵，别瞎说了。快点儿吃吧，昨晚情报室发信息来，今天午后雾气很可能会加重，所以我们要抓紧时间争取早点儿起飞，以防万一。”&lt;/p&gt;

&lt;p&gt;空姐们哦了一声，一脸扫兴地继续吃东西，小李倒是表现出了专业的严肃，收起了刚才的嬉皮笑脸，没说什么。&lt;/p&gt;

&lt;p&gt;“没问题吧？”乘务长关切地问了一句。&lt;/p&gt;

&lt;p&gt;“没问题，只要准点起飞，咱们那个点儿问题不大。”其实机长并不确定乘务长问的什么没问题，难道是问自己技术有没有问题？怎么可能，这点儿事儿都算事儿那还能当上机长？不过，乘务长当然不会那么没见识的，大概只是对航班是否会延误表示关心吧，所以机长也就没有多想。&lt;/p&gt;

&lt;p&gt;整个机组三两下吃完了早餐，便拖着箱子向酒店大厅走去。机组车已经在外面恭候，机长、小李和乘务长最先上车，随后几位空姐紧跟着也上来了。&lt;/p&gt;

&lt;p&gt;车厢里的气氛似乎有点儿凝重，机长只是为了转移话题所以强调了一下天气变化，但其他机组成员心里不免担心：“如果不要紧，机长一般没必要拿出来说吧。”为了缓和一下气氛，机长把着扶手站起来说：“咱们抓紧时间，现在就开航前会吧。天气会有些变化，不过远不是什么极端天气，大家不必担心，但是今天风大，起飞后可能会有颠簸，大家要小心，不要太早发餐，必要时等我信号。顺利的话，我们起飞的时候天气状况还不会有太大变化，跟现在差不多。”机长说着，向车窗外望了望，“所以大家轻松一点儿。另外，今天晚上我们就会回浦东，所以辛苦各位了。”机长说完轻轻但很坚毅地点了点头，这大概是他从航校教员那儿传承来的习惯，在讲完航前概要之后点点头，把自己的信心传递给大家。&lt;/p&gt;

&lt;p&gt;信息只要一公开，大家也就不必再猜忌什么，车厢里的气氛又活跃了不少。&lt;/p&gt;

&lt;p&gt;机组车开进了成田机场，机长和小李去了情报室，乘务长则带着空姐们穿过候机大厅来到员工休息区进行准备和补妆。&lt;/p&gt;

&lt;p&gt;负责今天这趟航班的签派是位有些秃顶和发福的中年日本男人，名叫中田一郎，严谨低调，看不出有别的什么性格特点，英文发音很不标准，好在签派单上都是英文，机长就算听不懂他说什么也不要紧，反正飞了这么多次成田，见过不少签派，都这样，早就习惯了。&lt;/p&gt;

&lt;p&gt;跟情报室永远的熙熙攘攘截然相反的是，中田说话总是一副较真但又永不着急的样子，机长听懂了他说的一句“天气会在你们航班起飞后半小时才变坏，所以你可以放心。”有了语言的沟通，人与人之间的距离就会接近不少，机长不再觉得自己面对的这个人和显示飞行资料的电脑屏幕有什么区别，终于觉得他也是个活生生的人了。机长迅速过了一遍签派单，确认数据都没有问题，于是签了字。为了拉近跟中田的距离，机长正想拍拍他的手臂以示告别，但是中田仍然一脸恭敬地弯腰鞠躬：“キャプテン，お願いします！”机长没听清他说的是什么，反正大概是再见、保重之类的，不过这种谦恭劲儿却始终适应不了，只好也低了一下头，说了句“さようなら”。&lt;/p&gt;

&lt;p&gt;机长拿着飞行资料，和小李径直去了停机位，路过一扇玻璃门的时候，机长还特意迅速照了照自己的衣装，但还是被小李看见了：“行啦，机长，够帅的啦，呵呵。”机长笑了笑，但没说什么。&lt;/p&gt;

&lt;p&gt;当年在航校的时候，教员一句“一个连衣服都打理不好的人，怎么敢放心地把飞机交给他去飞？”令机长至今印象深刻。而当年被教员这样批评的那位同学，后来因为动作不柔和，下滑道保持不稳定以及忽视事故征候等原因给停飞了，据说后来转到了地勤，不过也没有什么联系。&lt;/p&gt;

&lt;p&gt;飞机在 46 号停机位，昨晚从大连过来，落地的时候已经快一点了，飞机本身状况良好，只是客舱有几个部件需要维修，已经填了单子，估计昨晚机务已经搞定了，一会儿上去再看看。&lt;/p&gt;

&lt;p&gt;机长让小李先登机，自己则放下箱子，绕着飞机走了一圈，进行环视检查，主要是看看飞机外部有没有明显有问题的地方，比如裂痕或者漏油之类的。&lt;/p&gt;

&lt;p&gt;接近中秋的日本，已经不那么热了，机场风大，还有阵阵凉意。机长绕着飞机走了一圈，发动机、翼面、机身、空速管、雷达罩……都没什么问题，轮胎也还没有露白线。这架波音 737-89L 型客机目前只有不到两年的机龄，可以说还相当崭新。不过不论是老飞机还是新飞机，机长都像对孩子一样疼爱。从航校毕业，麦机长在波音 737-300 上实习，升任副驾驶后又飞了一年多才转到 738，但到现在他还时常怀念 733 的机械面板。&lt;/p&gt;

&lt;p&gt;机长拖着箱子进入机舱，弯腰站在驾驶舱门口的机务赶紧起身让路。小李对机长说：“机长，昨晚报修的厨房部件，其中这几样我们只能回北京之后才能修。”&lt;/p&gt;

&lt;p&gt;机长接过检修记录单看了看，厨房柜门有个把手有点儿问题、一个餐车左前面的轮子因为磨损有点儿不灵活、其中一个微波炉加热比较慢……诸如此类的问题，一看大概就是公司因为成本原因不愿在日本修而已。&lt;/p&gt;

&lt;p&gt;“只要乘务长说没问题就行。”机长将检修单递给机务，机务鞠了个躬就出去了。&lt;/p&gt;

&lt;p&gt;“外面没问题，小李，你输入一下 FMC（Flight Management Computer，飞行控制计算机）。”机长边说边接通一号中央油泵并启动 APU（Auxiliary Power Unit，辅助动力装置）。&lt;/p&gt;

&lt;p&gt;“好的。”小李摘下帽子挂在身后的挂钩上，然后埋头开始操作起来。&lt;/p&gt;

&lt;p&gt;在等待 APU 启动的空档，机长望了望窗外，远处雾蒙蒙的感觉。即使没有雾，从这里也是看不到东京塔的，不过东京塔对于机长来说是唯一清晰的东京印象。&lt;/p&gt;

&lt;p&gt;APU 启动完成后，打开气源活门和空调，短暂的宁静瞬间消失得无隐无踪。飞行员终日跟噪音打交道，虽然已经习惯，但刚进入噪音环境时，机长总是觉得有点儿反感。&lt;/p&gt;

&lt;p&gt;小李很快完成了飞行数据的录入，机长准备核实，客舱里又传来了叽叽喳喳的声音，是乘务员们都上来了。&lt;/p&gt;

&lt;p&gt;“机长，我们开始准备了。”乘务长探进半截身子说到。&lt;/p&gt;

&lt;p&gt;“好的。”&lt;/p&gt;

&lt;p&gt;乘务长出去后关上了驾驶舱门，不知道密码的话谁也进不来。&lt;/p&gt;

&lt;p&gt;飞机计划从成田机场（ICAO：RJAA）34L 跑道起飞，离场点 BAY1，然后直飞大阪关西国际机场（ICAO：RJBB），少云，巡航高度 27000 英尺，飞机全重 65.6 吨，起飞时有 210° 14 节的侧风，修正海拔气压 29.71 英寸汞柱，襟翼 5，FMC 计算出来的起飞决断速度是 150 节。&lt;/p&gt;

&lt;p&gt;机长一屏一屏地检查了小李的输入，不是不信任，这是双人制机组的责任分配，总是一个操作一个监控。确认无误后，机长在方式控制面板上对各项飞行控制仪进行了操作，然后通过机内电话通知乘务长可以上客了。&lt;/p&gt;

&lt;p&gt;机长一边熟练地进行各种操作，一边暗自心想等有机会机组在大阪过夜，晚上一定要独自出去找个典型的日本小酒肆坐坐，不喝酒，就是吃吃寿司，感受一下拥挤局促环境里独有的日式温馨。&lt;/p&gt;

&lt;p&gt;天气没有放晴的迹象，小李还在收听通播，好像只是为了更加熟练业务。这小子，一直有早点儿当上机长的“野心”，虽然麦机长和他合作不多，不过这次从大连飞过来，对他的技术也略知一二。&lt;/p&gt;

&lt;p&gt;“还有很长的路要走！”机长心里暗暗叮嘱。&lt;/p&gt;

&lt;p&gt;“咚……”，客舱通话指示灯亮了，机长拿起电话&lt;/p&gt;

&lt;p&gt;“机长，上客完毕，全员 136 人。”话筒里传来乘务长非常职业的声音。&lt;/p&gt;

&lt;p&gt;“好的。”&lt;/p&gt;

&lt;p&gt;机长随即按下 PTT（Push To Talk，即按即说）按钮，接通塔台通话频道，申请推出。&lt;/p&gt;

&lt;p&gt;塔台很快给出了放行许可，地勤早已准备就绪，机长松开驻留刹车，推车的发动机一轰，飞机便开始缓缓倒行。&lt;/p&gt;

&lt;p&gt;“启动二号发动机。”机长向地勤给出示意后，对小李说。&lt;/p&gt;

&lt;p&gt;“启动二号发动机。”小李确认道。&lt;/p&gt;

&lt;p&gt;机长将燃油泵全部接通后，小李先关闭了空调，打开防撞灯，给地勤打了个手势，然后将二号发动机的点火开关打到地面启动位，发动机转速开始上升，N2（发动机高压转子转速）达到 18 的时候，小李抬起了二号发动机的燃油阀门，发动机的轰鸣声更大了。&lt;/p&gt;

&lt;p&gt;机长从小很喜欢这种声音，对他来说，这是力量和果敢的象征。只有这样强劲的动力和坚韧的毅力，才能推着自己告别引力的束缚。&lt;/p&gt;

&lt;p&gt;推车将飞机推到滑行道上并向左转了将近 90°便停了下来，机长启用驻留刹车。一名地勤人员在机头下方弓着腰将推杆与前起落架脱离开，并拔掉跟机组通话用的麦克风。副驾驶小李继续启动一号发动机。&lt;/p&gt;

&lt;p&gt;推车倒着开走了，一位地勤远远地站着，另一位年轻的地勤从机头下方一边后退，一边将起落架安全插销上 Remove Before Flight 的红带子高高举过头顶，退到另一位地勤所站的地方，两人隔着几米远并肩站住了。&lt;/p&gt;

&lt;p&gt;机长环视了驾驶舱里所有仪表，一切正常。这时候一号发动机也已经启动完毕，小李切换到发动机供电并重新打开空调，轰轰轰的气流噪音又恢复了，机长微微皱了邹眉头。&lt;/p&gt;

&lt;p&gt;机长打开滑行灯，左手扶着手轮，飞机开始低速滑行，两位地勤看着缓缓移动的飞机，挥手送行，小李也跟他们挥了挥手。&lt;/p&gt;

&lt;p&gt;飞机按照塔台指定的路线向 34L 跑道滑去，机长让小李开始做起飞前检查单，一切也都很正常，随后两人陷入了沉默。&lt;/p&gt;

&lt;p&gt;机长操纵飞机停在了 34L 入口的联络道上，得先等着一架全日空的 747 落地后才能起飞。空中防撞系统指示 747 距离已经越来越近、高度也越来越低，其实这个时候肉眼都能看清楚了。&lt;/p&gt;

&lt;p&gt;很快，这架蓝白相间的波音 747 就在眼前擦着头皮般呼啸地飞过去，一股非常强烈的泰山压顶似的压迫感不禁而生。&lt;/p&gt;

&lt;p&gt;“哇塞，什么时候我才能飞上这样的大家伙呀！”小李自言自语地感叹道。&lt;/p&gt;

&lt;p&gt;这时候，耳机里传来进跑道等待的指示。机长连续两次关闭又接通了安全带指示灯，打开频闪灯、跑道灯和着陆灯，向前推了推节流阀，发动机又发出了高速运转的啸叫。&lt;/p&gt;

&lt;p&gt;不久，前方的 747 顺利地脱离了跑道，塔台指示机组现在可以起飞，但要注意前方可能有鸟群。&lt;/p&gt;

&lt;p&gt;小李看了一眼机长，虽然机长不动声色，不过两人都表现得更加严肃了。日本鸟多是很正常的现象，再加上这雾蒙蒙的天气给人工驱鸟也带来了一点儿麻烦，但是二人并没有太多迟疑。&lt;/p&gt;

&lt;p&gt;“我操作。”机长一边说着一边向前平滑地推着节流阀推杆。&lt;/p&gt;

&lt;p&gt;“你操作。”副驾驶确认。&lt;/p&gt;

&lt;p&gt;呜……发动机发出愤怒的轰鸣，此刻飞机不再掩饰自己对万有引力的蔑视。N1（发动机低压转子转速）达到 40 的时候，机长检查双发运行平稳同步，于是按下了节流阀推杆上的 TO/GA 键，发动机转速随即迅速攀升，轰鸣更大更猛烈了，就像是一个被囚困在阴暗地牢里的猛兽想要奋力挣脱身上的锁链！&lt;/p&gt;

&lt;p&gt;这是麦机长每次飞行中最激动的时刻——此时每台 CFM56-7 发动机每秒钟差不多吸入 750 公斤空气，相当于一个成年男人平均肺活量的 15.5 万倍——正是这低沉的怒吼，让他可以超脱一切世俗的羁绊，朝着纯净湛蓝的天空飞去，偶尔晴朗的夜空，更有一种在深邃宇宙中流浪的感觉。&lt;/p&gt;

&lt;p&gt;“80 节。”负责监控的小李喊道。&lt;/p&gt;

&lt;p&gt;“检查。”机长迅速环视飞行数据并确认。&lt;/p&gt;

&lt;p&gt;风好像大了点儿，机长又向左踩了踩舵。&lt;/p&gt;

&lt;p&gt;“V1。”&lt;/p&gt;

&lt;p&gt;机长右手离开了节流阀，双手把着操纵杆，全神贯注。&lt;/p&gt;

&lt;p&gt;“抬轮。”&lt;/p&gt;

&lt;p&gt;机长向后拉动操纵杆，飞机以每秒 3°的上升速度逐渐脱离了地面。&lt;/p&gt;

&lt;p&gt;“正上升。”&lt;/p&gt;

&lt;p&gt;“收起落架。”机长命令道。&lt;/p&gt;

&lt;p&gt;副驾驶抬起了起落架操纵杆，等起落架收上后又向下退回到关断位。&lt;/p&gt;

&lt;p&gt;“襟翼两。”&lt;/p&gt;

&lt;p&gt;“襟翼两。”副驾驶边收襟翼边确认。&lt;/p&gt;

&lt;p&gt;很快，伴随着强大的推动力，飞机渐渐地爬升到 10000 英尺的高度，并且继续爬升，其间有过几次较强气流，估计客舱里有乘客吓得惊叫了吧。&lt;/p&gt;

&lt;p&gt;机长关掉了着陆灯、跑道灯和滑行灯，这时候飞机已经进入自动驾驶模式，外面的气流也逐渐平稳下来。小李继续监视着各项飞行仪器，机长将安全带指示灯退到自动位，松了松安全带，望着窗外，短暂地休息一下。&lt;/p&gt;

&lt;p&gt;起飞一切正常，没有遇到鸟群，机长松了一口气。&lt;/p&gt;

&lt;p&gt;东京到大阪的距离，对于飞机来说并不远，这次其实也有点儿调机的性质，不然也不会飞日本国内的航线。昨天王机长在大阪落地后，飞机发动机出现故障，幸好是在落地后才出现问题，飞机最后是由拖车拖到停机位的，一时半会儿修不好，王机长今天又告病假，可以在大阪好好休息一下了。所以这次过去还要把滞留在大阪的乘客接回国。&lt;/p&gt;

&lt;p&gt;飞机冲破云雾，眼前一下子豁然开来，阳光甚至让眼睛都有点儿受不了了。&lt;/p&gt;

&lt;p&gt;“咚……”客舱电话又响了。&lt;/p&gt;

&lt;p&gt;“什么事？”机长拿起电话问到。&lt;/p&gt;

&lt;p&gt;“机长，刚才有乘客说起飞时可能撞鸟，他说他看到有什么东西从机翼下面迅速飞过去。”&lt;/p&gt;

&lt;p&gt;“哪边？有附着物吗？”机长一边问一边将目光迅速移向发动机指示数据上。&lt;/p&gt;

&lt;p&gt;“右边，我看了，没有。”&lt;/p&gt;

&lt;p&gt;“好，知道了，注意观察。”&lt;/p&gt;

&lt;p&gt;“是！”&lt;/p&gt;

&lt;p&gt;“飞机可能撞鸟也可能没有，注意观察读数。”机长一边放电话一边对小李说，小李明显一下子紧张起来。&lt;/p&gt;

&lt;p&gt;“没事没事，没有附着物，有可能没撞上。”机长嘴巴上安慰着小李，但心里更警觉起来。&lt;/p&gt;

&lt;p&gt;几分钟后，飞机继续保持爬升姿态，仪表读数也都很正常，俩人渐渐地感觉轻松了许多。&lt;/p&gt;

&lt;p&gt;客舱乘务员开始发放餐饮了，这趟只有不到 300 海里的航程，一切都得速战速决，但又不能让乘客感觉急促。不过没关系，CC 早就应付自如了。&lt;/p&gt;

&lt;p&gt;然而，机长的余光似乎感觉到了什么，随即他注意到位于节流阀前面的 EICAS（Engine Indication and Crew Alerting System，发动机指示与机组告警系统）显示器上，二号发动机滑油温度在升高，读数已经由白色变成了琥珀色。这时候副驾驶也注意到了。&lt;/p&gt;

&lt;p&gt;“执行非正常检查单。”机长指示小李。&lt;/p&gt;

&lt;p&gt;小李从座位下拿出飞行手册，机长继续关注着油温读数。&lt;/p&gt;

&lt;p&gt;油温继续上升，没有一丝缓解迹象，很快读数变成了红色，并终于保持在了 182 上，事态紧急！&lt;/p&gt;

&lt;p&gt;“宣布紧急状态吧。”机长一边说着一边扶了扶耳机上的麦克。&lt;/p&gt;

&lt;p&gt;“Mayday! Mayday! Mayday!”机长联系成田塔台，宣布了紧急状态，请求紧急迫降。小李低头在通讯面板上将应答机调至 7700。&lt;/p&gt;

&lt;p&gt;机长向塔台说明情况后，塔台指示机长还是在 34L 落地。随后机长便通过客舱电话通知了乘务长，要客舱做好紧急迫降的准备并安抚好乘客情绪。刚才还嘻嘻哈哈的那群小丫头们，现在大概谁也笑不出来了吧。&lt;/p&gt;

&lt;p&gt;“机长，有问题吗？”塔台问道。&lt;/p&gt;

&lt;p&gt;“二号发动机现在运行正常，34L，应该没有问题。”机长回复着，并切断了自动驾驶和自动节流阀，此时飞行高度接近 19000 英尺，飞机在机长的操纵下开始缓缓转向并下降。&lt;/p&gt;

&lt;p&gt;机长明显能感觉到小李的紧张，想说两句什么来缓解他的情绪，但这种情况下，说什么好用呢？还是让他借此机会好好磨练一下心理素质吧。&lt;/p&gt;

&lt;p&gt;小李在 FMC 上操作着，设定飞机在成田机场 34L 落地，并将导航频率调到了 111.90、磁偏角 336°……&lt;/p&gt;

&lt;p&gt;飞机逐渐下降，机长最担心的是事情终于发生了——二号发动机的功率也开始下降。机长随即联络塔台，可能要单发落地，申请消防车和救护车。&lt;/p&gt;

&lt;p&gt;这个时候，塔台的人也更加紧张和忙碌起来，一架满员的大型客机，起飞后不久便返航并紧急迫降，谁也不愿看到这起事故最后演变成机毁人亡。虽说单发落地是每位飞行员每年复训都要进行的必修科目，但今天这雾、这风……但愿一切顺利吧！&lt;/p&gt;

&lt;p&gt;随着飞行高度不断下降，机组明显感觉到，虽然雾还没有变得更浓，但气流却更强更不稳了，这对可能即将单发落地的飞行员来说是个很大的考验。&lt;/p&gt;

&lt;p&gt;飞机在 34L 跑道入口外大约 8 海里处开始转向进入第四边、第五边，这时候二号发动机几乎已经失效，为了避免出现更糟糕的状况，机组在确认二号发动机不可能再恢复正常之后便关闭了它。&lt;/p&gt;

&lt;p&gt;机长开始执行单发落地程序，襟翼 15，落地速度 178 节。&lt;/p&gt;

&lt;p&gt;此时，飞机已经进入第五边，但机长觉得要保持飞机平稳进近非常困难。首先，由于目前只有一号发动机能正常工作，推力不对称，要想保持升力，在一号发动机产生推力的同时还要向左踩舵并不时打盘以抵消偏转，再加上不稳定的气流，机长必须随时调整飞行姿态才有可能将飞机安全地停在跑道上。此时小李是 PM（Pilot Monitoring，监控飞行员），随时向机长报告各项飞行数据，分担 PF（Pilot Flying，操控飞行员）的工作负担。&lt;/p&gt;

&lt;p&gt;机长吃力地将飞机保持平稳，并开始缓缓减小发动机推力，小李额头上沁出了一层薄汗。&lt;/p&gt;

&lt;p&gt;“2000 英尺。”&lt;/p&gt;

&lt;p&gt;“1500。”&lt;/p&gt;

&lt;p&gt;“1000。”&lt;/p&gt;

&lt;p&gt;虽然有 GPWS（Ground Proximity Warning System，近地警告），小李仍然报着高度，大概是出于紧张也可能是为了缓解紧张。机长看了看空速，一脸的沉着。&lt;/p&gt;

&lt;p&gt;500 英尺了，机组已经做好了接地准备，但愿风不要捣乱吧！&lt;/p&gt;

&lt;p&gt;“Minimums.”GPWS 的语音提示。&lt;/p&gt;

&lt;p&gt;机长的冷静给了小李不少宽慰，虽然在模拟机上小李也多次训练过单发落地，但这毕竟是第一次在现实世界中遇到，更何况天气又这么复杂。小李努力保持着冷静，但他的内心跟外面的风一样不平静。&lt;/p&gt;

&lt;p&gt;机长左手把着杆，右手缓缓地拉节流阀，发动机的轰鸣声渐渐小了，机长又向右回了回舵。现在飞机保持着蟹型进近的姿态，也就是网友们经常在视频上看到的侧风落地——机头并没有对准跑道，而是像螃蟹一样的侧着身子前进——看上去很酷，但是要知道，每一个成功的侧风落地的背后，都有一个经过多年磨练的心理素质和飞机技术都很过硬的机组。&lt;/p&gt;

&lt;p&gt;呼地一阵风吹过来，就在飞机离地还有不到 200 英尺的时候，将飞机吹得明显偏离了跑道中心线，已经来不及修正了。&lt;/p&gt;

&lt;p&gt;“复飞！”机长果断地命令道，并迅速向前推动节流阀。小李赶忙收起起落架。&lt;/p&gt;

&lt;p&gt;塔台上的人全都捏了一把汗，就连候机楼里一些细心的乘客也注意到这架飞机的异常，首先是它明显的蟹型进近姿态，然后在很低的高度机身突然侧偏后又迅速拉起，隔着厚重的落地玻璃隐隐传来发动机的轰鸣，但好像又没有平时的强烈。&lt;/p&gt;

&lt;p&gt;客舱里，一些乘客被刚刚那一阵风吓得叫了起来，但看着飞机的高度在一点一点地抬高，快要跳出来的心终于又回到嗓子眼儿。&lt;/p&gt;

&lt;p&gt;机长操纵飞机向左偏转，打算回到 34L 重新落地。这一出谁都不愿意看到，但是相比蛮干，这样铤而走险的安全系数其实更高。&lt;/p&gt;

&lt;p&gt;“500.”&lt;/p&gt;

&lt;p&gt;“400.”&lt;/p&gt;

&lt;p&gt;此时机组已经能远远地看到跑道边上停着几辆警灯闪烁的消防车和救护车。客舱里，乘务员们一遍又一遍地大声用英语向乘客们喊着迫降的动作要领。&lt;/p&gt;

&lt;p&gt;“300.”&lt;/p&gt;

&lt;p&gt;“Approaching minimums.”&lt;/p&gt;

&lt;p&gt;“Minimums.”GPWS 持续地向机组报告着此时飞机的无线电高度。&lt;/p&gt;

&lt;p&gt;机长手握着杆和节流阀，丝毫不敢松懈，小李更是屏住了呼吸。气流还是不太稳，但愿不要再出现风切变，机组倒没事儿，怕乘客受不了这一遍一遍的煎熬。&lt;/p&gt;

&lt;p&gt;终于，飞机以不到 100 英尺的高度进入跑道，离地还有 30 英尺的时候，机长逐渐将油门收到底，并慢慢向右回舵，机头最后终于对准跑道，主轮在接地点前方不远处擦出了一缕淡淡的青烟，落地非常轻柔！&lt;/p&gt;

&lt;p&gt;消防车和救护车紧跟着开了过来，幸运的是没有火警警报，客舱里也没有报告乘客受伤。虽然没有按计划顺利地飞抵目的地，但是客舱里依然爆发出了热烈的掌声，两位年轻乘务员隐隐的泪光中映出了乘客们欣喜的模样。&lt;/p&gt;

&lt;p&gt;☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★&lt;/p&gt;

&lt;p&gt;创作背景&lt;/p&gt;

&lt;p&gt;这只是一次发生在《微软：飞行模拟 2004》上的飞行记录，不过也可以用作小小说的创作素材。谁说程序员只会写代码。&lt;/p&gt;

&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/a88ef93c789c117f4fc4d3b83c3c1cd8.jpg" title="" alt=""&gt;
&lt;img src="//l.ruby-china.com/photo/0a9960c8ad5a4585ab419bd4c51bc075.jpg" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>zerocool</author>
      <pubDate>Mon, 09 Sep 2013 14:53:20 +0800</pubDate>
      <link>https://ruby-china.org/topics/13981</link>
      <guid>https://ruby-china.org/topics/13981</guid>
    </item>
    <item>
      <title>Gem 报错 (OSX 10.8.4)</title>
      <description>&lt;p&gt;我在帖子 &lt;a href="http://ruby-china.org/topics/13224" rel="nofollow" target="_blank"&gt;http://ruby-china.org/topics/13224&lt;/a&gt; 里提到在 OSX 10.8.4 上用 gem 安装 rails 老是报错，原先以为是 rails 的问题，现在发现应该是 gem 的问题，因为就连我用&lt;strong&gt;gem update&lt;/strong&gt;都报同样的错。网上找了很多解决办法，都不奏效，有遇到过同样问题的同学吗？请帮忙解答，捉急啊，谢谢！&lt;/p&gt;

&lt;p&gt;Command Line Tools of XCode、Ruby2 和 GCC4.2 都已经安装了。&lt;/p&gt;

&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/70dc0906bd10c4cadffdd3ad30c5ca8e.png" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>zerocool</author>
      <pubDate>Sun, 11 Aug 2013 13:07:26 +0800</pubDate>
      <link>https://ruby-china.org/topics/13245</link>
      <guid>https://ruby-china.org/topics/13245</guid>
    </item>
    <item>
      <title>安装 Rails 报错，求解！</title>
      <description>&lt;p&gt;Mac 上用 gem 安装 Rails 报错，看这提示一头雾水，看了半天也不确定我到底还需要先安装什么。记得以前那台 Mac 上安装的时候就一路顺风顺水，ror 新人请高手赐教！&lt;/p&gt;

&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/edf715444eac6f9618f915780171c4b0.png" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>zerocool</author>
      <pubDate>Sat, 10 Aug 2013 12:15:20 +0800</pubDate>
      <link>https://ruby-china.org/topics/13224</link>
      <guid>https://ruby-china.org/topics/13224</guid>
    </item>
    <item>
      <title>知识共享计划</title>
      <description>&lt;p&gt;读过的书，与其在自家书架上招灰占地方，不如免费分享给其他的朋友，如果大家都来分享和交换，知识就能传播得更快更远。&lt;/p&gt;

&lt;p&gt;豆瓣活动页面：&lt;a href="http://www.douban.com/online/11587160/" rel="nofollow" target="_blank"&gt;http://www.douban.com/online/11587160/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/4ff508f8ce88994656ad4afa5d42520c.jpg" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>zerocool</author>
      <pubDate>Fri, 09 Aug 2013 01:31:30 +0800</pubDate>
      <link>https://ruby-china.org/topics/13181</link>
      <guid>https://ruby-china.org/topics/13181</guid>
    </item>
    <item>
      <title>Padrino 博客开发示例</title>
      <description>&lt;p&gt;【英文版出处：&lt;a href="http://www.padrinorb.com/guides/blog-tutorial" rel="nofollow" target="_blank"&gt;http://www.padrinorb.com/guides/blog-tutorial&lt;/a&gt;】&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;楼主按&lt;/strong&gt;
拿作者自己的话说：Padrino（谐音：派骓诺，&lt;a href="http://www.padrinorb.com/Sinatra%EF%BC%88http://www.sinatrarb.com/%EF%BC%89%E7%9A%84%E4%BC%98%E9%9B%85%E7%9A%84Web%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91%E6%A1%86%E6%9E%B6%EF%BC%8C%E6%97%A8%E5%9C%A8%E4%BD%BFWeb%E5%BA%94%E7%94%A8%E7%9A%84%E5%BC%80%E5%8F%91%E5%8F%98%E5%BE%97%E8%BD%BB%E6%9D%BE%E6%9C%89%E8%B6%A3%E3%80%82" rel="nofollow" target="_blank"&gt;http://www.padrinorb.com/Sinatra（http://www.sinatrarb.com/）的优雅的Web应用开发框架，旨在使Web应用的开发变得轻松有趣。&lt;/a&gt;）是一款基于&lt;/p&gt;

&lt;p&gt;楼主主要是在一台二手笔记本上跑 Linux、体验 Padrino 并对原文进行翻译的。Ruby 领域推荐平台是 OS X，其次是 Linux，如果你对 Linux 环境感兴趣，可以参考我的配置信息（&lt;a href="http://images.cnblogs.com/cnblogs_com/Autumoon/124083/o_LinuxMint2013-06-26.jpg" rel="nofollow" target="_blank"&gt;http://images.cnblogs.com/cnblogs_com/Autumoon/124083/o_LinuxMint2013-06-26.jpg&lt;/a&gt;）。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;博客搭建指导&lt;/strong&gt;
每当我看见全新的框架，就会想起如何搭博客。我觉得这是让新人迅速上手的最佳方式。本指南将向大家展示如何利用 Padrino 框架搭建简易博客。在这个过程中，我们将对每一步进行详细的介绍并提供不同相关主题的链接以方便大家学以致用。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;学习指南&lt;/strong&gt;
如果你没功夫跟我磨叽，给你指条道儿，直接从 GitHub 下载全部示例代码（&lt;a href="http://github.com/padrino/sample_blog" rel="nofollow" target="_blank"&gt;http://github.com/padrino/sample_blog&lt;/a&gt;）：&lt;/p&gt;

&lt;p&gt;'$ git clone git://github.com/padrino/sample_blog.git'
或执行博客指导项目模板（&lt;a href="http://gist.github.com/357045" rel="nofollow" target="_blank"&gt;http://gist.github.com/357045&lt;/a&gt;），它能够利用模板生成器一步一步地自动建立起博客项目：&lt;/p&gt;

&lt;p&gt;'$ padrino g project sample_blog --template sampleblog'
点击&lt;a href="http://www.padrinorb.com/guides/generators" rel="nofollow" target="_blank"&gt;http://www.padrinorb.com/guides/generators&lt;/a&gt;了解模板生成器的详细信息。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;安装&lt;/strong&gt;
俗话说：木有蛋/鸡，何来鸡/蛋？为了开发 Padrino 应用，我们得先有点儿准备吧。显然，我们得先把 Ruby（&lt;a href="http://www.ruby-lang.org/en/RubyGems%EF%BC%88http://rubygems.org/%EF%BC%89%E8%A3%85%E4%BA%86%EF%BC%9B%E7%84%B6%E5%90%8E%EF%BC%8C%E5%86%8D%E6%9D%A5%E5%AE%89%E8%A3%85Padrino%E6%A1%86%E6%9E%B6%EF%BC%9A" rel="nofollow" target="_blank"&gt;http://www.ruby-lang.org/en/RubyGems（http://rubygems.org/）装了；然后，再来安装Padrino框架：&lt;/a&gt;）和&lt;/p&gt;

&lt;p&gt;'$ gem install padrino'
点击&lt;a href="http://www.padrinorb.com/guides/installation" rel="nofollow" target="_blank"&gt;http://www.padrinorb.com/guides/installation&lt;/a&gt;了解关于安装的详细信息。安装流程一旦完成，所有必需的依赖项也都自动准备就绪，我们现在就可以开始开发自己的博客了。&lt;/p&gt;

&lt;p&gt;【由于排版问题，完整内容请查阅&lt;a href="http://www.cnblogs.com/Autumoon/p/IntroduceToPadrino.html" rel="nofollow" target="_blank"&gt;http://www.cnblogs.com/Autumoon/p/IntroduceToPadrino.html&lt;/a&gt;】&lt;/p&gt;</description>
      <author>zerocool</author>
      <pubDate>Thu, 27 Jun 2013 12:59:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/12036</link>
      <guid>https://ruby-china.org/topics/12036</guid>
    </item>
    <item>
      <title>Ruby on Linux</title>
      <description>&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/8f8cf1c281bf48f9a5c8498092612e08.jpg" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;I bought a second-hand Dell Vostro V13 today, and make it just run Linux Mint. Ruby, Ruby on Rails and something else are ready, and my GitHub T-Shirt is also on its way... Really fucking cool, huh?&lt;/p&gt;</description>
      <author>zerocool</author>
      <pubDate>Tue, 18 Jun 2013 01:02:05 +0800</pubDate>
      <link>https://ruby-china.org/topics/11795</link>
      <guid>https://ruby-china.org/topics/11795</guid>
    </item>
  </channel>
</rss>
