2013年7月19日星期五

50 年前的黑客黑什么?

19 世纪 60 年代,个人电脑还没有出现,两位 Steve 还没有把苹果电脑发明出来,那当时的黑客黑什么呢?黑电话网络。其中最著名的例子应该是两位 Steve 发明的蓝盒子了——只要用它来拨号,就能免费拨打长途。那到底蓝盒子的原理是什么?如果你好奇心足够重,就应该去看一本叫做《Exploding the Phone》的书。

这本书先介绍了一下 AT&T 的简史。在贝尔发面电话之前,垄断美国的网络是西联电报。当时电报存在一个技术难题,就是一条线路只能走一个信道。由于想要发电报的人越来越多,而扩建线路的成本并不低,所以西联电报尝试研究信道复用技术。当时研究信道复用的人很多,大家都认为谁先研究出来了就可以高价卖给西联电报,贝尔也是竞争者之一。不过贝尔更爱声学,所以他想要通过线路来传播声音。在他看来,如果线路能传播和声,那就相当于能够复用了——不同频率的声音相当于不同的信道。最终贝尔发明了电话,西联电报认为这是玩具拒绝购买,贝尔只好创立自己的公司来建立电话网络。

最初的电话是点对点的,也就是两家公司需要经常联系的话就铺设一条电话线路连接这两家公司。很快贝尔就意识到这限制了电话网络的扩张,所以引入了交换局的概念——多个家庭接入一个交换局,然后任何人拿起电话都可以跟交换局的接线员说要接给谁,接线员就可以帮他接通电话。随后交换局发展到可以通过干线和其它交换局连接起来,于是大家可以跟接线员说「请帮忙接某某区第几局谁谁谁」,接线员就会接干线到某某区第几局,然后跟该局的接线员谁接谁谁谁。

在搞掂美国东部几个大城市的电话网络后,贝尔意识到电话专利还有 10 年就要过期了,过期后就会出现非常多的竞争对手,所以贝尔尝试利用这 10 年来建立美国的长途电话网络,随后以此来跟竞争对手的本地电话网络竞争。事实证明这个策略是正确的,电话专利过期后每个城市都有若干电话公司成立,贝尔的做法就是打压这些电话公司——要么你被我并购,要么你跟我合作,否则我不让你接入长途网络。最终 AT&T 形成了,并且成为了一个受司法部认可的垄断企业。

这时候电话网络已经演变出电话号码来,但仅用于同一交换局内。如果你要打一个长途电话?你还是要跟接线员说「请帮忙接某某市某某区第几局号码多少多少」,然后她帮你接到某某市某某区第几局,再让那个局的接线员完成拨号。北美的电话号码格式都是 +1 (XXX) YYY-ZZZZ,其中 ZZZZ 段就是同一个交换局下面的电话号码了。后来,交换局也变成了号码,于是就有了 YYY 段,但长途电话还是要找接线员。

让长途电话也变成号码,这是 AT&T 的迫切需求,同时也是技术难题。迫切需求,是因为 AT&T 雇佣的接线员越来越多,按照网络扩张速度来看,AT&T 估计要雇佣一百万的接线员才能覆盖整个美国,而美国根本不可能提供那么多的人力资源来做接线员。技术难题,是因为无法为任意两个城市建立直接连接的长途干线,所以需要接线员来手动路由。有时候接线员不知道该怎么路由了,还需要接转入局接线员,因为她们是接线员的接线员,专业接转出局接线员无法路由的电话。

最终 AT&T 成功通过机器加打孔金属片解决了这个问题。所有的路由信息都记录在打孔金属片上,机器能够智能地选择下一跳交换局,在本交换局到下一跳交换局干线全部被占用的时候还能智能地选择另一个下一跳交换局。不过这里还有一个小小的问题:过去目的地电话号码都是接线员之间口述传递的,直到最后一跳的交换局才拨打本地号码,现在通过什么方式来传达目的地号码呢?既然接线员能够口述电话号码,AT&T 的工程师想,那让交换机和交换机通过音频线路来传递电话号码也可以吧。于是一个史无前例的网络漏洞就诞生了。

这本书每一章都是一个独立的故事,讲述一个人或者一小群人如何发现 AT&T 的这个网络漏洞然后加以利用。尽管随着科技的发展,这个漏洞和利用方式都在变化,但不同时期都有人发现了这个漏洞。在接线员消失以前,有人找到转入局号码并且拨进去假装上一跳接线员要求转接,因为计费发生在第一条接线员那里,所以转入局接线员总会无偿转接。在接线员消失后,有盲人发现对着电话吹口哨就能拨打免费电话。再后来,晶体管的出现使得蓝盒子成为可能。

简单来说,这个漏洞是这样子的:计费永远只发生在第一跳的交换机,如果你在第一跳交换机拨打一个免费电话,整个会话它都不会进行计费。美国的目录服务(相当于中国的 114)是免费的,包括长途拨打其它城市的目录服务也是免费的,所以你可以拨打一个长途目录服务来开始一个不计费的会话。接下来你需要对着电话发出一个 2600 Hz 的声音,这个声音是两台交换机之间用来表示干线闲的声音。你第一跳的交换机听到这个声音后会无视它,因为你是电话不是交换机。但第二跳的交换机就会以为干线闲,那对它来说意味着第一跳的交换机把电话挂断了。接着你终止 2600 Hz 的声音,第二跳交换机就会以为第一跳交换机再次连接同一条干线,并且有一个新的长途电话需要接通。这时候你就可以通过音频指令向第二跳交换机进行拨号了,无论你拨什么号码它都会为你接通,而且计费责任不在它身上。第一跳交换机会把整个过程看做你原先那个免费长途电话,因此也不产生计费。

