<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>5long (Whyme Lyu)</title>
    <link>https://ruby-china.org/5long</link>
    <description>Huh?</description>
    <language>en-us</language>
    <item>
      <title>一个多年 Linux 用户的 Mac 使用体验</title>
      <description>&lt;p&gt;去年双十一的时候，给自己找了许多理由，冲动消费了一台 MacBook Air 2018。可能是因为自己从开始工作到现在，周围同事大多数人都在用 Mac，一直都很好奇 Mac 到底好在哪里。于是这次终于解决了这个问题，把近期的使用体验写成了博客：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="http://5long.github.io/post/tour-in-apple-garden-apple-tax.html" rel="nofollow" target="_blank" title=""&gt;售前选择篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://5long.github.io/post/tour-in-apple-garden-hardware.html" rel="nofollow" target="_blank" title=""&gt;硬件篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://5long.github.io/post/tour-in-apple-garden-software-part-1.html" rel="nofollow" target="_blank" title=""&gt;软件篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://5long.github.io/post/tour-in-apple-garden-details-part-1.html" rel="nofollow" target="_blank" title=""&gt;剩下的软硬件细节凑成一篇&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;也许未来还会再写。不过目前有这四篇算是告一段落了。&lt;/p&gt;

&lt;p&gt;简单来说，我不是很推荐新进入 web 开发行业的人自己花钱买 Mac：硬件性价比低，近年来丧失了硬件上的优势，升级 / 维修也不如 PC，想要体验原生的 Linux 系统容易被专有硬件卡住。软件方面，自定制性（带来的生产力提升）不可能追得上 Linux，流行的跨平台软件更是抹平了系统间的差异。如果是公司出钱，倒还可以买个玩玩。&lt;/p&gt;</description>
      <author>5long</author>
      <pubDate>Wed, 20 Feb 2019 19:08:40 +0800</pubDate>
      <link>https://ruby-china.org/topics/38126</link>
      <guid>https://ruby-china.org/topics/38126</guid>
    </item>
    <item>
      <title>推荐一个简单有效的减肥方法：生酮饮食</title>
      <description>&lt;p&gt;最近减肥成功了。需要到处炫耀一下，收割一点成就感。于是就想起来了多年不上的 Ruby China（&lt;/p&gt;
&lt;h2 id="当刻板印象降临在自己身上"&gt;当刻板印象降临在自己身上&lt;/h2&gt;
&lt;p&gt;程序员的刻板印象，大概包括体重偏高这一项。比如说，Richard Stallman：&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2019/669f3cd4-dbbe-44ef-8a0c-f48f64e19387.webp!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;我自己也觉得，随着年龄增长，不可避免地发福之后，买衣服的选择变少了（谁让你只穿优衣库）。虽然胖得不是太明显，但我在不运动不健身的前提下，还是胖到了 81KG（身高 173cm）。&lt;/p&gt;
&lt;h2 id="需求分析"&gt;需求分析&lt;/h2&gt;
&lt;p&gt;开始减肥之前，我也买过家用健身器材。结果没能坚持得下来。于是这次重新挑战减肥，我先做了足够的，呃，需求分析：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;必需不能太消耗时间。时间永远是不够用的。&lt;/li&gt;
&lt;li&gt;必需不能让自己难受。包括：

&lt;ul&gt;
&lt;li&gt;不能吃得不好。可以控制饮食，但不能控制到“好吃的东西都不能吃”的地步。&lt;/li&gt;
&lt;li&gt;不能饿得难受。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;不去尝试科学机理不可靠的方案：

&lt;ul&gt;
&lt;li&gt;各种吹得厉害的减肥药，就很让人没有信心&lt;/li&gt;
&lt;li&gt;健身网红不是医生，也不是科研工作者，不能信&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;要可持续执行。不能只看短期效果，而无法长期坚持，导致反弹。换句话说，维护成本必需足够低。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;需求似乎太高了点。不过不要紧，工作中的初始需求能坚持到最后得以实现的，恐怕也没有几个。先走着瞧。大不了到方案选型的阶段，再做让步和 trade-off。&lt;/p&gt;
&lt;h2 id="调研方案"&gt;调研方案&lt;/h2&gt;
&lt;p&gt;我最喜欢的垂直社区平台是 &lt;a href="https://www.douban.com/note/641310543/" rel="nofollow" target="_blank" title=""&gt;Reddit&lt;/a&gt;。需要去调研不太熟悉的领域时，先去垂直社区看看别人的经历，比花钱买在线课程更让我觉得可信。&lt;/p&gt;

