Update: 经 @night_song 指出, pry 中可以用 show-method 直接实现本文所述的功能。用 pry 替代 rails console 的方法很多,可以参考 这里这里


原文

我(原作者)经常要去读 Rails 的源码,但是有时定位某个 method 在源码里的位置不是那么容易。比方说想看看 Rails 4 里面新的 update 跟原来的 update_attributes 有什么不一样,于是我查找 def update ,跳出来 50 个结果,分布在 37 个文件里面。显然我们要找的是 ActiveRecord 里面的哪个,但是不好找啊。实在是应该有办法直接跳到我们想找的那个 method 源码。

还真有。

继续阅读

上个月 Linode 被骇客入侵导致所有信用卡信息泄露,我也未能幸免地中招去换了卡。今天在 HN 看到侵入者所发布的幕后故事,觉得挺有意思,就转过来跟大家分享一下。

我对骇客界的术语完全不懂,以下转译基于 HN 上的一条评论,掺杂一些我自己的理解。

HTP (“Hack The Planet”) 是一个骇客组织,某不知名的团体装成另一个叫 (“ac1db1tch3z”) 的组织对 HTP 进行了一些调查活动,主要是想寻找 HTP 使用的 Botnet (僵尸网络)。而这行为被 HTP 察觉到了,于是打算进行报复。

继续阅读

非直译,原文: Understanding Ruby Blocks, Procs and Lambdas

Ruby 处理 closures (闭包) 的方式很独特。闭包在 Ruby 里面有 4 种不同的方式,每种方式跟其余几种都有那么一点点的区别,下面就来看看……

首先, Blocks

最常见的,最简单的,而且被大多人认为是最具有 Ruby 风格的闭包使用方式是 blocks . 像这样:

这段程序做了什么呢?

  1. 定义了一个数组 array .
  2. collect! 这个方法连同它后面的代码块传入这个数组 .
  3. 这个代码块找到 collect! 这个方法用的变量 (也就是 n ),然后对其进行操作 (在这里是平方)。
  4. 每个 n 都操作一遍,得到最后的结果。

collect! 使用一个 block 看起来很容易,只需想像成 collect! 这个方法把代码块在数组里面每个元素上都过了一遍。但是如果我们要自己写这个方法呢?假设这个方法名字叫 iterate! 的话,写出来是这样的:

继续阅读

感谢科技的进步,让贫富差距变小。近五年来,无论一个英国人是领着政府救济的贫困户,还是普通中产阶级,抑或是腰缠万贯的富豪,他能买到的最好的手机都是 £500 左右一台 iPhone . Apple 自从 2007 年发布第一代 iPhone 以来,一直保持着每年一次,不多也不少的更新频率。 今年九月十二号, Apple 按例在旧金山芳草地艺术中心发布了最新一代 – iPhone 5 .

只是, iPhone 5 现在还能算最好的手机么?

iPhone 5

继续阅读