在 50 年前,AT&T 不能像 Facebook 一样发个 hotfix 就立即对所有服务器生效,AT&T 也不能像 Microsoft 一样发个 hotfix 然后等着用户下载生效。面对这个漏洞,AT&T 的工程师估计需要几亿到几十亿美元的成本来更换所有的交换机。至于更换交换机后能否保证不再有漏洞,那肯定是不保证的。所以,在那 10 年的时间里,AT&T 想方设法制止别人利用这个漏洞,但同时又要尽量避免见报,因为见报了就会有更多人仿效。

在这期间,黑客使用各种手段来探索电话网络的秘密。他们找到了电话网络中的回路,也就是 IP 网络 localhost 的始祖——你拨打电话给回路号码,它会录音一段时间,然后它会自动回拨并播放录音。回路的作用跟 ping localhost 相似,就是测试一对线路是否联通。他们找到了免费的电话会议入口——某些无效号码会把所有来电都接到一跟线路上,然后播放号码无效的录音,只要你大声说话所有人都能听见。他们甚至还找到了从民用电话网络劫持交换机介入军用电话网络的方法。

最终,晶体管使得程控交换机成为可能,这个漏洞才被堵住了。(中国基本上没有部署过机电交换机,直接从接线员时代进入程控交换机时代,所以这个漏洞几乎不曾存在过。)晶体管同时使得个人电脑成为了可能,原本热爱探索电话网络的黑客找到了新的探索方向,例如两位 Steve 就发明了苹果电脑。最终黑电话网络的 10 年结束了。至于那 10 年里都发生过什么传奇故事,大家可以去看那本书慢慢了解,我就不剧透更多了。

2013年7月9日星期二

赴美工作常识(Part 2 - 申请)

在《Part 1 - 签证》的评论中有人提到,说我还没说如何申请职位就说签证的事情了。一方面,签证的周期决定了你申请职位的时间,错过关键时间点的话就可能错过重要的机会。另一方面,传统意义上的「申请」其实不是我的强项,而我个人的做法可能对大多数人来说是不容易实践的。

首先需要说明的是,我在找工作时有两件事情是绝对不做的:

  1. 大量投简历给众多公司
  2. 为面试做任何应试准备

我找工作基本上靠内部推荐,所以我是不会投简历给众多公司的。这不仅仅是因为内部推荐会使得公司更重视,还因为我需要了解一家公司是否适合我。一家公司如果没办法吸引到我身边跟我志同道合的好友,那么它对我的吸引力也相对有限。(我选择豌豆荚的时候就是因为我认识里面不少人,并且这些都是我信任的人。)通过认识的人,我可以了解到这家公司的文化以及前景,这对我来说是非常重要的。

对于面试,我从来不尝试通过应试的方式来准备。我觉得我懂什么由我的兴趣来决定,没兴趣的事情我没必要通过机械训练来假装懂,有兴趣的事情我会研究清楚你喜欢跟我讨论什么都可以。这使得我能通过的面试都是我真正喜欢并且胜任的工作。当然,这不意味着面试前不能巩固一下自己已经掌握的知识,因为有些自己很感兴趣的事情一段时间不接触也会生疏,如果你拿我两年前的技术文章来问我很可能我也说不清楚细节。

把前提条件说清楚了,我们就可以进入正题了。

名声

听说过 Google PageRank 的人都应该知道,PageRank 的核心思想是把链接当做投票(或是论文中的引用),你的页面被其它页面链接的次数越多,那些页面自身的 PageRank 越高,你的页面的 PageRank 也就越高。同时,在做关键字匹配的时候链接的文字比你页面内容的文字更重要,如果有一个 PageRank 很高的页面链接到你的页面且链接文字是某关键字,就算你的页面内容完全不包含这个关键字也能用这个关键字搜索到你的页面。简单来说,你说你是谁并不重要,重要的是别人说你是谁。

基于同样的道理,其实你在简历上说你做过什么并不重要,至少没有你想象中的重要,真正重要的是在别人怎样说你。(简历的问题后面再说。)所以最简单的方式是去 Stack Overflow 上面回答问题,和去 GitHub 上面参加开源项目。

Stack Overflow 的门槛相对低一些,只要你敢于用英文和别人交流就行。问题并不比各种中文技术问答论坛要难,可能对于大部分人来说难度在于理解问题和用英文说清楚自己的答案。对我来说,通常看 10 个问题只有 1 个是可以回答的——有几个是问题质量太差而不值得回答的,有几个是不懂所以无法回答的,有几个是已经有很好的答案不需要重复回答的。如果你阅读问题的速度太低,建议还是先通过阅读技术书籍来提高,否则挑选问题的速度会很低。在挑选到合适的问题后,你就可以答题了。Chinglish 不重要,但写完一定要检查一遍避免犯低级错误。

GitHub 的话,要对一个项目作出贡献先要对它有相当的了解,所以门槛不低。我曾经见过有英文文章推荐一种很好的切入方法:找一个你感兴趣的知名开源项目,然后寻找它缺乏单元测试的地方,尝试帮它写单元测试。这会驱使你去研究待测代码,因为如果你不知道这些功能的边界在哪里,你是没办法写单元测试的。写好单元测试就发 pull request,一般对方是不会拒绝的,因为这绝对是纯粹的贡献,不会跟项目主导者所设想的项目发展方向有任何冲突。如果代码本身就写得完全不可测?那你就可以动手重构代码,让它变得可测,这同样会驱使你去研究代码。

简历

我偶尔会收到陌生人的简历,一部分是让我帮忙推荐给公司的,另一部分则是让我对简历提出修改建议的。我发现大多数人的简历都会包含过多的信息,结果就是重点不突出。