&lt;p&gt;在 /r/fitness 的 &lt;a href="https://old.reddit.com/r/Fitness/wiki/faq" rel="nofollow" target="_blank" title=""&gt;FAQ&lt;/a&gt; 里，我看到了 &lt;a href="https://www.reddit.com/r/keto/" rel="nofollow" target="_blank" title=""&gt;Keto Diet&lt;/a&gt; 这个办法，中文一般译作：生酮饮食。&lt;/p&gt;

&lt;p&gt;简单来说，尽量少吃可以吸收的碳水化合物（单糖和淀粉），这就是生酮饮食。脂肪 / 蛋白质可以照样吃，食物选择范围比较宽泛。不用挨饿，不用运动，执行难度低，容易坚持。基本满足前面提到的所有需求。&lt;/p&gt;

&lt;p&gt;听起来有点 too good to be true。但 /r/keto 整理的 &lt;a href="https://www.reddit.com/r/keto/wiki/faq#wiki_resources" rel="nofollow" target="_blank" title=""&gt;Resources&lt;/a&gt; 内容，让我觉得这个办法足够地科学。于是就开始执行了下去。又或许，我只是想要做个反传统的人，所以才选择了这种反传统的方法。而没有选择常见的控糖低脂 + 有氧运动。&lt;/p&gt;
&lt;h2 id="成果"&gt;成果&lt;/h2&gt;
&lt;p&gt;从 2018.11.1 起到现在：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.douban.com/note/697931173/" rel="nofollow" target="_blank" title=""&gt;11 月减了 5KG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.douban.com/note/701779011/" rel="nofollow" target="_blank" title=""&gt;12 月减了 4KG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;今年 1 月到现在，21 天，减了 3KG。有望保持上个月的速度。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;现在已经从 81KG 减到了 69KG。感觉还有再减下去的空间，所以目前还在坚持着。感觉良好。&lt;/p&gt;

&lt;p&gt;于是你要不要也来尝试一下。不见效全额退款（&lt;/p&gt;</description>
      <author>5long</author>
      <pubDate>Tue, 22 Jan 2019 00:43:43 +0800</pubDate>
      <link>https://ruby-china.org/topics/38029</link>
      <guid>https://ruby-china.org/topics/38029</guid>
    </item>
    <item>
      <title>译文：一个 Perl 程序员职业生涯的中年危机</title>
      <description>&lt;p&gt;译文在我的 blog 上：&lt;br&gt;
&lt;a href="https://5long.github.io/post/mid-career-crisis-of-perl-programmer.html" rel="nofollow" target="_blank"&gt;https://5long.github.io/post/mid-career-crisis-of-perl-programmer.html&lt;/a&gt;&lt;br&gt;
英文原文：&lt;br&gt;
&lt;a href="http://www.modernperlbooks.com/mt/2014/02/the-mid-career-crisis-of-the-perl-programmer.html" rel="nofollow" target="_blank"&gt;http://www.modernperlbooks.com/mt/2014/02/the-mid-career-crisis-of-the-perl-programmer.html&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;文章略长，目测原作者当时（2014 年）是经历了面试 Google 的挫败，回顾自身的人生经历，有感而发。&lt;/p&gt;</description>
      <author>5long</author>
      <pubDate>Fri, 08 Sep 2017 22:10:39 +0800</pubDate>
      <link>https://ruby-china.org/topics/34079</link>
      <guid>https://ruby-china.org/topics/34079</guid>
    </item>
    <item>
      <title>荐书《明亮的对话：公共说理十八讲》</title>
      <description>&lt;p&gt;简单来说，想推荐这本书给各位：&lt;a href="https://book.douban.com/subject/25778829/" rel="nofollow" target="_blank"&gt;https://book.douban.com/subject/25778829/&lt;/a&gt;。纸质版在亚马逊/京东/当当有自营销售。Kindle 版以前是有的（我读的就是），但刚刚在亚马逊上搜了一下没找到，原因不明。&lt;/p&gt;