上两期(aka 一年多以前,sorry ;–( )我们访问了 斯巴达雅典 这两座最负盛名的伟大希腊城邦,从社会和政治两方面进行了一些分析。接下来不妨看看在这些古希腊城邦里面产生了什么样的文化。概括而言,所有城邦的文化都有一些共同点,但每个城邦也都具备自己的特色。

鉴于如今对古希腊城邦的了解大部分都建立在雅典城邦上,这次还是以她为例。来到公元前五世纪,雅典城邦正值她在古典时代的黄金时期。让我们从最为公开的艺术形式 建筑 和 戏剧 开始。

建筑是文化标志中最公开,最公共的一种。巨大的建筑物矗立在城邦中,城邦居民每天都要看到它们。无论他们对这些建筑是喜是恶,是赞美还是批判,也动摇不了这些建筑分毫。这些建筑可以告诉我们很多信息,关于它们的城市,关于它们的建筑者。

继续阅读

注:本故事纯属虚构。如有雷同,乃是巧合;本文纯属原创。如有雷同,实属抄我。

2011 年圣诞节前夕,美国纽约市第五大道 645 号 Olympic Tower 的某办公室内,两人隔桌相对而坐。

大班椅中的老者显得有些心不在焉。即使坐着的时候,也能看出他身材不高,约莫六十来岁的样子,虽然未见谢顶,但头发已经根根银白。此刻他一只手无意识地拨弄着桌上的钢笔,眼神似乎看着办公桌对面的人,又似乎透过了那人而望向远方不知何处。他脸上表情严肃,嘴角略微下垂,两条还没有完全变成银色的眉毛锁向中间。

老者对面的中年男子是一名黑人,虽然身着西服,也能从外形上看出他身材十分粗壮,他的嘴唇很厚,双目坚定有神,而头上则是光溜溜的,此刻他身体略微前倾,一双大手按在桌面上,目光直视着老者,似乎正在等待对方发话。

短暂的沉默后,黑人男子开口说道:

「我说大卫,我们不是早就谈完了么?事情都已经解决了,名字全都签下了,咱俩还有啥可谈的啊?」

黑人男子那洪亮的声音似乎让老者一下子回过神来,他的脸上瞬间幻化出一个和蔼而略带职业性的微笑,眉头也舒展开来,答道:

继续阅读

1. 为什么需要 NAS

随着科技进步,普通家庭中的智能设备越来越多,包括传统的台式机,笔记本电脑以及新潮的平板电脑,智能手机甚至媒体播放器(把 iPod touch 归为媒体播放器有点怪异,但人家确实是 iPod 家族成员…)。而便捷地在这些设备之间共享文件的需求也日益增加,于是原本属于专业设备的 NAS (Network-Attached Storage) 逐渐进入普通家庭中。

NAS 相当于大大扩充了家庭中每一台智能设备的存储容量,同时也让它们都能随时独立访问任何文件。简而言之,就是“扩容”和“共享”两大功能。如何利用这功能,则看用户需求了。有些人把 NAS 当作多媒体库使用,存放大量的影视音乐文件;有些人则将其作为备份仓库,存放数码照片原片以及视频原始脚本等。总而言之,可以将其看做一块无线连接在所有智能设备上的大硬盘,随便如何使用。

继续阅读

上期我们介绍了重要的古希腊城邦之一 — 斯巴达城邦。这一期,我们转向最著名,最重要,在很多方面也是最有趣的城邦 — 雅典城邦。

斯巴达的社会制度非常有序,稳定,难以变化,而在雅典,则完全没有这回事,前面几个形容词一个也套不到雅典的头上。雅典人的爱好就是冒险,他们喜欢危机,喜欢波澜,喜欢改变。 以现代人的眼光来看,雅典城邦经历过的最大变革,是她的掌权者的变化。起初,雅典城邦的统治者是一小部分叫 Eupatridae (中文勉强翻译成 世袭贵族 吧,就是 well fathered men ,俺爸是李刚那么个意思。希腊语这个词后半截 πατέρας 就是爸爸之意。) 的人。在一段大概200年的历程中,权力逐渐转移到 Demos (全体城邦公民,猜猜这是哪个的词根,哈哈,别告诉我你看不出来。) 的手中。关于这个“全体公民”是怎么定义的,容后详述。

继续阅读

小时候,父亲教导我:「知识就是力量,法国就是熏肉。」

前一半我懂,可后一半是神马意思?为什么这两句看起来毫无关联的话会放在一起?我为此疑惑了十多年。

有时跟别人聊天,我会引用这句话:「知识就是力量,法国就是熏肉。」听者都会点头。而有时听到有人引用前半句「知识就是力量」,我会给他们补上后半句「法国就是熏肉」。他们也表示同意,并不觉得惊异。

我有一次真的去找老师问这个问题:「知识就是力量,法国就是熏肉。」到底是什麼意思?这位老师花了整整10分钟时间给我解释「知识就是力量」,却完全没有涉及后半句。最后我用疑问的语气问道:「法国就是熏肉?」希望能得到一些讲解,但是只得到了一个字「对」。当时我才12岁,就没有勇气继续追问了,只好接受这个事实 — 我永远也没法搞懂这句话。

数年前,我看到了写在纸上的这句话,终于恍然大悟……

Knowledge is power.

— Franc e is Bacon

强烈建议懂基本英语的筒子们去看 原贴 。感谢 大师 的指引。

上期说到,在古希腊的古风时代,希腊城邦开始出现和发展。这一期我们把聚光灯打在其中一个城邦上,看看著名的斯巴达城邦是如何运作的。下一期,再去看看雅典城邦。我们可以从政治,社会和文化几个方面入手去了解。文化方面的内容放到后几期,这两期主要看政治和社会。

以下文中所说的城邦,如无特别说明,均指古希腊城邦。要了解城邦,首先要搞清楚城邦的概念。城邦是什么?城邦代表了什么?

表面上来看,城邦的组成结构很简单,两个部分 — 市中心和围绕市中心的一圈土地(基本上是耕地)。每个城邦的中心固然差别很大,但都会有一些相同的元素在里面。 比方:

继续阅读