要写好简历,首先要理解别人是怎么读简历的。如果现在有 100 份简历放在你面前,要你挑 10 份还可以的,以及 1 份特别出众的,你会怎么读?可以很肯定的是,你不会把这当做考纲中的必考内容一页一页仔细读。你会先抽样一部分粗略看一遍,以便确定这些简历的基准线在哪里,然后才能确定那 10 份的期望是多高,那 1 份的期望又是多高。接着你以那 10 份的期望为筛选标准来看这 100 份简历,达不到期望的直接扔掉。有可能你最后剩下 15 份,你会再看第二遍并且扔掉 5 份;也有可能你最后剩下 8 份,这时候你凭记忆把接近这 8 份的另外 3 份找回来,再扔掉 1 份。最后,你从这 10 份里面挑明显好的 1 份出来。

可以说,这 100 份简历里面有 8 份是毫不犹豫能够留下的,有 85 份是毫不犹豫可以扔掉的,剩下的 7 份才是需要仔细阅读对比的。如果你的目标是成为那少部分人——直接通过的那少部分,而不是让人纠结的那少部分,那你就应该分析清楚自己的优势在哪里,并且只提能够证明这些优势的重点。多余的信息没必要提,提了只会降低信噪比。

为了适应人的阅读习惯,必须注意一下排版,引导读者的视线从上往下看,并且突出关键字。入门的话,读一下《The Non-Designer’s Design Book(写给大家看的设计书)》就足够了。前端工程师可能经常接触到网格式布局,其实道理书中也说得很清楚,就算你不理解的话你按照这种方式去设计简历也会发现可读性更高。

最后,现在主流放英文简历的地方应该是 LinkedIn。很多美国公司都会购买 LinkedIn 的服务来搜索简历和联系潜在的候选人,所以就算你已经有了很好的个人网站最好还是在 LinkedIn 保存一份简历副本。

在上述一切准备就绪之后,就可以接触公司了。找人内部推荐,或者在公司网站上传简历,其实都可以。值得提醒的是,如果你有计划要找人内部推荐,就先别自行上传简历,否则推荐可能被视为重复上传,最后系统有可能不承认这是推荐。

关于申请我能想到的就那么多了。前期工作做得足够好的话,可以省掉后期临急抱佛脚的麻烦。不要等到想换工作的时候才想办法证明自己的价值,要时刻保证自己的价值以便在想换工作的时候就能换工作。

2013年5月25日星期六

赴美工作常识(Part 1 - 签证)

在《面试体验:Facebook 篇》的最后,我提到了我会写文章来介绍一下如何申请美国职位,以及拿到 offer 后入职前后都需要做些什么,那我们就先从到美国工作所必须的签证说起吧。说到签证,还是要先免责声明一下的,因为我不是移民律师,所以我只是按自己的理解来说,如果真的碰上了法律问题你还是要去咨询律师的。

能够让你到美国工作的主要签证无非就是那几种:H、L、O。对于想要从中国直接应聘美国职位,那最常见的就是通过 H 签证了,其中只有 H–1B 是跟你有关系的。

由于 H–1B 的配额是跟美国的财年挂钩的,所以我们必须先了解美国财年是如何计算的。美国的财年都是从上一自然年的 10 月开始算的,所以 2014 财年就是从 2013 年 10 月开始到 2014 年 9 月结束。H–1B 允许在财年开始前提前 6 个月提交申请和进行审批,所以对 2014 财年配额的申请最早可以从 2013 年 4 月的第一个工作日开始提交。然而 H–1B 还是要等对应财年到了才生效,所以就算 2013 年 4 月 USCIS(移民局)通过了你的 H–1B 申请,你还是要等到 2013 年 10 月才能签约并且开始雇佣关系。

H–1B 的配额有多少?不考虑将来移民法案改革的话,最近几年的数字都是:65,000 个普通名额,加上 20,000 个美国硕士名额。前者适用于任何具备学士学位的人,后者只适用于具备美国硕士或以上学位的人。如果配额用完了怎么办?那 USCIS 就不再接受这一财年的任何 H–1B 申请了。如果 4 月第一次统计已有申请数量时就超过了配额呢?USCIS 会通过抽签来决定哪些人能够获得配额。美国硕士先进行 20,000 个配额的抽签,抽不中的人会跟普通人一起再进行 65,000 个配额的抽签。

智利和新加坡跟美国签署了自由贸易条款,使得这两个国家的公民可以申请 H–1B1 签证。智利有 1,400 个配额,新加坡有 5,400 个配额。如果在一个财年当中这些 H–1B1 配额没有被用完的话,下一个财年就会转变为任何人都能申请的 H–1B 配额。此外,在大学及非盈利研究机构工作的人不受配额限制。因此,每年获得 H–1B 签证的人数是多于 H–1B 配额总数的。

申请 H–1B 唯一需要的就是你的学士学位证明。如果没有的话,你需要证明你积累了相当于一个学士学位的工作经验,换算公式是:每 3 年全职工作经历等同于 1 年全职在读经历。也就是说,如果你有 2 年本科学习经历,你需要 6 年工作经历。如果你完全没有本科学习经历,你需要 12 年工作经历。工作经历还不是能够直接换算的,要求你能证明其积累的经验等同于一个学士学位。具体操作起来没有人能够保证申请成功,只是你的材料越有说服力,负责申请的移民律师越有经验,就越可能成功。

如果你是快要毕业的大四学生,但你还没有学士学位,你就需要学校开出一张证明来说明你预期能够拿到学士学位。如果你拿不到这张证明,然而你也无法在 H–1B 配额用完之前拿到学士学位证明,那你就会错过这一财年的 H–1B 申请。据我所知去年北大和清华都有人因此而错过 H–1B 的,所以提前了解好学校的态度很重要。