&lt;p&gt;具体来说，读过这本书之后填补了（至少是提醒着要去填补）我个人重要的知识空缺：逻辑与说理能力。甚至读罢还稍微有些惊恐：自己做了几年的程序员，本来按照刻板印象被认为是个“讲道理”的人，其实并没有很系统地去尝试掌握这方面的能力。要想做到理想、明晰地思考问题，自己也还有不知道多长的路要走。而这种能力在几乎所有的脑力劳动工作中又都是至关重要的。&lt;/p&gt;

&lt;p&gt;顺便补充一个，同个话题下的，我自己看过的资源：牛津大学的在线课程 &lt;a href="http://podcasts.ox.ac.uk/series/critical-reasoning-beginners" rel="nofollow" target="_blank" title=""&gt;Critical Reasoning for Beginners&lt;/a&gt;。这个课程还有 &lt;a href="https://www.youtube.com/playlist?list=PLJcPqCPkJUq9suXfqK4AQ7RKbcXzd5jk9" rel="nofollow" target="_blank" title=""&gt;YouTube 版本&lt;/a&gt;. YouTube 版本有自动生成的字幕，加之授课老师的语速不算太快，听起来大概不会很有压力。&lt;/p&gt;</description>
      <author>5long</author>
      <pubDate>Tue, 11 Jul 2017 00:57:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/33453</link>
      <guid>https://ruby-china.org/topics/33453</guid>
    </item>
    <item>
      <title>ruby-install: 又一个下载编译安装 Ruby 的方案</title>
      <description>&lt;p&gt;[chruby] 的作者写的。简单来说这玩意和 ruby-build 差不多。可以独立使用，也可以配合 &lt;code&gt;rvm mount&lt;/code&gt;, &lt;code&gt;rbenv&lt;/code&gt; 以及 &lt;code&gt;chruby&lt;/code&gt; 使用。项目地址：&lt;a href="https://github.com/postmodern/ruby-install/" rel="nofollow" target="_blank"&gt;https://github.com/postmodern/ruby-install/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;有这么几个特色：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;支持指定从官网之外的地方下载 ruby 源码。比如使用 ruby.taobao.org:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ruby-install ruby 2.0 &lt;span class="nt"&gt;-u&lt;/span&gt; http://ruby.taobao.org/mirrors/ruby/ruby-2.0.0-p247.tar.bz2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;只支持 .tar.bz2 的格式。当官网速度很慢的时候有用。或者自己 host 一份 ruby 源码时也适用。rvm / ruby-build 都没有直接提供这样的接口。只能自己手动 &lt;code&gt;sed -i&lt;/code&gt; 改掉。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;完全依赖系统原生的包管理器来安装编译工具链和 ruby 的依赖，而不是自行下载并静态链接。目前支持 &lt;code&gt;yum&lt;/code&gt; / &lt;code&gt;apt-get&lt;/code&gt; / &lt;code&gt;brew&lt;/code&gt; / &lt;code&gt;pacman&lt;/code&gt; 这些包管理器。这跟 rvm 的 autolibs 很像 (好像其实就是一回事？).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;如果你已经在用 chruby + ruby-build 不妨试试用这个换掉 ruby-build. 幸福的 rvm 用户就不建议折腾了...&lt;/p&gt;

&lt;p&gt;[chruby]: &lt;a href="https://github.com/postmodern/chruby" rel="nofollow" target="_blank"&gt;https://github.com/postmodern/chruby&lt;/a&gt;&lt;/p&gt;</description>
      <author>5long</author>
      <pubDate>Sun, 30 Jun 2013 01:34:48 +0800</pubDate>
      <link>https://ruby-china.org/topics/12110</link>
      <guid>https://ruby-china.org/topics/12110</guid>
    </item>
    <item>
      <title>Zeal: 离线 API 文档浏览 + 搜索工具</title>
      <description>&lt;p&gt;OSX 上有 &lt;a href="http://kapeli.com/dash" rel="nofollow" target="_blank" title=""&gt;Dash&lt;/a&gt;, 是个离线的 API 文档搜索 + 浏览工具。&lt;/p&gt;