如果你拿到 offer 后真的拿不到 H–1B 签证,那接下来怎么处理就要看公司的安排了。对于大公司而言,灵活方案会比较多,例如可以安排你到其它国家或地区的分支机构工作满一年再到美国来。这时候就需要用到 L 签证了。L 签证要求你先受雇于跨国公司的海外分支机工作构满一年,但这期间如果有需要到美国出差的话用 B–1 签证也是没问题的。如果是高管或者经理,可以申请 L–1A,否则只能申请 L–1B。如果你确实很厉害,例如在博士就读期间发表过很顶级的论文,可以让公司尝试为你申请 O 签证。O–1 签证的前提条件是 USCIS 审批承认你是杰出人才。

说了那么多,对于还没开始申请美国职位的人来说唯一有意义的信息就是注意 H–1B 周期。在经济不好的年度,你什么时候申请问题都不大,反正公司招人少,所以 offer 发得少,但只要有 offer 都有 H–1B 配额。但在经济好的年度,配额可能很快用完,甚至需要抽签,所以你最好在 2 月中拿到 offer,留下一个半月给律师准备申请材料,然后 4 月第一个工作日就把材料递交上去。往前反推的话,你最好不要晚于 1 月初开始面试。

还没有护照的人,就不要把这件只需要 ¥200 但必须回户籍所在地才能办的事情拖着不办。如果你顺利获得了到美国(或者香港、新加坡等分支机构)面试的机会,你就要用护照去申请签证(或用港澳通行证去申请签注),到这个时候才跑回户籍所在地申请护照就会浪费不少时间。再去面试所需的商务旅游申请签证就有可能就会错过关键时间点。

跟工作签证有关的事情,我能想起来的就这么多了。接下来写什么?还没想好。什么时候写?不知道。初到加州的人都会发现周末可以出去玩的地方实在是太多了,所以没什么心思来写文章。

2013年2月25日星期一

Death Valley 非露营

上个长周末再次进入 Death Valley,不过这次不是露营,也没有住里面的 resort,住的是外面一个叫 Lone Pine 的小镇的 motel。之所以再次去,一方面是因为上次错过了几个景点,另一方面是有不同的朋友想去,我想试一下跟他们出行。旅游看的不仅仅是风景,如果你跟不同的人重复去同一个地方,你会发现你看的实际上是人。一样的景物,不同人看到的反应不一样,你则能看出人不一样的地方。

2/16

考虑到这次的假期只有 3 天,我们选择了第一天凌晨出发。大概 2:30 离开湾区,路线还是跟上次差不多,经过 Bakersfield 然后进入 Death Valley,唯一不同的是不走难走的 CA–178。我们大概是早上 6:30 进入 Bakersfield,加油并且吃早餐后换我来开车,然后我一直开进公园里。

Untitled

进入公园后,先经过了 Father Crowley Point,然后进入 Darwin。由于上次没有看到 Darwin Fall,所以这次我很想补回来。首先我们开进了 Darwin 这个小镇里面,发现这个小镇里的大多数房子和车都被废弃掉了。正当我们想要说这是 ghost town 的时候,发现还是有活人住在这里的。我们想要从小镇往西开到 Darwin Fall,结果发现路尤其难走,根本看不清楚路在哪里,只好放弃并且折返。我们问镇上的人如何才能开去 Darwin Fall,对方说就算你有四驱越野能力,也不值得走这段路,因为一旦车出问题就惨了,还是返回 CA–190 往西开吧,有另外一条稍微远一点的路能够进去 Darwin Fall。于是我们就走了那条远路去 Darwin Fall。

Darwin Fall 的 hiking 入口连水都看不到,让人很难相信走进去一英里会有瀑布。走着走着看到有非常细小的溪流出现,并且山边有水管,于是我们就在开玩笑的说,「不知道这水管是从瀑布采水的,还是送水进去以便形成瀑布的」。越往里面走,溪流就越粗。由于两侧地形复杂,所以要经常跳过溪流到另一边继续前行。最后来到瀑布前面来,发现原来是那么小的一个瀑布。

Untitled

从 Darwin Fall 出来时,我就发现车的方向有点不稳,回到 CA–190 后我立即就意识到爆胎了,因为明显感觉到有一个轮胎已经不是圆的了。下车一看,果然是爆胎了,但在下坡且由碎石铺成的路肩上没办法换轮胎,所以只好尝试求助。我们拦下来一辆车,让他们到达下一个小镇后帮我们联系 ranger 过来帮忙。后来有人查地图发现其实我们离下一个小镇只有一英里,于是决定把车慢慢挪过去,到那里换轮胎,或者找人帮忙。

其它人都下车后,我自己慢慢把车往前开。因为山路弯曲还有上下坡,所以要有人专门在我后面引导快速靠近的车辆减速和借用对面车道超车。我把车开到 Panamint Springs 这个小镇后,停在了加油站平整的水泥地面上,然后我们开始换轮胎。我们五个人当中没有一个人有换轮胎的经验,于是各自贡献自己的知识,尝试把论坛拆下来。有人拿出千斤顶来,但不知道应该从哪个位置往上顶,我记得 Audi Q5 说明书上说顶前轮后面或者后轮前面的,所以我就说放前轮后面吧。车顶起来之后,我们发现没有人有力气把轮胎螺丝拧下来,之后求助于旁边在休息的自行车手。(能在 Death Valley 这种海拔上千米上下的地方骑自行车,肯定很有力量吧。)自行车手过来后,用爆发力一下子就能拧松一颗螺丝,然后我们就能继续完成接下来的工作了。

考虑到换上备胎后就不能再冒险了,所以我们只能开车离开 Death Valley,先去 Lone Pine 住下来再想办法。下午 4:00 到 motel 后,我开了一整天的车已经累到只能趴在床上睡觉了,朋友则在打电话联系如何能够换车。Hertz 说,我们可以在当地找修轮胎的,修好找他们报销;我们也可以找 Hertz 换车,不过需要开很远。结果由于是假期,附近所有修车店都不营业,一般的 Hertz 也不营业,所以只能去最近的机场 Hertz,也就是 Los Angeles。我睡着后,朋友开车去换车了,顺便在 Los Angeles 吃了一餐零点的晚餐,到凌晨 2:30 才回来。

2/17

原本我们的行程是,第一天去玩南面,第二天去玩北面,第三天慢悠悠开回湾区。由于爆胎换车浪费了一天,所以整个行程只能往后推移一天,然后第三天晚上赶回湾区。

第二天的任务是南面,朋友把车开进 Death Valley 后就交给我开。我先把大家带到 Devil’s Gold Course,然后是 Bad Water,晒晒太阳散散步。接着往回开,去了上次没有去的 Natural Bridge,不过由于时间有限,没有能在 hiking trail 上走多远,看到自然力量形成的桥洞就回头了。

Untitled Untitled

回头的路上还经过了 Artist Drive。由于朋友想要开上下坡,我就给他开了,结果他很郁闷地跟在一辆慢车后面慢慢开,还要提防那辆慢车突然刹车。再下一个经典是 Golden Canyon,同样是没有时间走太远,看到金色的石壁以及石壁上打斜的岩石纹路就回头了。

开往另一个岔路后,我们在 Zabriskie Point 拍了几张黄昏照后就匆匆上路了。一路上那么赶,就是为了登上 Dantes View 看日落。最后一段盘山路是我开的,其实只有最后一英里超级抖和急弯,前面的路还是挺好开的。

Untitled Untitled

看完日落后,就回 Lone Pine 吃饭了。每天进出 Death Valley 都要走一个小时的上下山弯路,加上 Death Valley 内部的路,我开了两个小时才到餐馆,然后当然要吃一顿好的啦。在一家美式餐厅坐下来,我点了一份烤半鸭饭,感觉还不错。有人点了烤排骨加饭,说感觉就如同粤式烧腊饭,一点都不美式。

2/18

最后一天去北面玩,重点就是 Racktrack Playa 和 Scotty’s Castle。开进 Racetrack 路段时,发现忘记在 Stovepipe Wells 加油了,而油只剩下一半所以不敢开空调。开到终点后才发现,油完全足够返回 Stovepipe Wells 后再加油,且外面的凉风比车内要舒服多了!这次补看了上次没看的南面景点,发现原来南面的石头才是真的多,而且轨迹才是真的画圈的。至于北面的荒岛,估计是游客多了,地面的破坏也严重了,跟上次对比发现明显多了一条鞋印组成的 track!

Untitled

UntitledUntitledUntitledUntitled

离开 Racetrack Playa 后,途径 Ubehebe Crater 返回,然后从另一个分岔口去 Scotty’s Castle。这次经过 Ubehebe Crater 的时间比较早,所以拍到了没有阴影的大坑底部。据说这个大坑走下去的 hiking trail 要两个小时往返,我们开玩笑说走下去是 10 分钟,走回来是 110 分钟。此外在 Ubehebe Crater 上面拍照时,还看到了很搞笑的逆飞鸟。简单来说,就是有几只鸟在逆风滑翔,它们腾空后想要往前飞,但落地后却发现还在原地,甚至后往后退了。

Untitled

我们开到 Scotty’s Castle 时,发现这个地方真豪华啊。什么人会把棕榈树搬到沙漠里面来呢?可惜要进去城堡里面参观是要付费参加一小时导游的,我们不想花钱花时间,所以在外面走走拍照就算了。感觉一百多年前能在这个荒无人烟的地方建成如此豪华的度假圣地,还是非常有成就的事情。

Untitled Untitled

看完 Scotty’s Castle,整个 Death Valley 旅途就算结束了。跟上次的离开路线一样,我们选择了走 Wildrose,顺带看看 Charcoal Kilns,只不过这次是没有雪的版本。

Untitled

在开往 Trona 的大直路上,有人提议要不要抄袭别人已有的创意,坐在大马路中间拍照。结果最后大家都懒得做下来,站在马路中央拍了几张照就算了。

Untitled

晚上回到 Bakersfield 已经是 8:30 了,吃了一顿快餐就继续开往 Bay Area,结果当然是凌晨才回到家里。

小结

这次的旅行费用还是人均 $400,跟上次露营差不多。上次住了两个晚上的旅店,外加两个晚上的营地,这次只住了两个晚上的酒店,可以说露营相当于免费多住几晚。上次在路上只有一餐正餐是吃得好的,这次其实也一样,不同的是上次吃了几餐野炊,这次吃了几餐快餐。总体上来说,我觉得如果时间充裕的话还是露营比较有趣,但需要提前做好计划。上次露营订酒店的时间比这次还晚,之所以能订上估计因为是圣诞节,外出的人足够少。这次订酒店,我们订完后估计 Lone Pine 就没有空房了。

2013年1月6日星期日

Death Valley 四日露营 (Part 2)

前两天的行程请看 Part 1

12/24

由于前一天晚上下了决心一定要 4:00 起来看星星,然后开车上 Dantes View 看日出,所以闹钟响后就很齐心地起床了。4:30 开车到 Zabriskie Point,然后看头顶上的星星认星座。在月亮下山后,能够看到的星星果然更多啊,不过除了能看出不同的亮度和不同的颜色以外,我也看不出什么特别来。