&lt;p&gt;Zeal 是基于 QT 做的一个开源实现。功能上还很残... 不过非 Mac 用户总归是有得用了。&lt;/p&gt;
&lt;h2 id="下载安装"&gt;下载安装&lt;/h2&gt;
&lt;p&gt;项目主页：&lt;a href="http://zealdocs.org/" rel="nofollow" target="_blank"&gt;http://zealdocs.org/&lt;/a&gt; 官方提供 Windows 和 Ubuntu 的安装包。&lt;/p&gt;

&lt;p&gt;Archlinux 用户可以用我的 pkgbuild: &lt;a href="https://aur.archlinux.org/packages/zeal-git/" rel="nofollow" target="_blank" title=""&gt;zeal-git&lt;/a&gt;. 使用中出了问题&lt;a href="https://github.com/5long/pkgbuilds/issues" rel="nofollow" target="_blank" title=""&gt;请告知&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;其他系统用户只能下载源码并编译：&lt;a href="https://github.com/jkozera/zeal#how-to-compile" rel="nofollow" target="_blank"&gt;https://github.com/jkozera/zeal#how-to-compile&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="下载具体文档"&gt;下载具体文档&lt;/h2&gt;
&lt;p&gt;刚安装好之后是没有文档可以看的，需要自己下载。Zeal 兼容 Dash 的 docset 格式，因此虽然内置下载的界面中选项不多，但扩充的可能性是有的。&lt;/p&gt;

&lt;p&gt;内置的下载界面在&lt;a href="http://zealdocs.org/download.html" rel="nofollow" target="_blank" title=""&gt;这里&lt;/a&gt;有截图示意。不过试了一下 Ruby2 的无法下载。作者在&lt;a href="https://github.com/jkozera/zeal/issues/16" rel="nofollow" target="_blank" title=""&gt;这里&lt;/a&gt;解释说是 Google Drive 的原因。大家可以自行下载并解压到指定的目录就好了 - - 具体操作方法还是看作者的解释好了。&lt;/p&gt;</description>
      <author>5long</author>
      <pubDate>Sat, 29 Jun 2013 18:18:56 +0800</pubDate>
      <link>https://ruby-china.org/topics/12095</link>
      <guid>https://ruby-china.org/topics/12095</guid>
    </item>
    <item>
      <title>自己最近写的几篇 blog: Python vs Ruby</title>
      <description>&lt;p&gt;时常在社区会看到编程语言的对比，自己也未能免俗，写了这么一系列四篇 blog 专门来对比 Python 和 Ruby。第一篇的开头是&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;身在一个 python shop，无法不怀念 ruby 的种种优越。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;写到这里，胜负已分......&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://randombu.gs/post/python-vs-ruby-object-attributes.html" rel="nofollow" target="_blank" title=""&gt;Object Attributes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://randombu.gs/post/python-vs-ruby-method-call.html" rel="nofollow" target="_blank" title=""&gt;Method Call&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://randombu.gs/post/python-vs-ruby-class-definition.html" rel="nofollow" target="_blank" title=""&gt;Class Definition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://randombu.gs/post/python-vs-ruby-syntactic-sugar.html" rel="nofollow" target="_blank" title=""&gt;Syntactic Sugar&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;欢迎反馈。&lt;/p&gt;</description>
      <author>5long</author>
      <pubDate>Sat, 25 May 2013 19:13:09 +0800</pubDate>
      <link>https://ruby-china.org/topics/11232</link>
      <guid>https://ruby-china.org/topics/11232</guid>
    </item>
    <item>
      <title>隐晦的 Ruby 语法：单字符的字符串</title>
      <description>&lt;p&gt;今天看 &lt;a href="https://github.com/JEG2/highline/blob/rel_1_6_1/lib/highline.rb#L181" rel="nofollow" target="_blank" title=""&gt;HighLine 库的源码&lt;/a&gt;意外发现的，语法是一个问号紧跟一个字符，等价于这个只含一个该字符的字符串：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s2"&gt;"minitest/autorun"&lt;/span&gt;