接下来开车上 Dantes View 的山顶看日出。上到山顶感觉超级冷,拍几张照片就要把手放回衣服口袋里。其实日出只能在太阳真正升起来前对着太阳方向拍几张,只要太阳有一点点出来了就不能拍了,能拍的就是反方向刚刚被阳光照射到的山脉了。除了山脉,还有两个山脉之间的峡谷,包括我们下山后要去的 Bad Water。

Untitled

山顶的景点介绍有说 Death Valley 的地貌来源。两座平行的山脉是由于地壳运动造成的,中间峡谷低于海平面近 300 ft 本来是应该成为湖泊的,结果因为山脉挡住了海洋湿润空气导致缺乏降水,同时气温又足够高,结果山上流下来的水最终都被蒸干了,只留下了一篇盐田,也就是 Bad Water 白茫茫一片的地区。

Untitled

UntitledUntitledUntitledUntitled

从 Dantes View 下来到 Bad Water 上晒太阳,因为山顶上实在是太冷了,所以必须到有阳光的地方晒一晒。Bad Water 这个名字很奇怪,官方的解释是估计曾经有一个地图测绘者经过这个地方,他看到有水就想喝,但不知道这是一个快要完全蒸干的盐田,结果尝了一口发现水是苦的,就在地图上留下了「bad water」的标注。尽管 Bad Water 整体上是个晒干的盐田,但在公路旁边的角落里却总是有一块片是有水的,估计因为这一个区域总是在山脉的阴影之下吧,所以地图测绘者才尝到了苦水。

Untitled

离开 Bad Water 后,我开了一小段碎石路进去旁边的 Devil’s Golf Course 。同样是盐田,Bad Water 的地面相对平整,而 Devil’s Golf Course 却凹凸不平。再往前开就是 Artists Palette 了。这是一段单行观光峡谷,由于两侧大石块颜色斑斓而得名。在这条观光路线上,我们最喜欢的部分应该是路牌写着 DIP 的地方了,不踩刹车的话就好像过山车一样(其实我的脚还是放在刹车上的)。

Untitled

早上的最后一个景点是 Golden Canyon,这是一条 hiking trail。我们开头想要在一个小时内完成往返的,这样能够准时在正午前回到 campsite 收拾东西(campsite 跟酒店一样正午 check out),结果走进去后就感觉不走到尽头不罢休,于是走了两个小时才出来。所谓的尽头就是 Red Cathedral,一条长长的红色悬崖,悬崖上方大概就是 Zabriskie Point 吧。

Untitled

UntitledUntitledUntitled

中午回 campsite 收拾帐篷和炊具,发现 ranger 其实不是很介意我们晚来,而且也没有新的游客要来赶着入驻。回顾一下早上如此丰富的行程,才发现早起是多么的重要!如果不早起的话,相当于有半天的时间就被浪费掉了,而完整的一天时间其实可以去很多很多的地方哦。

下午要准备离开了,离开前还去 Visitor Center 多拿了几份地图,保证每人手上有一份可以留念。我们想要在返程时看看之前错过了的 Darwin Fall,结果被 ranger 告知开车到那里后还要 hiking 一段才能看到瀑布,我们不可能在日落之前抵达,也就不可能看到什么。于是我们只好选择探索另外一条路径,去 Wildrose Canyon 看看。

车还是由我来开,路还是铺好的沥青路,就是山有点陡峭,只能用 low gear 放在 3 档开,保证上坡不会有问题,下坡不会超过 30 mph。这段路开起来还是挺刺激的,不会像碎石路那样颠簸,但在盘山时有不少急弯。快开到尽头的时候,沥青路消失了,变成了碎石路。继续往前开发现路上有积雪,大家都不知道是否应该继续往前走,然后说由开车的决定,于是我说绕过这个弯后看看。绕过去之后发现路边有两辆空车,那至少证明是有人来过的,人去哪里就不知道了。继续往前开看到有人穿着短裤在雪地上跑步,他告诉我们前面很快就到尽头所以我就决定继续开到底。

原来所谓的尽头就是 Charcoal Kilns,一个一百多年前用来烧炭的窑。话说这座山脉很有意思,我们现在所在的这一侧是西侧,有乔木有降雪,因为这一侧面朝太平洋(实际上离太平洋有几百英里)。早上我们在山脉的另外一侧,也就是 Bad Water,由于山脉把湿润的空气都挡住了,结果形成了 Death Valley。这个 Charcoal Kilns 就建在山脉的西侧,砍伐这边的树木烧成煤炭,然后运往山脉的东侧用来冶炼金属。

Untitled

我们看到 Charcoal Kilns 时,就有人说要下车在雪地上走过去。我就把车停下来让他们下车,然后想把车开过去再掉头。结果发现车一停下来就没办法继续往前开了,雪地加轻微的坡度足以打滑,于是只好倒车掉头靠边停。考虑到这个地方都积雪了,开过去也不知道哪里是停车位,停路边也不会影响到别人(因为根本没有「别人」),那就先停在路边吧。

Untitled

下山时,我们没有选择原路返回,而是走了 Wildrose Canyon 这条烂路。这又是我最享受的部分了,弯弯区区的沥青路,沥青已经一块块地烂掉,留下地上一个又一个的大坑。当然,享受的前提是我来开车,坐车的话可能比较晕。从山谷里绕出来后,又是大直路。限速 55 mph,我都不知道是否该把它叫做高速了。我开了一个小时左右,由于黄昏光线比较暗,眼睛一直要睁大才能看清楚,最后眼睛受不了了就只能靠边换人。

随后我们开车到洛杉矶附近的 Arcadia 吃了一餐鼎泰丰,感觉还不错,就是要等位。比较搞笑的是,鼎泰豐的新店和老店很近,估计很多人都同时在两边拿号等位,结果是两边都会叫一些空号。考虑到鼎泰丰支持短信叫号,拿号后可以回车上等,哪边先有位就开去哪边停,感觉还是挺方便的。饭后本来还想去 Half & Half 吃甜品的,去到发现关门了,只好回酒店休息。

我们选择了住 Oxnard 的 Best Western Plus,原因是靠近海边,第二天上 CA–1 方便。两天没洗澡,终于有机会洗澡咯!不管住什么酒店,能够洗个热水澡我就很开心了。比较搞笑的是,我们几个人轮番打电话给前台,都没把 Wi-Fi 密码搞明白,最后不想再找前台了,于是拿出各自的设备来 tethering 上网。

晚上躺下后发现这一天特别充实,因为早上一早起来了,所以时间很够用,能够去很多地方。不过想想其实不能每天都如此,因为 4 点起床 1 点睡觉实际上只睡了 3 个小时,算上轮流开车能在车上睡时间也不够 8 个小时。

12/25

最后一天,我们计划是开 CA–1 回家的,结果起床自然不可能早,加上在酒店烧水煮面,出门时已经没掉了小半天。由于不是所有人都吃了面,开车上路时就开始觉得有点饿(包括我在内),于是想找 In-N-Out 吃个汉堡,绕了两家 In-N-Out 都没开门。圣诞节果然所有人都放假了,想找吃的都不容易。于是我继续往前开,大家在车上上网搜索有什么好吃的,最后决定去 Santa Barbara 的 State Street,看看那条街上哪家开门有好吃的就吃哪家。

Untitled

开到 Santa Barbara 时已经下午 1 点了,在纠结了一段时间后终于选择在 Santa Barbara Brewing Company 坐下来吃 brunch。有朋友选择了 beer sample tasting,我因为要继续开车所以就不尝了,只是闻了一下不同酒的不同香味有什么区别而已。吃完 brunch 就 2 点了,继续赶路。由于 US–101 不靠海,所以我们想尽快开到 CA–1 和 US–101 分离并且靠海的路段看海。

快到海边时,我们找了个尚且营业的 Starbucks 买咖啡上洗手间,然后换人接着开。我第一次长时间坐这辆 GMC Acadia 的后排,发现跟坐飞机经济舱一样累。等我们赶到海边之后,发现很快就要日落了,之后要在 CA–1 上开夜路,于是决定只在海边拍日落,然后返回 US–101 继续开。

Untitled

UntitledUntitledUntitled

最后该来的风雨还是来了,走在 US–101 上一直在下雨,顺便也把我们这俩脏脏的车冲刷干净了。回到湾区吃了个饭,就各自回家了。唯一的小意外就是我们想提前还车但发现租车给我们的那一家 Enterprise 停车场锁门了。看来圣诞节真的该避免跟任何商业打交道。最后我们跑去附近酒店的另一家 Enterprise 还车了,幸好没有收我们额外的异地还车费用。

小结

旅行费用人均 $400,个人的露营用品投资则是额外的 $350,感觉还是挺划算的,比去一趟 Las Vegas 要省钱。很开心的是这次露营做了很多过去没做过的事情,包括在野外搭帐篷睡睡袋(上一次睡睡袋是北京暴雨那晚的豌豆荚 Hack Day),包括清晨起来看星星和看日出,还包括开车走碎石路走雪地。同时,因为是跟一班有 camping 经验的朋友一起去,所以要烦恼的问题少很多,旅途也不算辛苦。

如果大家有兴趣参考我们的路线的话,可以看这份 Google Maps 路线图。这是我第一次去露营,不知道什么时候才会有下一次,只能期待下一次的长周末了。

Death Valley 四日露营 (Part 1)

之前一直没想好圣诞节的 4 天假期做什么好,曾经想过要去 Las Vegas 不过后来看看往返机票要 $400 又放弃了。后来有 3 个朋友说不如去 Death Valley 吧,就决定参与讨论。因为我从来没去过 camping,所以不知道会不会很辛苦,也不知道该担心些什么。在帐篷和睡袋里睡两三个晚上会不会很不舒服?很可能没有机会洗澡哦?Death Valley 的生存环境是不是真的很糟糕?我统统都不知道,只好翻开 Lonely Planet 看看。朋友说我们去的是 car camping 而非 backpacking,所以要什么就带上车好了,不会缺乏物资,不需要负重步行,所以不会很辛苦的。于是我就决定参与一下,挑战一下自己的 comfort zone。(既然都跑来美国了,当然要去做一些自己原本不太愿意做的事情。)

由于朋友比较有 camping 经验,所以公共的帐篷和炊具由他们负责,我只要考虑自己的需求。我在 REI 买了一个 10°F(差不多 –12°C)的睡袋,意思是在 10°F 时仍然能够让人舒服睡觉,考虑到 Death Valley 现在还不会低于 0°C,感觉足够了。然后我还买了自充气的床垫和枕头,还有野外用的杯子和碗碟,总共投资约 $350。(其实我还想买一双 $130 的鞋用于 hiking 的,不过店里有的唯一一双有点问题,决定下次去 hiking 前再买。)

12/21

星期五下班后先吃饭,然后把租来的 GMC Acadia 开上 I–5 往南。我们大概花了 4 个小时抵达 Bakersfield,在 Hilton 住下来后已经是凌晨一点了。

12/22

Untitled

UntitledUntitledUntitledUntitledUntitledUntitled