&lt;span class="n"&gt;describe&lt;/span&gt; &lt;span class="s2"&gt;"?y"&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="n"&gt;it&lt;/span&gt; &lt;span class="s2"&gt;"is the same thing as 'y'"&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="sc"&gt;?y&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;must_equal&lt;/span&gt; &lt;span class="s1"&gt;'y'&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;翻了一下镐头书第三版，里面居然有收纳这个语法。并且给出了这样的评价：&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Do yourself a favor and immediately forget this section. It’s far easier to use regular octal
and hex escape sequences than to remember these ones. Use "a" rather than ?a, and use "\n" rather than ?\n.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;出于装 X 的考虑，以后要找机会多用 www&lt;/p&gt;</description>
      <author>5long</author>
      <pubDate>Fri, 17 May 2013 01:46:55 +0800</pubDate>
      <link>https://ruby-china.org/topics/11052</link>
      <guid>https://ruby-china.org/topics/11052</guid>
    </item>
    <item>
      <title>Markdown 里 Vimscript 语法高亮似乎暂时不工作了</title>
      <description>&lt;p&gt;要修改的回帖是这里 &lt;a href="http://ruby-china.org/topics/10120" rel="nofollow" target="_blank"&gt;http://ruby-china.org/topics/10120&lt;/a&gt; 的 10 楼。修改的意图是让代码部分正确地按照 vimscript 格式高亮。但是三个 backtick 的语法似乎不生效。按说 vimlang 是可以被 pygments 支持的。&lt;/p&gt;

&lt;p&gt;顺便也在主帖上发一遍试试：&lt;/p&gt;

&lt;p&gt;Tip: 配合这个插件，最好装上 &lt;a href="https://github.com/vim-ruby/vim-ruby" rel="nofollow" target="_blank" title=""&gt;vim-ruby&lt;/a&gt;. 并且按照文件名设置 compiler:&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;" 在 ~/.vimrc 里
BufNewFile,BufRead *_spec.rb compiler rspec
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>5long</author>
      <pubDate>Fri, 12 Apr 2013 11:56:28 +0800</pubDate>
      <link>https://ruby-china.org/topics/10132</link>
      <guid>https://ruby-china.org/topics/10132</guid>
    </item>
    <item>
      <title>脚本: 记录一个命令并重放之.</title>
      <description>&lt;p&gt;我现在越发觉得自己的拖延症无可救药了。于是被迫写了这么个玩意儿来缓解一下症状。&lt;/p&gt;

&lt;p&gt;这个脚本能做两件事：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;保存一个 shell 命令&lt;/li&gt;
&lt;li&gt;执行保存过的命令&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/5long/c#example" rel="nofollow" target="_blank" title=""&gt;README 里的用例&lt;/a&gt;就是我自己的用法：读书，并继续读下去。因为某种特殊的偏好，我的桌面上没有图标，没有 dock 之类的"快速启动"软件，平时启动程序都是用 &lt;a href="http://tools.suckless.org/dmenu/" rel="nofollow" target="_blank" title=""&gt;dmenu&lt;/a&gt;. 所以这个脚本还是很适合我自己使用的。映射到快捷键可能更好，但那样的话就会存在两种"启动程序"的方式，又给自己制造拖延的借口了... 现在感觉不错就先用着。&lt;/p&gt;

&lt;p&gt;当然现在很多软件都有"最近打开的文件列表"这种功能，但是找到那个界面的步骤都不如这个脚本门槛更低。对于重度拖延症患者来说，拼命地扫清启动障碍还是很有必要的...&lt;/p&gt;

&lt;p&gt;最后，代码在这里：&lt;a href="https://github.com/5long/c" rel="nofollow" target="_blank"&gt;https://github.com/5long/c&lt;/a&gt;&lt;/p&gt;</description>
      <author>5long</author>
      <pubDate>Sun, 18 Nov 2012 01:07:42 +0800</pubDate>
      <link>https://ruby-china.org/topics/6856</link>
      <guid>https://ruby-china.org/topics/6856</guid>
    </item>
  </channel>
</rss>