由于有朋友建议去看 Isabella Lake,所以我们没有走好走的 CA–58 和 CA–14,而选择了走 CA–178 穿越山谷。其实这段路比较难开,要上山后走一段高原再下山,不过我们就是为求风景好而选择这样走。随后我们走 CA–395 和 CA–190 进入 Death Valley 国家公园(免不了在入口处拍照留念),经过老的区域中心 Stovepipe Wells,最后抵达新的区域中心 Furnace Creek。

Untitled

UntitledUntitledUntitledUntitledUntitledUntitledUntitledUntitled

在 Furnace Creek 注册好 campsite 后,已经差不多到日落时间了。我们想要上山顶看日落,可惜已经来不及了,在附近转了一下就开始生火搭帐篷了。由于我们带了小罐的液化石油气,晚餐就不依赖于柴火了,炉打着就开始煮水准备打火锅。有 4 个人的好处就是,可以分成两组同时搭帐篷和煮面。天黑了就用头灯,看清楚自己面前要操作的工具还是不成问题的。

Untitled

我们的晚餐吃了好几个小时。由于第一次再 Death Valley 野外过夜,我也不知道要穿多少衣服合适,所以衣服一件一件地往上加,最后连羽绒服都穿上了还是觉得手脚有点冷,只好靠着烧柴来取暖。最后实在受不了了,我只好选择睡觉去,因为睡袋是我最保暖的装备。事实证明,我的睡袋确实是超级暖,整个晚上都没有感觉到冷的。睡袋的空间还可以,不会觉得特别挤,就是原地转身有点麻烦。

12/23

尽管前一天由于没看成日落而说好要 5:30 起床开车上 Dantes View 看日出的,但没有一个人能在日出前起来,所有闹钟都在响过后被按灭了。早上 9:00 起来,烧水冲热可可,还有人要做越南手冲咖啡,结果吃完早餐出发就已经没掉小半天了。

正式的景点观光由 Mesquite Flat Sand Dunes 开始。所谓 Sand Dunes 就真的是起起伏伏的沙丘,除此之外没什么非常特别的地方,估计要长时间观察沙丘随风移动才有意义。接下来为了准备进入 The Racetrack 而必须做一件十分重要的事情,那就是加满油。

Untitled

UntitledUntitled

实际上 The Racetrack 离 Stovepipe Well 的直线距离不远,连 30 mi 都不到,不过由于中间隔着山脉,所以必须走到山脉的尽头再绕回来,结果要走差不多 75 mi,中间还包括 25 mi 碎石路。我来 Death Valley 的首要动机是开一段碎石路,而且是要拿租来上足保险的车开(当然不能拿自己的新车做这种事情),所以在完全不知道 The Racetrack 有什么看的情况下我也觉得很兴奋。

Untitled

朋友把前面 50 mi 的平原大直路开完后,就把车交给我开碎石路。我觉得这挺好玩的,道路弯弯区区的必须控制好速度,还要注意躲开路上的大石头,完全不像走 I–5 那样无聊得受不了(虽然我自己没开过 I–5,但别人开 I–5 时我总想睡觉)。由于碎石路不够两车道宽,所以遇到反方向有车来就要把车开上右侧斜着的路肩上避让。路上遇到的司机素质都很好,反方向车如果他那一侧有 turnout 则会停在那里让我们先过,避免双方都要侧着车走上路肩;同方向车如果觉得自己开得不够快,就会在下一个 turnout 靠边让我们超车。

尽管碎石路只有 25 mi,但我开了一个小时才走完,在高原大直路上一个小时都能走完 50 mi 了。到了 The Racetrack 后,看了景点介绍我才知道名字的来由。这是一个已经被蒸干的湖泊,现在就只剩下龟裂的湖底和中央的小岛了。之所以叫做 racetrack,是因为湖底上有一些像是在「竞速」的石头——没有人知道这些石头到底有没有动过,也没有人知道是什么让它们动起来,但石头后面的总会有长长的划痕让人感觉石头是动过的。

Untitled

Untitled

UntitledUntitledUntitled

从 The Racetrack 返回全程都是我开的,中间路过了 Ubehebe Crater 并且下车拍了几张照。开头以为这么大一个坑肯定是陨石坑,结果看了景点介绍才知道是火山坑。简单来说,如果把水迅速混入岩浆的话,水就会立即变成蒸汽并且膨胀,然后爆炸就会导致大坑。虽然有小路能够走到大坑中间凹下去的底部,并且走下去也不难,不过考虑到走回来会很吃力所以我们还是没有走下去。

Untitled

由于我们错过了日出,自然想去看日落。尽管我已经尽量开快一点,不过还是不可能在日落之前赶到 Dantes View,只能开到 Zabriskie Point 看看。由于太阳大半都被山挡住了,我的 iPhone 5 也拍不出什么来,只好不拍。

晚上回 campsite,发现新买的柴点不着,幸好隔壁的人拿过来一些他们劈好的柴给我们烧。我们怀疑这次买到的柴都是湿的,因为烤了一个晚上都没点着。晚餐还是一样的晚餐,唯一不同的是找到了可以用柴来烧烤的食物——香肠,于是我们就玩了一会儿明火烤香肠。

Untitled

Untitled

睡觉之前我们还看了一会儿星星,有朋友很专业地教大家认星座,尽管我认了也记不住,不过还是觉得很好看,同时也意识到其实月亮真的是很亮的!可能因为几乎没有人造光源(除了背后将要灭掉的柴火),所以能够看到月光照在树上投射到地上的影子。不是在野外的话,估计不会注意到这一点,因为人造光源投射出来的影子够多了。

后两天的行程请看 Part 2