MacTalk•人生元编程

978-7-115-34223-2
作者: 池建强
译者:
编辑: 杨海玲
分类: IT人文

图书目录:

详情

本书是随笔文集,内容涉及6大主题,收录70余篇文章,这6个主题包括:Mac、程序员与编程、科技与人文、人物、工具、职场。每篇文章独立成文,读者可利用碎片时间随机阅读。另外,作者对原来散落在各篇文章中的 Mac 技巧进行了统一的整理和规划,总结了130个Mac使用技巧,形成一篇长文归并于 Mac主题中。

图书摘要

版权信息

书名:MacTalk · 人生元编程

ISBN:978-7-115-34223-2

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。


池建强,70后程序员,Blogger,微信平台MacTalk作者。先后任职于洪恩软件和用友集团,从事互联网和企业应用软件研发,目前担任瑞友科技IT应用研究院技术负责人。

热爱技术和编码工作,Apple和Google产品重度用户,分享技术,坚持梦想。

博客:http://macshuo.com

微博:@池建强

微信平台:MacTalk By 池建强(sagacity-mac)


《MacTalk·人生元编程》是一本随笔文集,主要内容来自作者的微信公众平台“MacTalk By 池建强”。本书撰写于2013年,书中时间线却不止于此。作者以一个70后程序员的笔触,立于Mac之上,讲述技术与人文的故事,有历史,有明天,有技术,有人生。70多篇文章划分为六大主题:Mac、程序员与编程、科技与人文、人物、工具、职场。篇篇独立成文,可拆可合,随时阅读。

此外,作者还对原来散落在各篇文章中的Mac技巧进行了统一的整理和规划,形成130个Mac Tips,通过阅读这些技巧,读者既可以了解Mac,增长知识,又能够提高工作效率。

本书行文采用了一种技术和人生感悟相结合的风格,起于Mac却不止Mac,文风幽默又能笔底见风雷。王小波说,“每一本书都应该有趣,对于一些书来说,有趣是它存在的理由;对于另一些书,有趣是它应该达到的标准”。本书就是一本达到了有趣标准的技术书,它不仅适合Mac用户阅读,更值得所有技术人员随时翻阅。


在这本书付印的前一天,本书的责任编辑杨海玲老师找到了我说:书要出版了,你要不要写个前言和读者说两句?我说:来得及吗?杨老师郑重地看着我点了点头。好吧,那就说两句,于是就有了这一篇前言。 我小学四年级之前一直在农村居住,那时候没见过汽车,只见过马车和小推车。搬到城市之后才发现,这世上居然有汽车这种交通工具,那时我的理想是当一名212吉普车的司机。后来见的车多了,觉得司机不够神气,我希望拥有一辆自己的汽车。这个理想在长大后也实现了。但是我从没有想过自己会出版一本书!今天这本书也要出版了,我很欣慰。

现在回想起来,这本书的诞生经历是传奇和值得称道的。我从来没有出版过一本书,曾经有几次心血来潮想写本技术书,结果规划完目录后自己已经疲惫不堪了,看着层峦叠嶂的目录结构,我仿佛走在一个没有出口的迷宫,想到以后的每个日子都要用业余时间去写这些枯燥的技术文字,我仿佛置身凄风苦雨中而茫然若失,所以,写书计划还没开始,就已经结束了。但是大家都知道,胸中有丘壑的人总能找到吐槽的土壤,是金子总会发光。2012年8月微信推出了公众平台,我终于找到了一个写作的契机。

2012年12月,我开始运营自己的微信公众平台“MacTalk By 池建强”,几乎每天一篇,半年内写了100多篇文章。之所以能够坚持下来,我想得益于公众平台的交互性和正向激励,如果每天都有人告诉你,晚上不读完你推送的文章就不睡觉,你也会坚持下去的。慢慢地读者越来越多,很多数字出版界的朋友也加入了这个队伍。突然有一天,他们不再潜伏,而是爬起来告诉我,你的这些文字该收拾收拾出本书了!我原本是不信的,不过,先是多看的朋友这么说,然后是豆瓣,然后是亚马逊,然后我就信了。这种感觉就像是我一个人混迹于敌占区多年,突然冒出了很多自己的同志,拍着我的肩膀说:小同志,你干得不错!我感到无比荣耀,紧紧握住他们的双手,激动地说:可算找到组织了,其实,俺早就想出本书!

于是电子版的《MacTalk·人生元编程》问世了,书中的内容截止在2013年8月底。

电子书上线后获得的赞誉超乎我的想象,在多看平台上线当天就跃居畅销榜第一名,从此一路榜首,整整霸占了一个月之久。随后上架的很多新书都对我这本书发起了猛烈的攻击,最终都如潮水般褪去,它们失败了,包括韩寒推出的《一个》。因为这个原因,程序员老赵时不时调侃我为“超越韩寒的男子”,虽然这句话看起来错误百出、逻辑混乱,完全不像出自一个优秀程序员之口,但我听起来还是若有所思的。

截止到2013年底,多看上的《MacTalk·人生元编程》获得了700多个评分,平均得分9.1,另有230多条读者评论。有些读者说这是他们的第一本电子书,有些读者说一口气读完,酣畅淋漓。我的感受有两点:

1. 我为电子书事业做出了些许贡献;

2. 又不是武侠小说,读那么快有必要吗?

事情终于到了峰回路转的时候。电子书虽然风光,但仅限于电子阅读的领域,而且,单纯的电子书是没有ISBN的,想做个图书认证都不行,还不能签售,你总不能卖本书搭个镌刻版 Kindle 吧。这时候另一群关键人物出现了,他们是传统出版界的好朋友。每个人都告诉我,电子阅读确实是未来的方向,你已经考虑了未来的事儿,那现在的事要不要管?只有电子版,你让广大钟情于纸书的群众怎么看?让想要签名版的读者怎么看?……于是我觉得,是时候出一本升级版的《MacTalk·人生元编程》了。最终这个重担落到了程序员的好朋友、人民邮电出版社的杨海玲老师肩上。

和人民邮电出版社的合作是轻松愉快的。我继续写作,除了完善之前的文字之外,还要为这本纸质版再增加十万字。出版社的编辑和美编则开始对于原有的文字进行校对和美术设计。一切都很顺利,除了我偶尔出现写不下去或改不下去的情形。杨老师对我是非常宽容的,遇到这种情况,她就会语重心长地告诉我:对你我心里有底,选题咱已经报了,选题号也已经批了,情况就是这么个情况,所以您写也得写,不写也得写,还是写吧。于是我的文章顺利地完成了……

剩下的就是杨老师和编辑们的工作了,他们像打磨璞玉一样一点一点地打磨这本书,从文字、内容、印张和色系选择,到最终的版式设计和封面设计,一个细节都不放过。修改顺利的时候他们不会来找我,偶尔找我的时候也是咨询一下我的个人意见,我只要一言不发或若有所思就可以了,因为杨老师他们总能找到最佳的做法。我唯一的任务就是等待,或想点儿别的。

最终的成书就是您手中的这本书,它的封面设计和正文版式都是独一无二的。书封简约大方,干净得一塌糊涂,体现了MacTalk所倡导的纯粹之美。没有腰封,没有邀请业界大牛和土豪在封底写推荐语(年底了,他们都在做新年计划,我就甭给人家添麻烦了)。正文采用图文并茂的方式,页码和标题都精心设计过,如果您获得了良好的阅读体验,那么我们要感谢这本书的美术设计。

书的内容比原来的电子版增加了 Mac 入门和演化史系列、Linux 系列、Vim 插件系列、职场系列、编程与写作等内容,全书共计70多篇文章,划分为六大主题:Mac、程序员与编程、科技与人文、 人物、工具、职场。篇篇独立成文,可拆可合,您可以随时翻阅。Mac 主题的最后部分是130个 Mac 使用技巧,供 Mac 用户参考使用。另外,我根据书中的主题和时间线,重新调整了文章的顺序,更符合读者阅读习惯。

这既不是传统意义上的 Mac 用户手册或技术图书,也不是一本思想文集,而是一个70后程序员,以柔软的笔触,立于 Mac 之上,讲述技术与人文的故事,起于 Mac 而不止 Mac。书中写了 Mac,说了苹果,聊了技术,侃了人生元编程,汇聚了我个人的经历和悲喜。您读完了,有收获就是好事,不用想的太多。如果书里在讲 Mac,那就是苹果公司的 Mac;如果在说Shell,那就是操作系统的Shell,如果在聊程序员,那就是你我身边的程序员。我尽量做到文字简单、内容有趣,因为简单和有趣也是一种力量,希望您读完这本书以后,也能拥有这种力量。

王小波说,“每一本书都应该有趣,对于一些书来说,有趣是它存在的理由;对于另外一些书,有趣是它应该达到的标准”。我希望这本书达到了有趣的标准,同时还讲了一些有用的东西。如果您说没达到,那我下次继续努力。

在写作的过程中,我得到了很多朋友的帮助,包括技术圈和出版界的朋友。其中冯大辉先生在我运营微信平台和写作的过程中给予了诸多支持和推荐,并为此书作序;微信平台“二爷鉴书”的作者邱岳为此书作序并多次推荐;网友“密码有误”为此书作序并进行了部分文字的校对。杨海玲老师在成书的过程中起到了中流砥柱的作用,没有她的催促和辛劳的工作,此书无法出版,在此一并谢过。

特别感谢我的妻子和女儿,写作占用了我大量的业余时间,虽然我很努力地抽出时间去陪伴家人,但在这方面显然是不达标的。没有她们的包容、照顾和期盼,此书无法出版。

最后,我把这本书献给我的父母。我的父母就像千千万万的普通父母一样,永远在远方默默注视着子女的成长。我在他们身边得到了最好的教育和关怀,他们是这个世界上我最敬爱的人!

池建强
{--:}写于北京,2014年1月8日,晴


池建强兄告知我他的书即将出版,作为他的微信公众账号“MacTalk”的忠实读者,必须要支持一下。“MacTalk”和我的“小道消息”差不多同时期开始进行写作,我们也经常交流写作和运营的经验,从内容流行性上来说,我的“小道消息”赢得了更多读者和一点名声,但从内容上看,“MacTalk”则对读者更有价值,所以,一有机会,我总要推荐一下他的账号。

这本书的几个主题中,我最为喜欢科技与人文的这一系列文章,阅读的过程中我也用自己的经历来印证,回顾自己从业过程中那些错误的抉择,给了我不小的启发,建议对自己职业生涯有困惑的朋友能读一下这个主题。如果是5年前看到这本书,我可能会更喜欢程序员与编程这个主题。而作为Mac用户,一系列的Mac技巧则直接提升了我的工作效率,这篇文章就是在MacTalk推荐过的工具上写出来的。

或许有人觉得,写书会带来经济收入和名气,但实际上,我个人认为这可能是一种误解。在我们这个领域,写书的确会带来一点“好处”,但肯定比很多人预期的要小得多,对于作者来说,投入和产出简直不成比例。如若不信,也可以先算一笔经济账。假定一本讲技术人文的书能卖到5 000~10 000册,按照8%的版税来计算,也就是几万块钱的收入,这还没缴税呢。当然如果是出版电子版图书的话,则需要另作计算,但经济上的收入也不会有多高。而一个作者在这上面投入的时间和精力如果用来做点别的事情的话,比如出去做几次培训,或者是做个技术顾问收点咨询费什么的,轻轻松松也能拿到这个收入。至于“赚”名气,写再多的书怕也不如多参加几次行业会议、多做几次公开演讲赚取名气来得快。

王小波称自己的写作是一个“减熵”的过程,通俗一点说就是“吃力不讨好”。考虑到王小波曾经也是个不错的程序员,套个近乎,算是咱们这个行当的,所以这一点上IT人倒是容易对他的文章有共鸣,至少我就受到了一些影响。我曾在微博上说过,尽管曾被怂恿或是鼓励去写本书,但是总还下不了这个决心。一方面是考虑到经济账。另一方面,心里也有点担心总干这个“减熵”的事情是不是有点自己跟自己过不去? 还有一个不好意思说的原因是,我一想到像建强这样把文章重新整理一遍就头大,总是有畏难情绪。但是世界上总是有人在不停地做这种“减熵”的事情,我想这么做的人可能就是因为这是一种乐趣,一种真正的乐趣,尤其是你的文字能够帮到人、能够启发别人的时候,那种快乐难以言说。

作为读者,我能做到的事情并不多,想来想去,唯有尽可能地支持作者的创作,并且向更多人推荐这本书。顺便说一下,如果他这本书销量好的话,不排除我也会“减熵”一次。

冯大辉
丁香园技术负责人,网络 ID:Fenng
微信公众账号“小道消息”作者


MacTalk微信推送的文章我都读过,结册成电子书后我又买下读了一遍。看过整册后,我竟然产生了一种敬畏感。

这种敬畏感源自我心中对“写了十几年代码的老程序员”这样头衔的赞叹和崇拜——每一个写了十几年代码的程序员都是一本书。

我也差点儿能成为一个“老程序员”,我父亲该算是国内第一代程序员,我出生时他在一所大学教编程,而我母亲当时在另一所大学教统计。诞生在这样的一个家庭,我几乎在育婴室就被贴上了“很可能会是个码农,请注意安全”的标签,接生的护士说:“这小宝贝好可爱,来给姐姐笑一个,笑,笑,你倒是笑啊。”我冷漠而淡淡地回应:“Bad command or file name.”

我曾有过在短时间内带着极大的心理压力,以极大的工作量写代码的经历,我甚至不太敢回忆那时的感受。我知道那种长时间面对一台机器的冰冷和绝望。机器没有感情,它执行你要求的每一句逻辑,你对它没什么脾气,因为起承转合都来自于你的编排,机器只是精确执行。

有人评价程序员说他们“成天跟机器打交道”,别闹了,电脑才不会跟人打交道,在这台坚硬的机器前,一切喜怒哀惧都是程序员心中的自言自语。

于是很多人觉得程序员很可怜,木讷、神经质、不善交际、不修边幅,嘲笑程序员的段子足够装一火车。我听到不少姑娘偷偷地跟自己的闺蜜说“别嫁程序员,没情趣”,或者“嫁个程序员,老实、有钱、死得早”。

在这种诡异的环境中,很多程序员都在“转型”和“突破”,做产品,做运营,做职业吹货,他们想办法甩开“做技术的”或“写代码的”标签。我不止一次听到“程序员是吃青春饭的,你还是得赶紧转型”这样的所谓前辈忠告。

如此背景之下,“一个写了十几年代码的老程序员”头衔的背后,似乎一定有一曲二胡拉就的挽歌,你忍不住掏出纸巾想递给对面已经年逾不惑的他,伸手叫服务员“再上一箱啤酒,冰的”,你悲怆,你泣涕涟涟,你起好了范儿,准备听他开讲。

结果他一开口,竟然是……

活泼幽默轻松直率荤素搭配清爽可口……

“可是船长,这明明是一场悲剧,你笑什么呢?” “谁说这是一场悲剧了!”

这本书就是这样一个老程序员哼的这样一段小曲儿。端起来有很多技术性文章,放下去有嬉笑怒骂和语重心长。

当然了,书名叫做《MacTalk·人生元编程》,自然有不少Mac技巧。看得出他对苹果情有独钟,书中开篇就是Mac的历史和故事。他还有一篇被广泛转载的“趣谈个人建站”,细致到代码级别。他还写人,写书评,说是书评,实则是自省、梳理和复盘,他读《黑客与画家》,势必跟我这个只写过几行代码的产品狗读起来深度不同,我喜欢他那篇书评。

他有代码情结,感觉就是随便一撩动,他就马上坐那儿不起来非要给你写上一段儿,还拉着你让你看他写,你瞅瞅书中字里行间那些代码,像着了魔似的。

书里我最喜欢的一篇文章是“人生元编程”,他做了一个跨度非常大的类比,用元编程的思想类比人生,那段时间我正在看《自私的基因》,我在这三个概念中间也找到了些似是而非的暗合。

我觉得这篇东西是程序员用程序机制思考人生的一个缩影(当然了书里还有些其他的缩影比如并发什么的),如果你只是一个把堆代码当差事的程序员,我特别推荐你看看这一系列文章,它们或许会帮你打开一扇门,看看这种奇异的关联。

比如你可以在爱情中拒绝GC,自己照顾(take care)你的每一段回忆(memory),多浪漫啊。

他认同对他文笔“相对轻松温和”的评价,他说自己在网际多年看惯了刀锋和鲜血,所以他不愿意参与或挑起争端。但我不同意他的文笔“温和”,我觉得不温和,而且挺有情绪的。有情绪的文章读起来像作者在跟你聊天儿,也很容易有代入感,是好事儿。

这本书有70多篇文章(其中还有130个MacTips),写了这么多内容,书的价格只有40多块,要说作者好歹也是一个正儿八经的技术大牛,到底图了个啥?他在开篇里是这样回答这个问题的——“但行好事,莫问前程”,我太喜欢这句话了!

我想把它送给每一个在深夜烧烤摊前黯然神伤的人们,精于算计的人们,小心翼翼的人们,举轻若重的人们,当然也包括我自己——但行好事,莫问前程。

泰山崩于前,我依然沐浴更衣焚香沏茶,诚心正意,手起键落:

Hello World!

邱岳
微信公众账号“二爷鉴书”作者


霍夫斯塔特(《哥德尔、埃舍尔、巴赫——集异璧之大成》的作者)在给内格尔的《哥德尔证明》一书作序时,写过这样一段令人印象深刻的话:“……当时是1959年秋天,在门罗公园的开普勒书店里,我完全偶然地见到了《哥德尔证明》。可能此刻在中国,有个人——可能就是你——正在书店里面随意浏览这本书,正在翻动它的书页并正在读着眼前这些词句。或许如果你买了这本书,会使你的生活发生革命性的变化,就像这本书对我那样!当然,也可能什么也没有发生。或许正在读这些话的不是你,而是站在书店别处的另外的人。也可能你根本就不在书店里。或许你还正在睡觉呢!但是不管是哪种情况,不管是你或是别的什么人,我的确希望在中国有人能发现这本书,能感受到它是如此之美妙,如此之激动人心……”

按理说,作为一个没有Mac,不怎么懂编程的人,我和MacTalk应该是没有任何交集的。不过现在仍然记得第一次看到MacTalk的那一天:一个初夏的中午,阳光很好,看到Fenng在“小道消息”里推荐了Mac君的公众账号,正好吃完饭闲来无事,于是顺手加上了,然后就看到了沉没成本那篇文章,正好之前在曼昆的《经济学原理》里看到过这个名词,印象很深刻,于是查看历史消息,发现作者在精通技术之余,还有着深深的人文情怀,这在码农界是不多见的,于是慢慢变成了Mac君的忠实粉丝,每一篇文章都能给人启发,更难能可贵的是,作者对每一条回复到公众账号的消息都会认真阅读并且尽力解答读者的问题,这在很多傲娇的公众账号中更是不多见的。

然后Mac君就出了书,在多看买了,又看到豆瓣也上架了,说实话,对于我这种早已告别了文艺青年这个称号的人来说,实在不好意思来这么小清新的豆瓣发评论,不过,这本书确实给了我很多启发,所以,写下这些,也是为了让更多人能够有缘和它相遇。

乔帮主在著名的“遗失的访谈”里曾经说过:每个人都应该学习一门编程语言。我个人认为,这句话是非常有道理的,不仅仅是为了会写代码,能够实现自己的想法,更重要的,是通过这种训练,能够培养程序员的思维方式。正在我为学习哪门语言难以选择时,Mac君适时推出“如何学习一门编程语言”这篇文章,以一位过来人的身份提点后学。在他的推荐下,开始学习Python(和那位码模没有关系,完全是因为今年是蛇年)。有人说,养成一个好习惯需要21天,坚持到现在,每天写几段代码已经成为我的习惯,也许在高级码农眼里,我只是一个非常非常初级的入门者,但是对我自己而言,能够从coding中获得乐趣,将来某天有能力实现自己想完成的事情,就已经很令人满足了。

我一直认为,书和人是有特殊的缘分的,缘分这个词也许有些矫情,更确切的说,遇到的每一本书,冥冥中与你都有特殊的connection。在之前的印象中,码农都是一群带着高度近视镜,脖子僵硬,弯腰驼背的nerd(s),对人生有着令人不敢苟同的奇怪看法。但是Mac君这本书的出现,很大程度上颠覆了这种印象,作者不仅具有high level的专业技能(在百余篇MacTips里有充分体现),而且行文生动,文字幽默,在保证知识性之余,也兼顾了全书的可读性,再加上这么便宜的定价,不买本支持一下,怎能对得起这难得的偶遇呢?

正如题目《MacTalk·人生元编程》中“人生元编程”所暗示的,这本书也是作者思考与自省的结晶。所谓“元”(英文“meta”),就是指能够对自身状态进行描述。例如希尔伯特当年所说的“元数学”,就是指关于整个数学系统的语言,那么元编程,就是能够操作代码的代码,人生元编程,就是具有自省能力,随时检查和控制自身的情绪和行为、思考自己的想法、改变大脑的动机……或者,用一句简单的话来说,就是对当下的状态保持清醒的“觉知”。

继续用霍夫斯塔特的话来结尾吧:“……如果你问我是否取得了最后的成功,答案是‘当然没有!’如果是的话,生活将会变得令人厌烦。如果人的心灵会被化简为几条僵化的规则,或者是相当大的一个僵化规则的集合,那会是一件令人极度悲哀的憾事……我们是幸运的,因为我们的心灵是如此不可预知;正因为如此,生活才充满了情趣。尽管如此,我们仍在进行努力来科学地了解我们自身……”

希望每位有缘读到这本《MacTalk·人生元编程》的读者,都能像作者期待的那样,具有人生元编程的能力,洞察自身的微妙与精深。

密码有误


在盛夏的某个周末,我在杭州度过了一段美好的时光。见到了很多老朋友,认识了很多新朋友,参加了阿里嘉年华的“夜聊”节目,领略了夜行西湖的美妙,此行非虚。

杭州的天气和北京截然不同,北京要么是热烈的阳光直射大地,干燥温暖,要么是大风裹挟着暴雨席卷京城,要么以漫天的雾霭夹杂着浓浓的PM2.5气息为你带来“这才是北京的直观感受”。杭州就温和多了,阳光似乎总被一层薄雾笼罩,温度很高,但空气中总夹杂着水汽,出去转一圈浑身湿漉漉回来的一定是北方土鳖,偶尔碰到一个PM2.5,它会告诉你,“我要旅行去北方,那里才是我的家”,想想让人颇为绝望。说是有台风,但台风也只是轻轻掠过杭州上空,带来了些许清凉,带走了一些红尘。

现在我即将离开这座美好的城市,坐在开向北方的列车上,颇为惆怅地写下今天的MacTalk主题:为何而写?

在阿里嘉年华的“夜聊”节目中,有一个问题是“你为什么要写东西?”换个文艺一点的说法就是,你就是个写代码的,不去好好做程序员这份有前途的职业,为什么要来写文章呢?谁让你写了?能挣钱吗?有人看吗?你爸爸妈妈知道吗?你的老板允许吗?……

每个嘉宾都谈了自己的看法,我整理一下自己的思路,分了以下这么几点,看能不能把这事说得清楚一点。

程序员崛起。我觉得程序员这个群体是非常幸运的,我们生在一个技术改变世界的时代,而我们可能正在做着能够改变世界的技术,这是何等的荣耀和机遇。想想Apple的终端设备、Google的眼镜和汽车、Amazon的电子阅读、阿里的电商和金融梦,难以想象10年以后这个世界会发生什么样的改变,更不用提那些还在车库里酝酿的各种奇思妙想,而这些改变,程序员都将参与其中。虽然我们现在依然会遭遇到这样的烦恼:“大哥,听说你是搞电脑的?” “我做了10年技术了。”“好的,能帮我装个XP吗?要番茄版的。”这时候就可以把兜里准备好的西红柿扔出去了,如果不会扭到自己的老腰,再加个360°回旋踢就更加完美了。

不要给自己设限。谁说程序员只能写代码了,谁说程序员都是宅男了?程序员里才华横溢的多了去了,无论是《黑客与画家》还是《乔布斯传》都描述了很多具备文艺气息的技术大师,他们要么作画、要么弹琴、要么写作、要么运动,同时还写得一手好代码。其实万事万物都是相通的,要么熊样要么鸟样,如果你能够把代码写得很好,那么为什么不去把自己的思想和设计通过文字表达出来呢?如果你能够把技术文章写好,慢慢就能写出人文类的文字,慢慢你就会发现自己已经站在科技与人文的十字路口了。最高境界就是,你站在哪,哪里就有一个刻着科技和人文路标的十字路口。在MacTalk之前,我写博客,也为一些媒体写文章,最好的时候一个月会写2~3篇,每次约稿都要拖到最后才能完成,但是开始写MacTalk之后,到今天为止,近8个月的时间我写了180多篇有效文章,平均每周5篇左右,文字总量在15万到20万,这个惊人的数量是我从来没想到的,而且花费的时间是我剪切了刷微博、浏览网页、扯淡、看电视的时间,粘到MacTalk上的,每个人的时间就那么多,我觉得我并没有损失什么。所以,不要为自己设限!

写作即思考。写作其实就代表思考,你需要言之有物,需要架构、需要梳理,要有开端、有结尾、有结论、有主题,特别神奇的是你构思了一篇文章。写完后发现文章像具备了生命一样生长出了很多奇异的果实,它们就在那些文字中间微微颤动,闪烁着独特的光泽,仿佛被岁月冲刷过的鹅卵石一样,而这一切你可能完全没有想到过,而且不可复制。所以有时候我们去看之前写的文章,会产生两种感觉:要么是觉得写得太烂了,怎么会写得如此臭不可闻;要么是觉得写得太好了,妈妈我再也写不出这么牛的文字了,我觉得这两种感觉,都挺好。优秀的写作者不仅能让事情变得容易理解,而且能够换位思考,沟通顺畅思维敏捷。与这样的程序员交流是赏心悦目的。遇到问题时他会抽丝剥茧,告诉你问题的前因后果,由表及里,并且把能够反映问题的各种信息都提供给你,包括他自己尝试解决问题的措施和结果.所以,为自己写作!

附加值。写MacTalk的初衷是给大家介绍一些Mac相关的技术和技巧,从来没想过商业化和媒体属性,但是做到现在,积累了几万名读者,每天都有用户的反馈和赞助,他们告诉我这些文字为他们带来了欢乐、思考和启发,解决了问题,我告诉他们开心就好。MacTalk还为我带来了很多好朋友,有知名大公司的,也有不知名的小公司的,还有在创业的。天地悠悠过客匆匆,能认识这些朋友,真好!所以,为读者写作,附加值会随之而来。

MacTalk,为自己而写,为读者而来。但行好事,莫问前程;河狭水急,人急计生。


1976年,美国有两个叫Steve的孩子开了一家以水果命名的电脑公司,叫做苹果电脑公司,为什么叫苹果,据说是那阵儿乔布斯天天吃素,顿顿水果餐,瘦得跟干煸豆角一样,他闪烁着迷离的眼神(估计是饿的)和沃兹说,“我刚从苹果农场回来,咱公司就叫苹果电脑吧,阳光健康,还不吓人,有科技有人文,在电话黄页上还能排在前列,多好。”于是苹果电脑公司就诞生了。

现在我们知道,苹果公司所有电脑产品的命名都和Mac相关,比如MacBook Pro、MacBook Air、iMac、Mac Pro等,但是第一代苹果电脑却和Mac没任何关系,人家叫Apple。开天辟地的是Apple I,居功至伟的是Apple II,后面写沃兹小传的时候会提到,这两个神作都是沃兹单枪匹马做出来的,乔布斯也就是焊焊板子买点披萨什么的。

有了Apple I和Apple II垫底,很快就衍生出一些新产品项目,我们把时针拨回到1979年,那时苹果公司有4款产品在研发,Apple II、Apple III、Lisa和本文的主角——Macintosh。其中Apple II一直充满活力,在退出历史舞台之前都是苹果公司的支柱产品,Apple III和Lisa就比较惨了,命运多舛,一会万般宠爱,一会无人问津,这种境遇就不可能做出好产品,结果Apple III只生产了9万台,Lisa更可怜,1983年推出,1986年彻底终止,余货被埋在犹他州的垃圾堆里。这时候Mac的原型正在孕育,这是个微不足道的小项目,项目名称叫做“安妮”,项目的负责人是杰夫·拉斯金。

大家一看到“安妮”二字是不是立刻就懵了,洋气的苹果公司居然有这么激情四射的项目名称,但是具体为什么叫安妮,我也无从考证,大家还是来认识一下项目经理吧,这兄弟叫做杰夫·拉斯金,同样是一位技术牛人,是苹果的第31位员工。苹果公司的开创者们似乎都脱不开人文与技术的情怀,拉斯金的专业是计算机科学,但是教过音乐和视觉艺术,在厌倦教书之后,就租了一只热气球,跑到校长家上空大声喊道,我不干了。谁这么辞过职?

拉斯金在自己的博士论文里写着,计算机应该是给人用的,不仅仅是给极客黑客各种客用的,除了神秘的命令行,还得有图形界面。所以他对世界宣布:“I have a dream,那就是为大众制造价廉物美的电脑”!

想到做到,1979年,拉斯金说服了当时苹果公司的管理者迈克·马库拉,成立了一个小规模的项目组用来研发廉价的、同时具备图形界面和命令行的电脑,当时这个项目代号就非常神奇地被命名为“安妮”,咱也不知道拉兄是怎么想的,终于有一天,拉斯金觉得这名字太女性化了,于是主动更换了项目代号,用自己喜欢的一种苹果(又是苹果!)来命名,叫做麦金托什(McIntosh)。但是为了避免与另一家音响设备制造商麦金托什实验室(McIntosh laboratory)重名,拉斯金对这个单词做了些微调,改为大家现在熟知的Macintosh。

感谢拉斯金,如果不是他把Mac的名字改了,现在大家用的都是iAnnie和Anniebook,那感觉得有多么怪异。

“所有伟大的事业都源于梦想,始于微不足道。”

拉斯金的梦想是“数以百万计的电脑”,是“如果个人电脑能够真正面向个人,那么任何一个家庭都该拥有一台”。但是Macintosh项目初期,整个项目组只有4名研发工程师,4名啊,各位兄弟,这是在做操作系统和硬件工业设计,不是在写移动App!就像秦始皇告诉蒙恬,“兄弟,哥有件事托你办一下,你挑选20名精锐勇士,去修一下万里长城,Okey? You can do it!”但事实就是这么残酷,搁到现在您就算打破脑袋也找不到这样的团队!

这还没完,人少不算什么,您别没事就来捣乱啊。每隔一段时间Mac项目就会被拿出来讨论一下,讨论的主题不是加人加钱,而是啥时候解散?为什么还不解散?好在拉斯金也不是吃素的,每次都能凭借三寸不烂之舌让项目化险为夷,又惊又喜。终于有一天,Macintosh被乔布斯盯上了,这下拉斯金老实了,他妈妈再也不担心他的项目被解散了,而是什么时候这个项目会被小乔据为己有。

根据乔帮主的各种言行访谈,我相信他对编程有着深刻的认知,但是根据各种史料传记,帮主应该是没有真正写过代码的。没编过程但是对编程有深刻的认识,这种行为是无法解释的,所以史称“天才行为”!

虽然不会编程,但是乔布斯非常欣赏拉斯金的想象力,在Lisa项目折戟沉沙之后,乔布斯盯上了Macintosh,不过在帮主的词典中是没有“价廉物美”这个词的。他告诉拉斯金,“你太不高端大气了,搞什么价廉物美呢?咱有钱,不用考虑电脑的成本,要做就做完美的产品,可操作性、图形界面、性能,一样都不能少。”洗脑完毕,乔布斯开始让工程师为Mac换上性能强劲的摩托罗拉68000,用来支持鼠标和华丽的图形效果。工程师这一次站到了乔布斯这一边,哪个程序员会不希望自己的程序跑在更好的硬件上呢?

终于,乔布斯代替拉斯金接管了Macintosh项目组。当时的乔布斯迫切希望用Macintosh再次证明自己,他开始动用自己的资源和现实扭曲力场来改造和影响Macintosh项目组成员,同时也吸引了更多优秀的技术天才加入Macintosh的研发。乔布斯甚至不切实际地希望Macintosh能在1982年左右发布,他的激情和工作方式虽然让项目组成员间歇性崩溃,但同样在激励着他们奋力前行,实现了很多似乎不可能完成的天才技术创意。

Macintosh研发期间那个著名的缩短Mac启动时间的故事尤其让人印象深刻。有一天,乔布斯走进负责Macintosh操作系统的工程师的办公隔间查看电脑演示,随即开始抱怨系统启动时间太长了。像所有程序员一样,那个工程师开始解释……乔布斯打断了他,说“如果能够救人一命的话,你愿意想办法让启动时间缩短10秒钟吗?”工程师说可以考虑。乔布斯拉过白板开始计算,如果500万人使用Macintosh,每天开机多用10秒钟,那加起来每年要浪费的时间大约是3亿小时,如果我们把这些时间节省下来,那每年就相当于挽救了数以百计的生命。

工程师一听吓坏了,几个星期后乔布斯回来一看,系统的启动时间减少了28秒!年轻时的乔布斯虽然工作方式方法上有很多值得探讨的地方,但是他能够看到宏观层面的东西,从而激励别人奋勇向前。

终于,时间来到1984年,在经历了数不清的延期之后,Macintosh要发布了,乔布斯为此策划了著名的“1984”广告,这是一个注定名垂千古的广告片,但第一次给苹果董事会成员播放时,大多数人居然认为这是看过最差的广告片(你们就知道大部分光管理不干活的人有多么没品了吧)。不过乔布斯和沃兹都非常喜欢这个广告的创意,甚至沃兹提议广告费由他和乔布斯一人一半承担(厚道的沃兹)。经过努力,1984广告按照原计划播放。

1984年1月22日,在第18届美国职业橄榄球“超级碗”大赛中,苹果公司播放了这段构思独特的广告片“1984”。广告借用乔治·奥威尔的小说《1984》映射IBM对市场的垄断和不思进取,把Macintosh作为挑战IBM的新生力量,在广告的结尾,屏幕上出现广告词:“1月24日,苹果电脑公司将推出Macintosh(麦金塔)电脑。你将明白为什么今天的1984不会变成《1984》。”

“30年过去了,IBM似乎又开始不思进取了,但这次IBM的角色已经从当年的老大哥变为时代的follower,能否跟上还要看其自身的变革力度。”

这则广告取得了令人震撼的效果,最终被《电视指南》和《广告时代》评为有史以来最伟大的商业广告。

从此,Macintosh拉开了另一个伟大时代的序幕。

从第一台Macintosh电脑诞生到现在,已经有近30年的历史,30年是个什么概念呢?把时光的指针回拨30年,估计MacTalk的一大半读者要么在玩尿泥,要么还在未知世界的某个角落游荡,等待一个机会。30年沧海桑田白云苍狗,世界发生了翻天覆地的变化。今天看到一张十几年没见的初中同学照片,如果不让用惨不忍睹来形容,我只好用目不识丁来搪塞。Mac同样如此,如果对比一下1984年的Mac和2013年的Mac,我们很难想象这是同一系列的产品,看看今天的配图,你能想象这就是美轮美奂的Mac操作系统吗?几十年时光飞逝,有人成长,有人变老,计算机的软件技术和硬件技术发生了质和量的变化,Macintosh的演化史,基本上是PC之外另一条时间线上的个人电脑发展史,让我们来领略一下Mac的技术之殇和变化之美。

柏杨成书《中国人史纲》,把中华人的活动历史分为神话时代、传说时代、半信史时代、信史时代……以此来描述那段上古的历史时期。今天我东施效颦,按照自己的理解,把Mac的演化史分为三个时代,它们分别是:

我们先说说System时代。

这个时代所有Mac上跑的OS都是以System开头的。

1984年的第一个版本叫做System 1.0,当时的Macintosh叫做Macintosh 128K,一体机,搭配9英寸黑白显示器,使用Motorola 68000处理器,存储空间128KB,搭载3寸盘、单键鼠标和键盘,当时的System 1.0是最早的面向个人用户的、具备图形用户界面(GUI)的操作系统之一,所以非常容易和其他命令行的操作系统区分出来。System 1.0包含Finder、桌面、窗口、图标、光标、菜单等,采用的文件系统是平面文件系统MFS(Macintosh File System),对文件夹的支持很不完善。Finder提供了虚拟文件夹用来组织文件,但是从其他程序进来是不可见的,而且并不真正存在于系统中。

System 1.0的主要开发语言是Pascal和汇编,是一个单任务操作系统,系统的界面就是今天配图的样子。

System 1.0虽然距离完美差着十万八千里,但是它开创了一个历史,那就是GUI和Command Line的结合,这一特点到现在依然是Mac最大的优势之一。

1985年System 2.0发布,Finder进行了更新,增加了多文件夹处理、Shut Down命令,同时安装了一个叫做“MiniFinder”的程序,用来快速启动任何选中的程序。截屏快捷键command+shift+3诞生。同年2.1发布,开始支持硬盘。

1986年System 3.0发布,System第三代的发布对Mac和其他电脑的操作系统都有重大影响,因为在这个版本中,Mac开始正式采用HFS(Hierarchical File System)文件系统,可以把文件存储在分层文件夹中,而之前一直采用的是平面文件系统。另外System 3.0还支持一些其他新技术,包括SCSI和AppleShare等。

苹果其实一直在尝试各种文件操作系统,不断地尝试、放弃,再寻找更好的解决方案。虽然IBM的大型机一直采用扁平文件系统,但是你能想象个人电脑上没有文件夹的概念吗?3.0的HFS虽然解决了一部分问题,但是性能和IO依然是用户之痛。

随后发布的3系列和4系列并无重大更新。

1987年System 5发布,这个版本带来的特点是增加了MultiFinder的扩展功能,允许系统“同时”运行几个程序。系统采用了协作多任务模型,任务切换的时机完全取决于正在运行的任务,只有正在运行的任务放弃对处理器的控制的时候,下一个任务才能执行。当然用户也可以选择不使用MultiFinder,仍然沿用单任务操作。

这就是我后面讲解并发时候的类分时协作模式,想了解一下的,可以阅读后面的那篇《并发的错觉》。

1988年以后发布的System 6系列采用了68030的处理器,但在软件层面并无突破性的特性,乏善可陈。

1991年具有里程碑意义的System 7发布了,这是一个重要的更新,包括UI的变革、新应用程序的增加、稳定性的提升和许多新特性。System7开始支持虚拟内存和网络,并内建了协作多任务机制,而之前的System 5和System 6都是通过独立的应用MultiFinder实现的。System 7还支持文件拖放操作,脚本语言AppleScript也在这个版本出现了。另外,System 7还是苹果公司第一个彩色的操作系统。

System 7.5之后,这个时代结束了,因为从System 7.6开始,苹果把操作系统的名称改为Mac OS,Mac OS时代从此拉开了序幕。

注意,这个时代没有“X”,有同学会问X是什么意思,X就是数字家族中具备高贵血统的罗马数字10,这个X将出现在Mac的下一个时代中。

Mac OS时代持续时间很短,从1997年到2000年,技术体系还是沿用了System系列。在这个时代,发生了一件苹果公司历史上最重要的事件:创始人乔布斯回归。乔布斯年少轻狂的时候对记者说,你很少看到一个艺术家在三四十岁还会有令人惊叹的作品,然而他自己正是在40岁之后再次焕发出夺目的光彩,让世界为之震撼。

1996年苹果收购了乔布斯的NeXT,并以此为基础,开始漫长的Macintosh改造之路,这是属于下一个时代的事情。乔布斯对所有人说,颤抖吧,爷胡汉三马上要回来了!这边叫嚣乎东西,那边什么事也不耽误,招人、裁人、改造产品线,开启了改变世界之旅:Mac、音乐、电话、软件、平板、图书……

1997年1月,Mac OS 7.6发布,这是以Mac OS命名的第一个Mac版本。这个系统开始出现在第三方厂商的电脑上,这是在苹果发展史上绝无仅有的事情。当然随着后续乔布斯的回归,这种开放策略必将昙花一现,因为乔布斯要“控制一切才够完美”,即使在苹果之外放逐了十几年,对硬件与软件的全盘掌控依然是乔帮主不可打破的原则。

1997年7月,Mac OS 8发布。之后不久,乔布斯正式回归苹果。该系统最初定为Mac OS 7.7,但是为了配合乔帮主终止操作系统与第三方电脑厂商合作的策略,改名为8。该系统增加了多线程的Finder支持和三维金属拉丝(Platinum)界面,同时提供了电脑的帮助系统。这个版本的操作系统在6个月的时间内卖出了300万份,这对当时财务状况低迷的苹果来说无疑是一支有力的强心剂!

有同学问什么是三维金属拉丝?看一下今天的配图就知道,界面是充满质感的银色和灰色,部分UI辅以突起的拉丝设计。在当时的UI领域显得无比高贵典雅,也开启了拟物设计的先河。大家看看当年Win98那个UI就会明白一个道理,人比人得死,货比货得扔,当然,我们只说UI……

1998年,苹果第一台一体机iMac发布,预装系统是Mac OS 8。从Mac OS 8.5开始,操作系统只能运行在PowerPC的处理器上。PowerPC是Apple、IBM和Motorola组成的AIM联盟研发出来的微处理器,设计源自IBM的POWER(Performance Optimized With Enhanced RISC的缩写)架构,史称PowerPC。

PowerPC当年也是CPU界的一方霸主,摩托罗拉当时有几十种芯片产品是基于PowerPC架构研发的,后来成为没落贵族主要是因为自己不争气。摩托罗拉在芯片领域先败于英特尔,十几年后在手机领域再败于苹果和三星,现在在谷歌旗下喘息度日,可悲可叹。想了解这段历史的,可以去读读吴军老师的《浪潮之巅》。当然在十几年后的移动互联网时代英特尔被ARM搞得焦头烂额,已是后话了。

PowerPC的历史将持续到下一个Mac时代。

1999年10月,Mac OS 9发布,这个版本是针对Mac OS 8的一个稳健的升级版本。你们都知道这当然是一种文艺的说法,Mac OS 9相对于上一个版本并无突破性的改进,主要内容包括:改进了对AirPort无线网络的支持,改进了内存的实现和管理方式,允许AppleScript操作TCP/IP和网络设置,增加了简单的多用户功能,每个桌面用户可以拥有自己的数据和系统设置。

9系列的版本虽然延续到了2002年,但已是强弩之末,Mac OS X发布以后,技术架构发生了翻天覆地的变化,9系列最终只能做个承上启下者,已经不是Mac未来的方向。

写到这我不由得悲天悯人地想起公司和人的发展。一个公司从创立之初,三年后不死,必然会在战略、架构、人员、产品等层面不断进行调整和改变,可能某一个公司的支柱产品或中坚力量,突然就会不那么重要了,也有些默默无闻的产品和角色会突然崛起,这些都是正常的。无论你是崛起的甲方,还是没落的乙方,都没什么可抱怨和担忧的,世界在变,苹果不创新就会死去,人不进步就会退步,要么甘心没落,要么不断提升,就是这样!

无论多么不情愿,Mac OS终于到了退出历史舞台的那一天。2002年5月,史蒂夫·乔布斯在加利福尼的亚圣约瑟召开了全世界开发商会议。那一天他罕见地穿上了黑色西装,隐喻Mac OS 9的葬礼,事实上乔布斯已经迫不及待地想埋葬Mac OS系列了,因为Mac OS X已经横空出世!

Mac OS 9.2.2是Mac OS 9的最终版本,至此,Mac OS时代结束。

虽然我把System系列和Mac OS系列划分为了两个时代,但这两个系列的技术体系是一脉相承的,创新性的图形用户界面(GUI)、简陋的内存管理和协作式的多任务处理系统,以现代技术标准来看,这些技术和实现都是原始级别的,但在那个时代却是突破性的,尤其是在人机交互的使用体验上。

这两个时代还见证了苹果公司由盛及衰和重新崛起的商业奇迹,见证了苹果创始人乔布斯的放逐和回归。更重要的是,System和Mac OS系列为现代Mac操作系统提供了重要的技术基础和技术遗产,这不仅仅包括设计和研发操作系统的丰富经验和组织架构,还包括一些具体的技术,例如包含了Finder的图形界面技术、支持分层的文件系统、虚拟内存、网络技术、脚本语言AppleScript,等等,这些技术对后来的OS X产生了巨大的影响,直到今天!

技术的选择就像江湖上的优胜劣汰,你不停地向世界宣告,你依然优秀,你依然能打出各种眼花缭乱的地趟拳和小洪拳。但是人们告诉你,我们知道你还很厉害,你还能打很多年,但是这儿已经不需要你了,因为这就是江湖!

Mac历史上最优秀的操作系统时代即将来临!

我们把时间的指针拨到1985年,聊一聊那个时代的操作系统NeXTSTEP,它与现代Mac操作系统有着千丝万缕的联系,并与上一代Mac OS一并构成了现代Mac操作系统的技术基石!

1985年,乔布斯在经历了威逼、利诱、欺骗、背叛、动之以情、晓之以理和痛哭流涕等各种情节之后,终于离开了自己亲手创建的苹果公司。就像恋人分手一样,乔布斯是不会这么简单就离开的,他对董事会承诺,“我不会做与苹果公司有竞争关系的产品,我只会带走一些低级别的员工,你们不会想念他们的,嗯,反正他们也要辞职了。”然后乔布斯就带了五名优秀的技术人员去做“下一代计算机”了。对此苹果董事会很不满。

乔布斯才不管这些,他立即着手创立了新公司NeXT,新公司的名字意为“下一代计算机”。很多人以为乔布斯被自己创立的公司赶出来会变得成熟稳重,对这种厚道的想法我只能说,您太厚道了!准确的说法是,乔布斯变得更加自由了,他在自己的公司肆意挥洒自己的个性,做出了想象力非凡的产品,这些产品无一例外都取得了传统意义上的……“失败”,但这些产品给了乔布斯真正意义上的经验教训,对他重返苹果后的巨大成功起到了至关重要的作用。

NeXTSTEP正是这些“失败产品”中的翘楚!

NeXT公司在乔布斯的领导下迅速找到一批才华横溢的工程师,他们组成了一个强悍的小分队,这个队软硬通吃,研发出了计算机NeXT、操作系统NeXTSTEP、打印机和相关的开发工具。这些技术的每一部分在当时的那个年代都是超前的,即使是以现代技术的标准看,这些都让人感到新奇和惊讶。但是,你们都知道,先知先觉的人总是像孤独的行者,凡间的人们只能远远看看他们的背影,既不知道他们的痛苦,也不了解他们的无助。走在时代前面的人和技术注定是寂寞和不被理解的。NeXT公司的计算机和打印机都没有获得很好的市场。1993年乔布斯被迫放弃硬件制造,关闭了计算机工厂,NeXT电脑公司变成了软件公司。

当然事情并没有那么糟,虽然普通用户很少知道NeXTSTEP,在科研、金融和教育领域NeXTSTEP却非常流行,还有很多技术牛人用它来开发自己的应用程序,其中最著名的是一个叫蒂姆·伯纳斯-李的牛人,他在NeXTSTEP上编写出了第一个万维网的Server,其中还包括浏览器。至此互联网的大幕徐徐拉开……

下面我们来看看NeXTSTEP有哪些跨时代的技术特点。

因果轮回,1997年的NeXT公司被苹果收购,苹果公司购买了NeXT的收获之一就是得到了NeXTSTEP操作系统,包括Mach、Objective-C、面向对象、Bundle等技术架构和设计思想。虽然NeXTSTEP随后即停止开发,但是这些技术都被纳入到了新一代的Mac OS X中,并随着苹果公司的重新崛起焕发出了夺目的光彩,辉照今日!

终于,NeXTSTEP操作系统和它的缔造者一同回到了苹果,开始重启Mac之旅,这一次,操作系统的基础是NeXTSTEP!

OS X是一套完整的操作系统,包含很多组件和程序,之后我们会详细介绍这个操作系统,而Darwin OS X的操作系统内核与框架,属于OS X的一部分。

Darwin是类Unix的操作系统核心,由XNU和运行时框架构成。XNU是由Mach和BSD组成的混合式内核,XNU的意思是“X is Not UNIX”,类似GNU的喻意。Darwin本身是开源的,主要由苹果公司维护,但OS X的其他部分并不开源。另外二者的版本号也不相同。

虽然OS X和Darwin的版本号不一致,但是数学好的同学还是从中发现了一个规律,我们可以用这样一个公式计算OS X和Darwin的版本号的关系:

也就是说,截止到2013年5月,OS X最新的版本是10.8.3,也是Mountain Lion的最后一个小版本,那么Darwin的版本就是12.3。还未发布新一代OS X Mavericks(10.9)中,Darwin的版本是13.0。

在终端程序中输入:uname -a,可以查看当前操作系统中Darwin的版本号。

写完了System时代、Mac OS时代,又讲了乔布斯放逐时期的NeXTSTEP,我们终于正式进入了OS X时代,也就是现代Mac操作系统。

从2001年苹果发布新一代操作系统的第一个版本以来,Mac操作系统一直叫做Mac OS X,X表示10,延续之前的Mac OS 9。直到2012年2月,苹果为了更好地体现Mac OS X和iOS的技术融合趋势,正式把Mac操作系统的名称改为OS X。本文中我们统一使用OS X来表示Mac的现代操作系统。

苹果收购了NeXT之后,并未匆匆推出新一代的操作系统,而是花费了整整4年的时间,对原有的Mac OS和收购的NeXTSTEP进行了技术整理和融合,打造了OS X的底层框架,命名为Darwin。Cocoa、Mach、I/O Kit、XCode Interface Builder和开发语言、面向对象技术都来自NeXTSTEP,而全新的GUI、改进的文件系统、AppleScript则继承自经典的Mac OS,两套操作系统在OS X里得到了完美的融合!

if ( OS X.version == 10.X.Y )
   Darwin.version = ( 4+x ).y

很多人搞不清楚OS X和Darwin的区别,在这里简单说明一下。

从第一个OS X版本发布计算,目前OS X已经正式发布了8个版本,每个版本都以大型猫科动物加版本号命名。10.0名称是猎豹(Cheetah),10.1是美洲豹(Puma),10.2是美洲虎(Jaguar),10.3是黑豹(Panther),10.4是老虎(Tiger),10.5是豹(Leopard),10.6是雪豹(Snow Leopard),10.7是狮子(Lion),10.8是美洲狮(Mountain Lion)。目前10.8是最新版本。

下面我们简单介绍这9个版本的技术变迁和功能特性。

10.0 —— Cheetah

2001年发布,猎豹是OS X平台公开发行的第一个版本。这是一个标志性的版本,实现了NeXTSTEP和经典Mac OS的集成,推出了全新的UI和技术架构,OS X时代正式来临。

10.1 —— Puma

同样是2001年,猎豹发布6个月后,美洲豹发布,这个版本提高了系统的稳定性和性能问题,同时增加了更多用户体验的特性,包括金属拉丝的UI设计风格。另外,后来大红大紫并成为iOS App Store载体的iTunes第一次出现在这个版本里,这个版本的默认浏览器是IE。

10.2 —— Jaguar

2002年,美洲虎发布。这个版本增加了大量的GUI特性,包括金属拉丝风格的大量应用,研发了用户图像加速框架Quartz Extreme,支持显卡为GUI程序提供硬件加速。另外引入的一项技术就是号称零配置联网的Bonjour,采用Bonjour技术的Mac可以自动传播自己的服务,并探寻其他设备提供的服务。

10.3 —— Panther

黑豹发布于2003年,这个版本增加了更多的GUI特性,设计风格内敛大气,著名的视窗管理工具Exposé就是在这个版本引入的。Finder也进行了重大改进,强调了以用户为中心的侧边栏。另一个重大革新是,苹果公司研发了自己的浏览器Safari,微软的IE浏览器逐渐淡出Mac平台。FileVault也是在这个版本引入的,这项技术可以自动对磁盘上的内容进行加密以达到数据保护的作用,沿用至今。

10.4 —— Tiger

2005年4月,OS X的第五个版本——10.4发布,命名为“虎”。这个版本中增加了Spotlight和Dashboard功能。Spotlight是基于元数据索引的全盘检索功能,你可以快速检索和定位文件和各类数据信息,包括邮件、联系人、网页浏览记录等。Dashboard是一个快速工具集,按下F12快捷键,即可快速打开和使用这些小工具,例如天气、系统监控、便笺等。

在开发库层面增加了4个重要的框架:Core Data、Image、Video和Audio。Core Data处理数据的各类操作,包括undo、redo、save等。Core Image和Core Video利用GPU的能力进行图像加速,Core Audio则为操作系统增加了text-to-speech引擎和Voice Over。

在10.4这个版本的历史里,一共发布了12个小版本,从10.4.0到10.4.11。从10.4.4起,后续版本开始同时支持PowerPC和Intel处理器,这是一个重大的架构变更,对未来的发展产生了深远的影响。苹果和英特尔两大科技巨头终于开始联姻。

10.5 —— Leopard

2007年10月,第六个版本——豹发布,这是一个重大的更新。苹果宣布这个版本进行了几百个功能改进,包括:重新设计了Dock,改进了Finder,增加了Stacks功能和半透明菜单条,Finder支持类似iTunes使用的Cover Flow视图。增加了Spaces功能,用户可以拥有多个桌面空间。开始支持内核以64位模式启动,改写了大量GUI程序以支持64位。可以自动备份的Time Machine也是在这个版本引入的。Spotlight搜索可以支持多台机器。

从开发者的角度看,这个版本主要增加了以下特性。

综上所述,无论功能特性还是技术革新,Leopard都是Mac历史上里程碑性质的操作系统,也是我第一个正式使用的OS X版本。

同年,iPhone横空出世,开始重写智能手机的定义,其操作系统iOS与OS X一脉相承!

10.6 —— Snow Leopard

2009年8月,雪豹问世,这个版本的功能改进更多是隐藏在普通用户不可见的冰层之下。让我们以开发者的视角,看一看这个版本进行了哪些重要的更新。

采用32位和64位混合内核,全方位支持64位应用程序。

GCD(Grand Central Dispatch)技术,并发编程的解决方案,可以充分利用Mac的多核处理器的能力,开发出高性能的软件。开发者无需创建和管理线程,也不需要考虑数据的加解锁,只需要把数据运算抽象成任务和Block,扔到GCD的队列中即可。这是一项非常高级的并发处理技术,后续我们会重点介绍。

OpenCL技术,允许开发者在任意程序中利用GPU的运算能力,而不仅仅限于图形处理程序。

雪豹完成了从PowerPC到Intel处理器的架构迁移,并且不再支持PPC架构,从豹升级到雪豹后,我们会发现系统占用的空间更小了。

从豹到雪豹,苹果进行了大量的潜移默化的架构改造,这种改造几乎不影响最终用户的任何使用体验,并形成了一个非常稳定的版本。

2011年1月6日,Mac App Store作为雪豹10.6.6免费更新的一部分发布给所有用户,从此改变了Mac程序发布方式。该系统在上线24小时后,苹果宣布,从Mac App Store上下载的应用程序已经超过一百万次。目前Mac App Store已经成为是Mac应用的主流市场,与iTunes App Store遥相呼应。

目前雪豹的最新版本是10.6.8,发布于2011年7月。根据网络流量分析公司Net Application统计,截至2012年12月,仍然有28%用户使用OS X 10.6雪豹系统。

10.7 —— Lion

2011年7月,苹果发布了新一代操作系统:狮。这个版本相对于雪豹而言,无论是用户界面、操作体验还是技术架构,都有了很大的变化。操作系统的升级不再提供安装光盘,而是直接从Mac App Store上面在线升级,OS X开始尝试与iOS进行融合,在功能上借鉴了很多iOS的特征。iCloud开始整合进入操作系统,苹果公司正式进入“云”+“端”的时代。

主要的功能特征有以下几个。

这个版本虽然持续的时间不长,但是有几个重要的变化:苹果终于抛弃了遭人诟病的Mobile ME,推出了全新的iCloud;Mac App Store成为主流的Mac应用软件市场;OS X和iOS开始相互融合和借鉴,形成更为良好的技术和应用生态圈。

10.8 —— Mountain Lion

一年之后,2012年7月美洲狮发布,这是目前最新的Mac操作系统,也是OS X系列的第九个版本,当前版本号是10.8.3。美洲狮主要提供了功能特性上的增强,深度集成了iCloud,引入了很多iOS的功能,增加了中国元素,同时彻底停止了对32位的支持。

主要的功能特征有以下几个。

至此,Mac演化史讲完,想了解还未发布的新一代OS X操作系统Mavericks的,请阅读我另一个系列的文章“品评OS X Mavericks——唯快不破”。

苹果作为一家创新的科技公司,从辉煌到沉寂,再到重新崛起并实现人文和科技的伟大复兴,其中Mac是唯一一款贯穿始终的产品。Mac为用户和开发者带来了无数新奇和美好的回忆,包括无与伦比的使用体验,我想这个产品未来还会有更多的辉煌……

30岁之后,时间仿佛开闸的河水一样滚滚而去,感觉自己浪费的时间太多。我们不得不承认,先知先觉的人会比我们领先10年甚至更多的身位。进入21世纪,世界迎来了信息时代,人才竞争尤其激烈,与其他人感受不同的是,我觉得中国涌现出了很多非常厉害的年轻人,很多人年纪轻轻就成为某个领域的行家里手,端的是少年英雄。不过放眼未来,无论现在的你是年少成名还是大器晚成还是默默无闻,都需要不停地奔跑和追赶。

感慨完了,说说今天的内容,很多读者让我讲讲自己的经历,非常惭愧的是,工作十余年并无可圈可点之事,实属籍籍无名之辈,谈之无物。倒是可以讲讲我对Mac的些许认知,中间也可以穿插讲点有意思的事情。今天是第一篇。

说起Mac,还得从2001年说起,那是我第一次接触Mac电脑,当时我在洪恩软件开发了一套叫做数字校园的软件系统,由于与一家厂商合作,需要把我们的软件移植到Mac Server上。

软件是BS架构的,基于JDK 1.3构建,由于一直在Linux上编程(当时Java几乎没有像样的IDE,Eclipse、NetBeans、IDEA等后来如日中天的工具,有的刚刚起步,有的还在孵化),所以Mac基本上是被我们当做Unix用的,印象中移植并没有太大的工作量,细节也不记得了,反正当时Mac对我来说就是一个Unix Server,以至于我现在完全不记得当年那台Mac服务器是什么样子了。

后来有另外一个组的兄弟要做音乐,公司专门给他配了一台Mac Pro,价格相当昂贵,那个兄弟估计也是没用过好东西,护得紧,基本不让我们这些土鳖程序员靠近,那时候Mac OS X已经告别了9,进入了10。如果记忆没有失误的话,那个系统用的是Mac OS X 10.2 Jaguar,其华丽的界面让一直用土土的Windows的程序员口水流了一堆,但当时我们已经被Liunx下各种华丽但不实用的GUI伤透了心,像GNome、KDE基本都是浮云。于是苹果在我眼中就是个酷酷的操作系统,界面优美,适用于图形图像视频制作,价格贵得离谱,用来工作娱乐什么的,基本上是天方夜谭了。

现在留下的印象就是头发杂乱的流浪歌手,谈着吉他,安详地坐在Mac Pro前调音和谱曲的画面。那个兄弟叫老郭,专门为软件做音乐,经常对我们这些不懂艺术的程序员说,“嗯,你们都是土鳖,就知道编程,多无聊。”当时我想,这话反过来说,也成!

我在洪恩软件一共工作了3年半的时间,这段经历让我的能力和见识得到了长足的成长。期间做过互联网(没错,就是传说中的第一波互联网神奇泡沫,一触即溃),基于Perl构建洪恩在线网站;做过企业级软件数字校园,基于Java和JSP技术;做过英语培训软件,基于.Net和C;还管理过儿童产品事业部。不过让人伤感的是,我参与的大部分软件项目都以失败告终,洪恩在线遭遇互联网泡沫,数字校园过于超前,销量一般,英语培训碰到2003年非典,完全无人问津(这部分内容在“缅怀那些沉没的项目”一文中有述)。当时洪恩的主要业务还是电脑教育、高教、英语、儿童软件等,现金流良好。但安则思变,公司开始尝试其他的业务类型,比如互联网、游戏、企业软件、培训等,这些项目我基本都参与了,但成者寥寥,这对当时年少轻狂的我来说打击非常大,经常参与失败或无疾而终的项目会让人产生对己对人的怀疑和不自信。

要么留下来继续坚持,要么离开寻找新的挑战,这是很多人当时的选择。有些人选择坚持,有些人选择离开,留下的很多技术人员组成了后来的游戏公司完美时空的技术和策划班底。完美时空2007年在纳斯达克上市,目前发展得非常好。离开的人,则就各自有各自的生活和精彩。

所以说选择这个动作真的很神奇,人生漫漫征途,到处十字路口,每次选择就把你带向一个完全不同的路和沿途的风景,我们只能慨叹,嗟夫,人无常势,水无常形。

当时我选择了离开,那段时间是1999~2003年。在这段时期里,地球的那一边,乔布斯正在重新整肃苹果,进行了精兵健身并相继推出了iMac和iPod。苹果正在一步步走向巅峰,只不过还没有看到这家没落帝国的潜力。在国内,Mac仍然是稀有物品,我也仅仅见过两款。

后来工作上兜兜转转,使用的技术越来越多,工作范围也越来越广,但一直没忘关注Apple和Mac,先是iPod火得一塌糊涂,之后OS X相继发布了10.3 Panther、10.4 Tiger和10.5 Leopard。GUI领域Apple强者恒强,界面炫酷,新功能层出不穷。类似窗口管理器的Exposé,全文搜索Spotlight,智能文件夹,Dashboard,强大的备份工具Time Machine等,再加上Mac纤薄的腰身、靓丽的面容,整个产品线变得越来越吸引人。

时光来到2006年,Apple在Mac的硬件方面进行了重大的架构调整,开始全面采用Intel系列CPU,Power架构渐行渐远。硬件架构的调整和Bootcamp的推出,使得在Mac上安装双系统变得触手可及,这一点在当时还是非常吸引我的。在这期间,微软这个巨人似乎步履蹒跚,Vista恶评如潮,被Windows折腾了很多年的我失去了尝鲜的勇气,依然用着古老的XP,只是不断地更新微软的补丁,不断地重装系统。

2007年,Apple推出了iPhone,如同iPod一样,再一次重新定义了产业格局,我想是时候尝试一下Mac了。而且手里的IBM ThinkPad已经用了4年,Mac的价格也不那么离谱,除了GUI的吸引力,作为多年的Linux/Unix用户,Mac下的原生Shell也是吸引我的重要原因之一。

于是我入手购置了一台MBP985,操作系统是Leopard(豹),也就是10.5,Snow Leopard(雪豹)还没有出。当时对Mac能否完成日常的工作还是有一些担心的,同时对Bootcamp和Windows下的C盘、D盘划分充满迷恋。这时程序员的劣根性和不作死就不会死的革命乐观主义精神,让我做了一个后续带来了无数麻烦的决定:分区方案采用旧式的MBR(主引导记录)而不是GUID(全局唯一标识)。320G的硬盘,给XP分了200G,而且做了C盘和D盘,最苦逼的是,为了让Mac的虚拟机能识别D盘,还修改了虚拟硬盘分区表。

当时我像一个勤劳的小蚂蚁一样对硬盘和系统进行了各种修修补补,以至于现在我基本记不起来到底修改了什么东西。现在看来,这些工作除了让我提高解决问题的能力和更好地使用Google之外,基本没起什么好作用。

很快我就从双系统(Leopard+虚拟XP)切换到了单系统(仅使用Leopard),由于.自己经常在Linux下工作,所以Mac的Shell对我来说简直是天赐良缘。早年在Linux服务器端编程时,最爱的工具就是SecureCRT。每天的工作就是从Windows下打开SecureCRT,登录服务器上自己的账号开始编程,以至于后来我一直在Windows下构建自己的Linux环境,每台使用过的电脑,都必装Vim/grep等工具。所以我从XP切换到Mac下就像大自然一样自然,当时我的感觉是:怎么能这么晚才用Mac呢?同时发出了“这才是电脑”的吼声。

我为自己在Mac下打造了全新的工作、娱乐、阅读和学习环境,后来基本上只有需要网银或多浏览器测试时,才会切换到Windows下。

2009年8月28日,Snow Leopard(10.6)全球发售,我撑到11月,终于忍不住升级了,痛苦的安装过程再次开始。为了把雪豹无缝安装到我的MBR分区上,我痛苦地思考了不作死就不会死的道理,然后花了一个周末,在不影响全部数据和程序的基础上把雪豹安装成功了,一直用到下一个操作系统发布。

最初分区的不合理性造成的影响是显而易见的:首先,无法升级固件;其次,没法直接升级大版本的OS X(时间如白驹过隙,有折腾这个的功夫我看看书不行吗?);第三,当初磁盘空间的不合理造成很大的资源浪费——已经很少用Windows了,却划了200GB空间,Mac这边呢,磁盘经常满。我再次像个小蚂蚁一样,满了就搬一部分数据到移动硬盘上,艰辛的劳作让我非常痛苦,人生如梦,一樽还酹江月!

终于,下一个版本Lion要发布了。2011年6月,苹果的WWDC大会上,Phil Schiller对Lion的介绍给我的影响非常深刻。看完WWDC的主题演讲,我对自己的MBP分区说,该对你动手了,颤抖吧,小样儿。

Lion如期发售,我用Time Machine备份了雪豹系统,用Winclone备份了Bootcamp,分区修改为GUID,然后重新恢复雪豹系统,购买、下载、安装、升级Lion,空闲空间200GB。哗……整个世界清净了。我指天对地地发誓,我再也不装双系统了,要用只用虚拟机!

从此,我算是踏上了不折腾的康庄大道,两豆塞耳,不闻雷霆,专心Mac上的读和写,一切变得无比和谐。

2012年,Apple发布了视网膜屏的MacBook Pro。这个锐利的屏幕对程序员的吸引力是致命的,SSD硬盘也变成了标配的,我的Mac终于有了更新换代的理由,整个系统顺利地迁移到了RMBP上,后续的事情你们都知道了,因为我开始写MacTalk了……

2013年6月11日,苹果的WWDC大会结束的第二天,我就升级了iOS7,还写了两篇文章。那时就有读者问,为什么不顺手把Mavericks也升了呢?

其实无论是iOS的beta版,还是OS X的开发者预览版,都是为了开发者测试和适配现有软件程序并提交bug的,苹果不会保证其可用性,尤其是前几个版本,系统崩溃、变砖、发热耗电、断网都非常可能,你看着千百个App在你面前挥舞但一个也不能用时是不会有人同情你的,甚至可能有代码界的达人慢慢地踱过来安慰你说,“该!谁让你升级了!”让你觉得世界残酷无比。那我为什么升级iOS 7呢?第一,我觉得出了问题自己能Hold住。第二,别看大家每天走路开车冒着被撞飞和撞飞别人的风险低头看手机,但是手机只要能够打电话和发短信,就不至于耽误大事。OS X就不同了,那是工作和学习的必需品,我可不愿意冒风险花时间去折腾Mac,所以Mavericks一直没升级。

前几天Mavericks的第五个预览版发布了,先问了几个朋友都说比较稳定,后外事不决问Google,得知我必须用的几个软件都已经有新版本兼容了,遂决定周末花时间升级,并在微博上发布了这一消息。这时就看出人品了,马上有达人发来祝福:“无数事实证明了一个颠扑不破的真理——不作死就不会死啊,兄弟。”我毅然回复:“哥行走江湖靠的是个稳字,早就备份了。”

插播一句,自从开通了MacTalk,有无数的人跑来问文件误删除了怎么办,系统挂了怎么办,硬盘坏了怎么办?一问之下都是没备份过的,为什么不备份,一部分不知道,一部分嫌麻烦。在这里我只能通过MacTalk再次告诉大家:“苹果为OS X开发了一个叫做时间机器(Time Machine)的软件,不是让大家混不下去的时候穿越到清朝去找格格玩儿的,而是为了备份你的操作系统和重要文件的,Mac君只能帮你们到这里了……”

于是,我周末准备了茶、咖啡、啤酒和披萨,一边欣赏羽毛球世锦赛,一边完成了Mavericks的升级,整个过程无比顺利(人品好没办法),下面聊聊升级过程和使用体验。

OS X向来是用我心爱的大猫命名的,比如Leopard、Lion等,这次不知道怎么用了个加州冲浪胜地的名字,让我非常困惑,到现在也不知道中文名字是什么。而且这个名字似乎很难记,我发微博时把rick写成了risk居然没有被各类“错字控”和“错字党”发现,可见一斑。总之,大猫没了,让人伤感,而且,你不知道下一个版本会叫什么名字,难道找个攀岩胜地吗?

再说一次,安装之前先用Time Machine进行系统备份,保证你可以随时恢复到现在的系统状态。

下载OS X Mavericks 10.9的第五个开发者预览版,把安装程序拖到应用程序文件夹,双击安装即可。因为是升级安装,所以过程简单得令人发指,选择一下安装磁盘,剩下的事情就交给安装程序了。我看完一场羽毛球比赛后回来,发现系统已经升级完成。

有人问什么是升级安装?这么理解吧,有一天你很累,早早就睡下了,这时候一个装修队趁着夜色的掩护偷偷进入你的豪宅进行了一次升级装修。等早晨的闹钟轻轻敲醒沉睡的心灵,你慢慢张开自己的眼睛,发现一切似乎都不一样了,但所有的东西都在,家具和电器换了新的,但衣物、摆设、位置都没变,甚至你上次打开的电视频道都保留下来了,总之系统已经不是那个系统,但你的个人设置(Profile)都保存下来了。OS X系统的每次升级都是如此,安装完成后几乎所有软件都不需要重新安装,甚至你打开文件的进度、Safari的Tab页都会被作为状态保存下来。我从第一次使用Leopard之后再没有重装过系统,要么升级要么恢复,就是这样。

升级完成登录系统,我的第一感受是“被骗了,什么变化都没有啊”,接着才进入第二感受,以下均为第二感受的体验。

1.去材质化

其实看到登录界面就会感觉有所不同,但由于只是背景材质的改变,所以容易让人忽视。Lion系列的登录界面背景是亚麻材质的灰黑色图片,苹果的Logo也带有镌刻的立体感。Mavericks的登录则极为简洁,纯灰色的背景和白色的Logo,登录用户头像也被妥妥地拍扁了。

通知界面的背景也做了同样的改变,由亚麻背景改为纯色。Launchpad则彻底与当前桌面的色系融为一体,取消了二级文件夹打开显示纹理背景的设计,这一点与iOS7的毛玻璃效果有异曲同工之效。Dashboard空间的背景也由原来立体的圆变成了横竖交织的线。

至此,就我的观察,Mavericks基本完成了所有背景材质的去除,从早期充满贵族气息的金属拉丝到近期沉稳含蓄的纹理设计,都不会再出现在新的OS X中了,一个时代已经结束。

2.扁平设计

Mavericks在OS X的扁平设计上做了一些尝试,比如登录界面,新应用iBook和地图的图标,日历、通讯录、备忘录和活动监视器的新设计,都显示了OS X的扁平化趋势。那为什么没有对所有的原生程序进行全新设计?我估计一个是时间上的问题,另一个是OS X的演进一直是潜移默化的,可能还不到大变脸的时候。老话说“路要一步一步走”,步子迈得过大,容易出问题。另外,OS X用了这么多年,我确实还没有产生类似iOS那样的审美疲劳,那就让扁平来得缓慢一些吧。

3.细节改进

大概就这么多吧,最后发现iTunes居然是英文的,我决定暂时不用它来同步手机,避免误伤友军。

下一篇讲讲应用软件的兼容性和新功能、iBook、Finder、Map、双屏等。最后是性能部分(高科技总是放在最后讲)。

发了上篇之后,很多人发来“贺电”说,Mavericks不就是达拉斯小牛吗?怎么成冲浪胜地啦。我建议大家去苹果官网看看OS X 10.9的Logo,那一片大浪啊……实在不行去维基百科查查,总之,这里提到的Mavericks和达拉斯小牛一根牛毛的关系都没有,请大家暂时忘掉牛,想着浪。

小伙伴们看了昨天的文章之后说了句天津话,这有嘛?我说别急啊,时光都穿梭到2013年了,如果你还认为升级就是改改UI/UE那就太Naive了,事实上这次Mavericks真正动大手术的地方在底层的技术框架上。我们会在性能一章着重描述。今天讲讲应用软件的兼容性和新功能。

1.兼容性

一看到这个标题估计就有人要扔砖头了,不是说所有软件都不需要重新安装么?请注意,Mac君在“所有”之前加了“几乎”二字,行走江湖……你们懂的。

所以,升级完成之后有几个地方还是需要修缮一下的。

首先,JDK没了。这在前几个操作系统升级时是从未发生过的,最多默默地帮你把JDK 5升级为JDK 6,而这次是默默地把Java干掉了,难道库克大爷和Oracle的埃里森结下了梁子?总之,Java在OS X上一直充当一等公民的日子结束了。但也没那么惨,当你需要运行Java相关的应用时,系统会自动提醒你安装Java框架。比如你想打开IntelliJ或Eclipse,Mavericks就会问你要装Java么,你说是的,人家也不会为难你,分分钟就帮你装好了。装完之后,所有相关的程序就都可以正常运行了。

Python比Java麻烦一些。Python依然是OS X的一等公民,并且版本升级到了2.7.5,但这个升级导致的直接后果是以前安装的那些库统统都不见了。比如Django、ElementTree、Markdown、html5lib、MySQL-python等,甚至bpython和ipython两个增强型shell也需要重新安装,让人愤愤不平。这还不算,用easy_install安装时出现的编译错误是你躲不开的宿命,这时候是不就想骂人了?别急这才刚刚开始……

发生编译错误是因为Xcode的command line tools没装,在OS X里玩命令行没有这个是万万不行的。这时你微笑着打开Xcode,找到“Preferenc-es”→“Downloads”→“Components”,发现command line tools的安装包不见了!再一次,Mavericks把XCode 4.6.3的command line tools全部干掉了,而且你还找不到单独的OS X 10.9的command line tools安装包,当你想装OS X 10.8的包时,系统会明确告诉你版本不合适,想都别想。

在诅咒了这个万恶的强删制度以后,我决定使出杀手锏和Plan B,在命令行输入xcode-select --install。这时会弹出一个选项框,问你是去下载Xcode还是直接安装。如果选择安装,你会发现,总会有解决方案的。

我担心的Parallels Desktop 8和Papers 2都可以正常使用,用来干活的JetBrains系列和Eclipse、Xcode 4.6.3都没什么问题。

Ruby升到了2.0,在经历了这些之后,我决定让别人去填坑,自己则无耻地跳了过去。

其他我用到的几十种软件大部分都能正常使用,兼容性测试到此结束。简单来说,这个预览版是可以投入日常工作使用的!

2.新成员和新改进

iBooks和地图是Mavericks新增的原生软件,尤其是iBooks,在第五个预览版首次发布。

iBooks的功能类似Amazon的Kindle for Mac,支持云同步,支持打开本地文件,可以做笔记和书签,iBooks对应的文件格式是epub,Kindle对应的是mobi。除了普通电子书,iBooks还能够支持多媒体交互式电子书,比如那本著名的《Life on Earth》,在Mac版的iBooks上显示效果相当惊艳。终于能够在Mac拥有epub书籍的完美体验,我感觉心满意足。当然,这个新版本问题也不少,崩溃、渲染问题、性能等都像最近的地震一样说来就来,期待最终版。

地图就没什么可说的了,就是一个原生的地图软件,大家去看官网介绍即可。

Finder新增了Tab(标签)和Tag(标记)功能。标签这个功能已经被用户吐槽很多年了,在看到苹果迟迟没有动静的情况下,程序员们愤怒地开发出了TotalFinder和XtraFinder这样的软件来告诉苹果,没有你一样可以用Tab!Tag的功能创意可能来自互联网的标签云,现在我们除了可以为文件和文件夹标记颜色,还可以打标签,并把这些标记过的文件一次显示出来。Mac的文件系统也向着扁平化多维度管理浩浩荡荡地进军了。目前Tag自身的管理比较弱,就一个列表,这要是有50个Tag基本会疯掉,期待改进。

日历和备忘录的UI都重新设计了。尤其是日历的改进,除了设计简约清新之外,周视图可以左右滚动,月视图可以上下滚动,阅读和记录更加方便,事件还能直接与地图位置绑定。备忘录去除了拟物化设计,界面采用了白色和淡黄色,字体用了手札体。

Safari的性能、阅读器、边栏、Top Sites都进行了重新设计。阅读器有了更好的阅读体验,基本不需要其他插件了。但取消了底部的设置和导出打印的功能,不知何解。边栏提供了书签、阅读列表和共享链接三个功能面板,和iOS 7的Safari一模一样。共享链接会列出你在微博、Twitter上关注的那些小伙伴分享的链接,让你一个链接都不放过。Safari这次发布的版本是7.0,在高速缓存、页面解析和平滑滚动上做了很大的优化,如果网站和带宽足够,网页几乎没有刷新和加载的感觉,瞬间开启,让你产生一种出事了的错觉!长页面上下滚动几乎没有停顿感,我用Quartz Debug测试了一下,FPS能达到60帧,相当强悍。

监视器的UI重新设计了,功能增强了,为CPU、内存、网络、磁盘提供了更多图形化的系统信息,界面设计也隐约透出扁平化的味道。

双屏或多屏支持放到最后说,是因为这个功能太赞了。这次多屏的改进并不是扩展或辅助屏幕,而是为扩展显示器增加了一个桌面空间,比如你的Mac原来有三个桌面空间,外接显示器时,系统会默认为你创建第四个桌面空间,并在扩展屏里显示,这个空间是完全独立的,除了没有Dock,其他和主屏完全一样。这样做的好处就是两个屏幕是完全独立的,互不干扰,如果你的机器足够强悍,都可以当两台电脑使用,爱全屏全屏,爱切换切换,互不侵犯,各自为政。对于多桌面空间爱好者来说,这吸引力绝对是致命的。

通知和iCloud Keychain就不细说了,总的来说是让通知和密码保存更加方便了,大家届时自己体会吧。

本来想一把写完,结果发现自己太幼稚了,只好把“下”改成“中”,下一篇再谈谈性能和目前存在的一些问题。

本来触动我写这个系列的原因就是Mavericks的快,所以起名“唯快不破”。结果拉开架势写了两篇都还没有写到这个快字,真够失败的。今天的终结篇将主要介绍Mavericks是如何做到“多快好省”的。

更正1:Java从Lion开始就不是OS X的一等公民了,而是按需安装,但是之前Lion和ML升级时不会去掉原有的JRE,所以Mac君没有觉察,这次它们干得更彻底一些。

更正2:双屏显示的时候,在扩展的桌面空间里也可以出现Dock,具体操作方式是鼠标在屏幕下方滑动两次,就会呼出该屏幕的Dock。但是这个功能还不稳定,经常发生呼不出来的现象,等正式版吧。

更正3:Ant被去掉了,Maven保留着。看来自古都是“但见新人笑,哪闻旧人哭。”依然想使用Ant的可以执行以下脚本安装:

brew install https://raw.github.com/Homebrew/homebrew-dupes/master/ant.rb

一个操作系统除了功能性和安全性之外,考虑最多的就是迅疾如风的响应速度和持久的续航能力,这次Mavericks的升级使用了多种技术保证了OS X的快和节能。

1.Kernel

OS X的内核基于FreeBSD和Mach3.0构建,可以通过32位或64位内核启动系统,并充分发挥32位或64位应用程序的运行效能。在64位内核的情况下,Mavericks经测试可以最大支持128G的物理内存,这就是个服务器版本啊。

2.Compressed Memory(内存压缩)

内存压缩技术是Mavericks新增加的底层技术,这项技术彻底提升了整个系统的使用容量和响应速度,也就是说,你可以开启几十个应用程序,在联动内存超过80%,物理内存使用几乎达到100%的时候,依然可以像整个系统只打开了一个程序那样,毫无顿挫感地使用每一个打开的程序,这种美妙的感觉让人想想都要流口水的。

具体原则就是永远去满足最需要内存的程序,当内存告急的时候,系统就会根据时间顺序去寻找那些不活跃程序的内存,将其压缩到一半大小,然后把内存倒出来给最需要的程序。当这些被压缩了内存的程序活跃起来的时候,系统会以最快的速度释放内存,让你切换程序毫无顿挫的感觉。

这就像一个家族企业,哥哥姐姐弟弟妹妹各有各的生意,有一天大哥说要干一票大的,这时候其他人就会把手里的闲散资金贡献出来给大哥用,当有其他人也想拓展生意时,也是一样的路数。资源虽然有限,但总能让最需要最活跃的人获得足够的资金。当然前提是活跃的人数是有限制的,都活跃了这个游戏就没法玩了。

Mavericks的内存压缩采用了WKdm算法([http://terpconnect.umd.edu/~barua /matt-compress-tr.pdf](http://terpconnect.umd.edu/~barua /matt-compress-tr.pdf)),这个算法巨牛无比,压缩和解压缩可以说唯快不破。我查了上面提到的论文,这算法也有年头了,不知道为什么现在才翻出来使用。这种压缩技术比硬盘Swap交换技术要快,即使是SSD硬盘也无法比拟。内存压缩的使用,在增加内存使用效率的同时,还减少了硬盘的读写次数和CPU的占用率。另外,与传统的虚拟内存技术不同,这玩意儿还能充分利用多核CPU的特性,实在是牛到逆天。

所以,大家如果总是把创新定在UI/UE的变化上是图样图森破的,没有技术底蕴都是昙花一现。

为了测试内存压缩的效果,我开启了30个左右的GUI程序,包括各种浏览器、阅读器、办公软件、开发工具(IntelliJ、Eclipse、Xcode和模拟器),其中Safari和Chrome分别打开了几十个标签页,整个系统什么感觉都没有,运转如飞。于是开始出大招,打开Parallels Desktop,开启了三个Linux和一个Win7,整个系统的内存变化如下图所示,红色部分表示内存压力高的时候,也就是我逐一打开4个虚拟机的阶段。这时系统终于有反应了,程序切换略有卡顿,但是依然不影响独立程序的使用。关掉一个虚拟机之后,这个系统又恢复如初了,性能远超上一代的10.8ML。

3.Power Efficiency(电源效率)

Mavericks中的电源技术是根据现代处理器的功能和程序需求构建的,可以有效地延长电池的续航时间,简单来说就是当你的电脑在使用电池供电时,系统会把后台程序的功耗降到最低,尽可能只帮你处理激活窗口的程序,并根据CPU的具体使用状况尽可能让各处理器处于idle状态,一旦有需要再满负荷运行。比如我现在正在打字写文章,CPU和硬盘都会处于低功耗的状态。系统对大功耗的后台程序做了严格的控制,并且会通过电池状态告诉你哪些程序是不合格的,以方便你随时干掉这些程序。

很牛的技术,但苹果没说怎么实现的,悲剧!

4.App Nap(程序挂起)

这个技术叫程序挂起也好,程序休眠也好,事实上是和Power Efficiency结合使用的。系统会把你暂时不用的程序,或者不可见的程序迅速而强硬地置于休眠状态。比如你开了三个Safari窗口,每个窗口开启了30个标签页,一共访问90个网址,但是你只能同时看一个或几个页面,这时候其他标签也都会被置为挂起状态,当你进行标签切换时再迅速唤醒。并且在你访问Safari的时候,其他不可见的程序都会被置为挂起状态,限制程序向CPU发出中断请求,降低磁盘和网络I/O。同时,App Nap技术还降低了UNIX基础进程的优先级,以保证系统的低功耗。

写过程序的都知道,这基本上就是一种懒加载技术,使用的时候才加载,但最神奇的是,系统在做了这么多限制之后,一旦某个程序需要处于激活状态,系统就会开足马力将其唤醒并提供足够的资源,让用户完全感觉不到有休眠和挂起这回事,这让我个人感觉非常悲伤,因为完全不知道人家是怎么实现的。人比人死,货比货扔,没啥说的。

5.Timer Coalescing(计时器聚合)

最后说说计时器聚合的技术。传统的应用程序在运行的时候向CPU发送的请求是杂乱无章的,这就搞得CPU很烦,因为永远不知道什么时候能休息,刚眯一下就可能被叫醒的程序员们感受下。

比如一位忙碌的程序员,几十位上级轮番上阵地向程序员要资源要成果,而且不分场合不分时间不分类型,长此以往,代码必将写无可写,因为程序员已经疯掉了。这时候就需要一个秘书出现来梳理这些请求,定时定点分门别类地处理,这样程序员的工作就轻松多了,有了计划性,还能得到休息。计时器聚合就是CPU的秘书,它会把请求进行梳理,通过合理的时间管理保证请求的有序性和间歇性,这样CPU就会有更多的低功耗休息时间,具体的处理示意图如下,表示处理之前和之后的CPU时钟对比。同样,用户完全感受不到这位秘书的存在。

好,以上内容根据苹果提供的OS X Mavericks Core Technologies Overview演绎而得,如有雷同,必是他人抄袭。

目前这个DP5的版本已经达到工作机可用的程度,但问题也不少,具体如下:

1.外接显示器启动Mac的时候你会看到左右两个灰灰的界面,如果你一直等下去的话,夏去秋来也不会有结果的。拔掉外接插头,你就能看到那张熟悉的脸(登录界面)。

2.多屏的情况下鼠标经常会失去焦点,如果你发现某个页面怎么也无法滚动时,不要怪罪你的食指,一定是有另一个程序在后面骂,“老子已经在后面归隐多时,为什么还要被反反复复地拖来拖去?”

3.总体来说,Mavericks的UI并没有太大的变化,但是时而扁平时而立体的效果,还是容易让人产生困惑,我们期盼尽快统一起来。

4.程序的稳定性仍需加强,比如Safari、iBooks等,每天还能崩溃一两回,iBooks的性能和渲染也是问题,它经常把自己搞得很慢。日历也经常出问题,你会发现周历和月历突然不能滚动了,或者用着用着事件的颜色被偷偷地修改了。总之,凡做过大手术的程序都不稳定,Xcode 5.0没敢升级,不作死就不会死。

希望下一个预览版能够解决这些问题。

另外,应部分人的要求,我把Mavericks 10.9 DP4完整镜像包和DP5的升级包的下载链接都放到了网上这篇文章(http://macshuo.com/?p=845)的后面,感兴趣的可以去试试,尝试新鲜事物永远是保持内心鲜活的动力之一,但这毕竟是给开发者的预览版,记住以下两点。

1.先备份。

2.“杯具”了别来找我。

免费的代价——这个主题我封存在MacTalk的to do list里已经很久了,一直没有动笔写,直到今天看到知乎上的一个问题:“操作系统(OS)免费是进步还是退步,对软件行业有何影响?”我终于知道我原来在等这样一个问题。

背景:苹果公司在2013年10月的发布会宣布,OS X 10.9和iWork、iLife系列软件免费。

首先需要明确的是,免费不等于开源,免费也不是盗版。国内很多用户听着盗版音乐,用着盗版软件,看着自己硬盘里几千本一辈子也看不完的盗版电子书,满心欢喜地赞叹:“啊,这真是个Free的美丽新世界!”您倒是美了,不要忘记,这些内容的创造者可能因为您的盗版行为过着凄惨的生活,他们原本早上可以喝双份豆浆、吃两根油条的。一半是海水,一半是火焰,有人欢喜有人忧伤,大致如此。

关于免费,我想到了这么几点,写出来探讨一下。

如果有的话,那是运气而不是惯例。

插播:法国作家福楼拜一生不为生计发愁,过着最为慵懒堕落的生活,声色犬马无所不为,那是因为人家是富二代,老爹给他留下了50万法郎。除了写作,他的生活就是起床、吃饭、抽烟、游泳、吃饭、抽烟、晒太阳、吃饭、抽烟、睡觉,不是富二代的感受一下……这是命。

这时候就会有杠头表示不服气了:“俺不是富二代,也能天天上网看免费网站,打免费游戏,用免费App,怎么能说没有免费午餐呢”。杠头可能没注意,当他浏览网站的时候,会突然蹦出来个漂漂美眉告诉你:“黑头别乱动,教你一招全扫净”。因为他心思都在美眉身上,所以没意识到这是个广告!

当你免费享受网站服务的时候,付出的代价是广告的干扰,为你免费上网买单的是投放这些广告的企业主。那么这些企业的现金流从哪来呢?通过出售自己的产品或为客户提供服务获得,可能杠头的公司就是这些企业的客户之一……这样整个产业链就形成了一个闭环,就像大自然的生态圈一样。有产出,有输入,没有人或公司能够像永动机一样源源不断地提供免费服务和产品,如果有过的话,现在已经死掉了。

虽然没有免费的午餐,但是免费又是一种很好的商业模式。

你可以通过免费的模式积累用户和流量,然后通过广告获取利润,比如门户和搜索。你可以搭建线上的免费平台,获取线下的商家利润,比如电商、点评、订餐。你可以先提供免费服务,然后通过提供更多的附加服务把免费客户转换为付费用户,比如游戏、Evernote。多说一句,我之所以成为Evernote的付费用户,就是因为高级用户版本提供了文档演示功能,这个特征直接击中痛点,所以转化也属自然。如果你的企业在采用这种模式,那就要看有没有找到这样的痛点。

对于包含知识产权的作品,比如书、音乐、影视、软件等,则很少采用免费模式,但承载这些作品的平台往往是免费的,比如iBooks Store、Kindle Store、iTunes App Store等,对于普通用户,可以免费享受这些平台的服务。如果你想获取内容,那就需要付费了,你付的费用一部分给了创作者,一部分给了构建平台的企业。用户消费了内容,创作者和企业获得了利润,可以创造出更好的作品,提供更好的平台服务,这就是所谓的多赢。苹果采用的就是这种模式,当然,人家搞的是升级版。

无论采用什么模式,无论是个人还是企业,能盈利的模式才是好模式。现金流是王道,你必须挣到钱,然后才能生存。

谈到苹果,我们总是去说这家公司对软件和硬件的全盘把控,所谓软硬兼施,这当然是苹果的特征之一,而且不可效仿。但是无论是软件还是硬件,都是为了苹果的大平台战略服务的。

这个平台整合了iTunes App Store、Mac App Store、iBook Store、OS X、iOS、iPod系列、iPhone系列和Mac系列,当平台的规模大到足够的程度,平台本身和硬件设备已经为苹果赚取了支撑自己持续高速发展的利润。这时候,OS X和iOS及其相关软件带来的边际收入已经不会影响整个平台的规模和发展了。从长远来看,开放这些产品给更多的用户使用,第一可以增加平台的粘性和用户的忠诚度,第二可以吸引更多的用户加入这个平台,实乃长治久安的良策。

2013年9月,苹果发布iOS 7时,库克宣布iOS平台的iWork和iLife系列软件全线免费。那时我和几个伙伴就探讨过OS X免费的可能性,没想到这次苹果一步到位,除了操作系统免费,面向个人用户的iWork和iLife也一并免费,步子虽然大了点,但是并不扯淡。

这种基于平台的免费模式是免费的高级模式,当然是进步,不是退步,无论是苹果、谷歌还是亚马逊,大都在这个趋势上。目前看来,苹果做得最好。从长远来看,这种免费对巨型IT厂商应该有深远的影响,对个人开发者和用户也利好多多。

比如我,已经用上了免费的新版操作系统、办公软件和生活软件,赞!

至于微软,我想暂时对这个软件巨无霸应该没有太大影响,毕竟目前PC的规模依然惊人,但是按照平台和移动设备的增长速度,长此以往,就难以评说了。

今天去苹果官网上扫了一眼,发现MacBook的价格比我之前购买的优惠了不少,加上有不少朋友让我说说如何选择Mac,那就简单说两句。

苹果目前Mac系列的产品有MacBook Air、MacBook Pro、Mac mini、iMac和Mac Pro。

首先来说说MBA。如果追求轻薄便携的话,当然首选Air系列。如果选Air系列,首推11英寸系列,因为11英寸的键盘宽度和13英寸差不多,13英寸只是增加了屏幕高度,所以在输入性上二者并无太大区别,但在移动方面11寸就能落13寸的几条街了。Air系列目前是续航能力最强的笔记本,11英寸款续航时间长达9小时。全系列采用了SSD硬盘,性能无需担心,打开程序文档基本秒开,所以不仅是商务人士,程序员一样可以选择Air,你可以随时随地拿出11寸的Air进行编程、写作、浏览,无需担心热量、重量和续航。同时,如果需要使用大屏编程,接上蓝牙键盘、鼠标和外接显示器,即可打造一台强劲的台式电脑。

目前MBA全系列不支持Retina显示屏,应该是技术上还没有解决如此轻薄的笔记本如何适配视网膜屏。

MacBook Pro是Mac系列里的中坚力量,深得广大人民群众的喜爱。如果你想追求更强的性能、更好的体验、更清晰的画面,那么我推荐你购买配备了Retina显示屏的MBP15,MBP系列里的顶配,也就是传说中的RMBP15,笔记本中的跑车,跑车里的战斗机!如果你选择了足够大的内存和硬盘,可谓一本在手走遍天下,画面之清晰性能之强悍让你恨不得贫贱不能移威武不能屈。你可以编程、可以作画、可以视频、可以阅读,还可以建三个虚拟机并且同时启动,然后搭一个夹杂着私有云和公有云的混合云,什么LVS、Cloud Foundry、Hadoop、NoSql,能用的都给它用上。当客户问你们的私有云有demo吗,你沉默着指着自己的包包,都在这里,无比的高端大气!

当然RMBP15的缺点是价位较高,虽然已经变得轻薄了,但依然不适合手提斜跨奔波街头,电池的续航能力也是个问题,只能支撑4~6小时。退而求其次的话,可以选RMBP13,屏幕、性能、CPU、重量、价位同步降级,也算个上选。旧版的MBP就不推荐了,基本上都是过渡产品。

Mac mini分为普通版和Server版,操作系统也分为OS X Mountain Lion和OS X Server。和普通PC不同,mini就是一个铝合金的漂亮盒子,除了一堆接口啥都没有,但是价位低廉,性能强劲,适合学生或在经济性上考虑较多的用户,配上外置键盘、鼠标和显示器,应该是个很好的Mac解决方案。

iMac是Mac的一体机,外观看上去就是一台帅到逆天的显示器(本文的配图),其中低调隐藏了主机和各种外设,屏幕分为21.5英寸和27英寸。购买前者还是后者,我觉得主要看你自己的书房和书桌大小,在苹果店看起来不算什么的iMac27,放到自己书房,就一个字,大!有了iMac 27,什么双显示器,什么9个Space都弱爆了,你只要把自己的窗口平铺开放到屏幕上就行了,还是那个字,大!如果是穷人家的孩子,第一次用iMac会眩晕的,你会说妈妈我再也不用窗口最大化了……

iMac主要是在工作室或家用,配合一个11寸MBA似乎是不错的选择。

最后介绍一下Mac Pro,这是Mac系列中动力最为强劲的机型,号称战斗机里的宇宙飞船,而且是桶装的……它那忧郁的光泽,浑圆的腰身,神乎其技的性能和存储,还有那基于Xeon E5芯片组的12核CPU,都掩饰不住Mac Pro的出众,它代表了专业台式电脑的未来……

如果你们不信,看看这个:http://www.apple.com.cn/mac-pro/,如果不是专业人士,我不告诉他!

写这篇文章的目的有以下两个。

第一,身边使用Mac的朋友越来越多,经常会有人跑过来问一些诸如此类的问题:“为什么把界面右上角的红色按钮叉掉,程序还没有关闭?”“为什么选中文件后回车打不开文件?”“妈呀,开始菜单不见了!”……另外,作为一个具备人文情怀的程序员,看到别人仅仅用到OS X的一些最基本的功能,常常扼腕叹息夜不能寐,所以干脆写个入门篇,如果有人胆敢再问类似问题的话,我就可以直接把这本书甩到他的脸上,说:读!

第二,作为一个没见过世面的70后,作为一个常年为Apple和Mac写软文没捞着一个子儿的程序员,我经常被若干不明真相的群众指认为Apple的枪手,这就搞得我很荣幸,既然给了这么高的荣誉,那咱就得把工作做得再扎实一些。

对普通用户来说,用好Mac主要有以下三点。

1.理解OS X的基本结构和特点。

2.掌握多手势和快捷键,少量即可,多多益善。

3.用好工具,否则就算是把“屠龙刀”,搁庸人手里也是废铁一块,还得嫌沉。

OS X本身是基于类Unix内核的Darwin构建的,整个系统的设计思想、内核、文件系统、命令行都和Unix一脉相承,所以具备Linux/Unix经验的同学上手会非常快,也会感觉很顺畅。没有相关经验的也不用伤心,看完这篇文章,你们操作起来一样会快得让自己不好意思。

1.用户目录

OS X采用了Unix的多用户系统,所有用户的目录都在/Users目录下,这里面的“/”,表示根目录。用户登录系统后,自己的用户目录下一般有公共、图片、文稿、下载、音乐、影片、站点、桌面、资源库(资源库在10.7 Lion以后的版本中已经被隐藏,通过终端可以找到),当然,这是OS X为中文用户做了国际化,打开终端(在Finder左边栏单击“应用程序”→“实用工具”→“终端”,后续我们会介绍如何使用Launcher快速打开应用程序),输入ls,你会看到真正的目录名称:Desktop、Documents、Downloads、Library、Movies、Music、Pictures、Public、Sites。继续在终端中输入cd /,切换到根目录,键入ls,这样基本就可以看到Unix目录的全貌。

所以在OS X中,无需纠结于C盘、D盘以及数据与程序的分离,因为它们本身就是分离的。没有特殊需求,不需要再进行分区,所有的数据都可以放在你的用户目录下,如果你觉得系统提供的目录不够,可以自行增加目录。关于数据文件,根据自己的喜好分门别类进行组织即可,也可以一股脑扔到Documents(文稿)目录下,需要什么文件,通过ctrl+space快捷键呼出Spotlight,一问便知(在工具部分会做介绍)。其他图片、音像文件,按照系统提供的目录放置即可,简单明了不费脑。

2.Finder和Dock——资源管理

Finder是OS X的资源管理器,原型来自早期的Mac OS系统,最初功能十分简陋。

我最早开始用Mac的时候,发现Finder既不支持页签,也不支持剪切,最令人发指的是,如果你想调整Finder的窗口大小,只能把鼠标移到窗口的右下角进行拖曳操作。当然在我知道了事实真相后,立刻觉得这并不是最令人发指的,因为所有的程序窗口都是这么设计的!那时我就想,苹果的设计人员也有脑子进水的时候。(有时候,我会觉得苹果标榜的“think different”的意思就是像精神病一样地去考虑问题。)

当然,系统发展到现在,除了Finder依然不支持剪切外,功能已经非常丰富了。Finder提供了多种资源浏览方式,比如图标、列表、分栏、CoverFlow等,左边栏是个人收藏和设备信息。你可以把常用的文件夹拖放到左边栏个人收藏区域,便于快速访问。近期新增的功能包括“我的所有文件、AirDrop无线共享、Tag、页签”等。Finder对所有文件都提供了QuickLook(快速预览)功能,想知道是什么效果的,选中一个PDF或MP4,单击空格键即可。

在Finder中选中文件后按回车是对文件重命名,想打开文件可以用鼠标双击,也可以用快捷键command+o。

那为什么不提供文件剪切的功能呢?为何不使用Finder插件实现剪切操作呢?

在Finder里选中文件或文件夹,单击右键,你可以看到“复制”和“拷贝”这样的菜单,但没有“剪切”。之所以这么设计,是因为OS X继承自Unix,在Unix中没有cut(剪切),只有mv(移动),这似乎也更符合软件的隐喻,剪切更多表示剪掉一部分内容,而独立的文件是不能剪切的,只能移动。

如何通过快捷键实现文件移动的功能呢?用command+c复制后,用option+command+v可以实现Move to here功能,如果还需要复制到其他地方,可以继续用command+v。

最后说说Dock。Dock是一个工具栏,一般在窗口的底部,相当于资源访问的快捷方式,除了对程序的快速访问,还提供了Stack(栈)的功能。把需要快速访问的资源文件夹拖放到Dock中,在Dock右键单击相关文件夹,把显示内容改为网格,然后单击Dock中的文件夹,效果如下,同样可以QuickLook,也可以回车直接打开文件。

3.应用程序的安装和卸载

一直以来很喜欢OSGi技术,用了Mac以后,觉得OS X对程序的封装也很好。最后发现二者有一个共同点,那就是Bundle,OSGi以Bundle的形式封装Java程序和资源文件,而OS X中的所有应用程序都是Bundle。

什么是Bundle?大家可以把它理解为“包”,比如你出门旅行,随身携带的肯定是大包小包,你不可能把包里的东西拆散了插自个儿身上,就算你身上口袋多,安检也不能答应是不是?OS X和OSGi对程序的封装,就采用了这种“包”的形式。

对于普通用户来说,你在Launchpad(F4键呼出)中看到的所有程序都像一个图标,但这个图标不是Windows中的快捷方式,而是封装好的Bundle,从程序角度而言,这是一个文件夹,对普通用户来说,知道点这个图标可以打开程序就够了。Bundle的设计是为了动态化,正是这种设计方式使得OS X中95%以上的软件的安装变得十分简单。如果你是从Windows平台转过来的,你会认为Mac上的软件安装和卸载简单得令人发指。安装程序就是把XXX.app拖进/Applications(应用程序文件夹),卸载就是把程序从该目录删掉,That’s enough!对于有洁癖的同学,可以使用清除软件CleanAPP,CleanAPP可以找到所有App相关的文件,由用户决定是否一并删除。

大体上你可以这么理解,OS X中95%以上的软件都是Windows中的“绿色软件”。

4.磁盘映像

顾名思义,磁盘映像文件可以直接挂接到OS X中,其表现形式就像是一个磁盘分区。磁盘映像文件类似于Windows下常用的iso文件,不过在OS X中后缀名是dmg。双击dmg文件可以直接打开,打开后在Finder左边栏的设备中可以找到挂接好的磁盘映像。dmg文件是Mac下最常用的文件组织方式,几乎所有的安装程序都是以dmg方式发布的。一般情况下安装程序就是打开发布文件dmg,里面有一个app文件和应用程序文件夹,把app拖入应用程序即可。另外,我们也可以使用磁盘工具对现有硬盘进行分区,把dmg文件恢复为真正的硬盘文件。

5.状态保持

OS X下的大部分软件具备状态保持的功能。打开文件、浏览、关闭。下次打开该文件时会自动恢复到上次文件的进度。预览(阅读PDF)、音视频软件(如iTune和MPlayerX等)、Pages、Keynote等都有这样的功能。10.7 Lion以上的版本在这方面做得就更过分了,文件的全屏状态也能记录。比如,你打开一个PDF文件,全屏阅读,然后使用command+q关闭,下次打开这个PDF时会自动全屏。Lion中着力宣传的新功能“重返”,就是记录所有窗口程序的状态,关机重启后重新打开程序并恢复到程序关闭前的状态。

6.OS X的维护

使用过程中遇到问题,可以先来实施维护三板斧:修复磁盘权限,执行维护脚本,重启,基本上大部分问题就都解决了。遇到硬件相关的问题,比如电源、灯光、风扇、触摸板等出现问题,可以尝试重置SMC,具体可以参考http://support.apple.com/kb/HT3964?viewlocale=zh_CN&locale=zh_CN

另外,OS X系列的升级相对平滑,我从Leopard、Snow Leopard、Lion、Mountain Lion到现在的Mavericks,一路升级上来,从未全新安装过。或者说,我自从用了OS X,还没有重装过系统。

掌握好多手势操作和快捷键(少量即可,多多益善)可以有效地提高工作效率,触控板和快捷键让你基本可以脱离鼠标。多手势我就不说了,苹果的官网和操作系统自带的说明已经非常详尽。我简单介绍几个常用的快捷键。

command+tab            任意情况下切换应用程序 - 向前循环 
shift+command+tab        切换应用程序 - 向后循环 
command+delete          把选中的资源移到废纸篓 
shift+command+delete      清倒相关程序的废纸篓(提示) 
shift+option+command+delete  清倒相关程序的废纸篓( 不提示) 
command+~            同一应用程序多窗口间切换 
command+f            呼出大部分应用程序的查询功能 
command+c/v           复制/粘贴 
command+option+v        移动文件 
command+n            新建应用程序窗口 
command+q            退出当前应用程序。说明一下,所有应用程序界面左上角都有红、黄、绿三个小图标,单击绿色扩展到最适合的窗口大小,黄色最小化,红色关掉当前窗口,但并没有退出程序。用command+q配合command+tab关闭应用程序最为迅速 
command+l            当前程序是浏览器时,可以直接定位到地址栏 
command+"+/-"          放大或缩小字体 
control+space          呼出spotlight 
command+space          切换输入法

OS X下快捷键非常多,对于普通用户来说,根据二八原则,用好上述快捷键,已经可以解决好大部分效率问题了。

1.搜索

Spotlight是OS X自带的强力搜索工具,可以进行全方位搜索。借助Spotlight,可以在输入文字信息时即时查找电脑上的任何内容。可以找文稿、电子邮件、应用程序、歌曲、联系人等,还可以通过设置获得快速定义或执行简单数学计算。Spotlight菜单位于屏幕的右上角,带有一个放大镜图标。点按它即可开始搜索。默认热键是ctrl+space。

Spotlight的检索速度非常快,除了第一次初始化索引占用资源较多,平时都是增量索引,用户基本不会感觉到什么。

所以我在介绍用户目录和文件时说,在OS X下可以不进行文件整理,只要你记得文件的任何信息,通过Spotlight都可以快速定位到该文件,回车可以打开文件,按住command键单击可以打开文件所在位置的文件夹。

Spotlight的高级用法,可以参考MacTips一章中第130个技巧。

2.Launcher

Launcher(启动器)的主要作用之一就是快速定位并启动应用程序,还可以当做计算器,定位文件,打开网页,Google搜索等,是使用Mac的必备软件,有了启动器,你就不会再想念“开始菜单”了。相关软件推荐两款,都是免费应用,即Alfred和Quicksilver。

目前Alfred发展更为迅猛,所以推荐使用Alfred,在App Store可以直接下载,轻量级软件。默认热键是Option+Space,如果你想打开Twitter for Mac,只需按4个快捷键,option+space呼出窗口,输入t,回车。

在输入框输入计算表达式,如200/999,会自动计算结果0.2002002。输入find和文本信息,会找到最近使用的文件等。

Alfred的功能远不止于此,其强大之处足以用一整篇文章描述。详细的使用说明,请参考本书中的另一篇文章“神兵利器——Alfred”。

3.办公软件

推荐三套,即iWork(Pages,Keynote,Numbers)、OpenOffice和Microsoft Office,前二套是免费软件,第三套是收费软件。

iWork的所有软件都可以在App Store上直接下载,最新版本全部免费。微软的Office可以从官网购买,应该还是光盘介质。

目前我大部分文档工作都在iWork上进行,推荐大家在Mac上使用iWork,上手很快,习惯后效率和效果都不错。具体请大家根据自己的使用习惯选择。

4.浏览器

常用的浏览器有Safari、Firefox、Chrome、Opera等。Safari是我使用最多的浏览器。阅读列表和阅读器配合使用,效果非常不错。多手势的轻扫导航(在浏览过的网页间切换)和轻点缩放也是用户体验设计的精华之处。毫无疑问它们都是免费软件。

5.文本编辑器

文本编辑器是大家常用的工具软件之一,除了OS X自带的原生文本编辑器之外,我再为大家介绍几款大家喜闻乐见的编辑器。

以上4款自成体系,都有完善的插件生态环境,大家可任意选择。

6.Markdown

我一般用以上文本编辑器进行编程和文字修改,说到大段写作,还得用Markdown软件,我常用的软件有以下三个。

7.文件比较

对于程序员来说,文件比较也算必备工具,OS X中提供了原生的比较工具FileMerge,不过这个工具对非ASCII内容的文件支持非常不好,我给大家推荐的是VisualDiffer。

VisualDiffer支持文件和文件夹比较,支持文件过滤、多重比较模式、颜色标注等,操作简单,响应迅速,实乃程序员居家旅行之必备工具。收费软件,可以直接从AppStore下载。

另外,习惯命令行操作的朋友,直接使用diff和vimdiff,也是不错的选择。

8.资源管理增强

以下几个软件可以让你的管理资源和窗口更加得心应手。

9.风扇控制

推荐smcFanControl——Macbook的专用风扇控制软件,免费。OS X对风扇控制并不敏感,CPU使用率比较高的时候才会增加风扇转速,那时铝合金机身已经比较热了,尤其是在炎热的夏天。用这个软件可以自由控制风扇转速。夏天空调屋里一般3000~4000转就够了,冬天一般不需要开启。抱怨Macbook表面热的同学,可以试试,我保证你用了以后,“妈妈再也不用担心你的Mac发烫啦”。

10.邮件

如果你已经升级到10.7 Lion以上的版本,系统提供的邮件将是你的不二选择。系统原生的邮件系统一直在进行改进,邮件会话的管理、全屏体验、个人收藏栏、智能邮箱等都是亮点。目前原生邮件的版本是7。

重度Gmail用户可以使用Sparrow和Unibox,有Foxmail情节的也可以选用Foxmail for Mac。

11.输入法

OS X的原生输入法已经有了很大改进,关于原生输入法的介绍可以参考MacTips的技巧16。其他可选的输入法包括百度输入法、搜狗输入法、FIT智能拼音等。

12.IM

OS X系统自带的Messages是个选择,支持iMessage、Gtalk、Yahoo等,但是不支持MSN,虽然可以通过配置方式支持,但比较麻烦。其他可选的有QQ for Mac,MSN for Mac,Skype for Mac等,还有整合工具Adium和Trillian。

以前我使用Trillian比较多,整合了MSN、GTalk、Twitter等,表现稳定,用户体验也不错。免费软件。随着MSN渐行渐远,现在更多的使用独立应用,如Messages、QQ、Skype等。

13.影音娱乐

MPlayerX是Mac下的通用播放器,几乎适配所有影音格式。免费软件。由于新版本不适配App Store的沙箱,App Store上的版本已经不再更新,可以直接去其官网下载。

射手影音最大的特色是智能匹配字幕,几乎适配所有影音格式,收费软件,可以直接在App Store下载。

VLC是一款免费、自由、开源的跨平台多媒体播放器及框架,开发者可以基于该框架进行扩展开发,几乎适配所有影音格式,可以直接去其官网下载。

14.下载软件

现有的网络条件让下载软件不像以前那么风光无限,断点续传这样的功能浏览器都能支持了,所以直接使用浏览器的下载即可。

命令行下的下载推荐使用wget,打开终端输入wget,后面跟要下载的链接即可。P2P软件可以使用aMule,功能和Windows下的电驴类似。

这里要特别推荐一下迅雷的离线下载功能。迅雷利用自己强大的硬件资源(带宽、服务器群和存储能力)可以实现快速离线下载,大部分资源直接秒杀,之后用户只需要用很短的时间把资源从离线迅雷服务器下载到本地即可(网络情况好的话可以达到M级别的下载速度)。在下载方面,离线迅雷不提供任何资源,但是提供非常吸引人的服务能力,费用也很低,大概每月几块钱的样子。目前迅雷已经提供了Mac版客户端。

15.虚拟机

主要有VMware Fusion、Parallels Desktop(收费软件)、VirtualBox(免费软件),具体可以参考MacTips的技巧89。

16.系统清理

Max OX S基本上不需要系统清理软件,有洁癖的同学可以考虑使用CleanAPP和CleanMyMac对系统进行优化和清理,它们都是收费软件。

17.阅读笔记类软件

常用阅读笔记类软件有以下几个。

18.压缩软件

iUnarchive和The Unarchiver,都是App Store上的免费软件,支持大部分软件的压缩和解压缩。

iPack的功能更强大一些,类似Windows下的Winrar,收费软件,可以直接从App Store下载。

19.词典

原生词典,支持屏幕取词,可以自定义添加词典,具体参考MacTips的技巧76。

欧路词典,支持屏幕取词,免费软件,可以直接从App Store下载。

20.备份软件

OS X提供了非常方便的备份工具TimeMachine(时间机器),看到这个名字,大家不要以为这是为了让你在厌倦了现代生活后穿越到清朝去玩格格和王爷的游戏,它是一款软件,专为备份操作系统和重要文件而生。

我的第一台Mac用的操作系统是Leopard,一路升级到Snow Leopard→ Lion→Mountain Lion→Mavericks,包括更换Mac,从未重装过系统,我想这对于Windows系统来说是不可想象的,所有的功劳和荣耀都归于时间机器!

我个人每周会备份一次,如果你觉得自己资料非常重要,可以每隔几小时备份一次。具体的用法我就不介绍了,可以参考苹果的官方文档:http://support.apple.com/kb/HT1427?viewlocale=zh_CN

本想写个简单的新手入门,结果罗哩罗嗦写了这么多,看来年龄大了爱唠叨这事儿真是伤不起。

对于使用Mac工作和娱乐的人来说,这篇文章的内容差不多就够用了。但是,如果你是个程序员,那么万里长征才刚刚迈了第一步,OS X简直就是为程序员而生的操作系统,我们在后续的文章中会更多地涉及这一话题……

OS X平台上有大量的免费软件可用,部分软件是收费的,有了Mac App Store后,可选的软件就更多了。希望大家支持正版,这样程序员就可以更为专心地写出更好的软件来回馈用户!

2013年6月底我在“1984,Mac诞生”一文中介绍了苹果公司的一则著名广告“1984”,在那篇文章中我描述道:

1984年1月22日,在第十八届美国职业橄榄球“超级碗”大赛中,苹果公司播放了这段构思独特的广告片“1984”。广告借用乔治·奥威尔的小说《1984》影射IBM对市场的垄断和不思进取,把Macintosh作为挑战IBM的新生力量,在广告的结尾,屏幕上出现广告词:“1月24日,苹果电脑公司将推出Macintosh电脑。你将明白为什么今天的1984不会变成《1984》。”

不过我最喜欢的苹果广告并不是“1984”,而是今天要介绍的“非同凡想”(think different)。2011年乔布斯辞世的时候,这条广告曾经被广泛地报道过,喧嚣过后,我们再来品味这些充满时间感的黑白画面和优美到极致的文字,想想宇宙苍茫,想想在时间的滚滚洪流中推动人类进步的人、事、欢乐、苦难和疯狂,我们就知道,改变世界不是闹着玩的。

这则广告诞生在乔布斯刚刚回归苹果公司的那段时期(1997年),乔布斯还仅仅是头顶“顾问”头衔的领导者,连临时CEO都不是。苹果当时内忧外患,除了要精兵简政,缩减产品线,拓展优势产品之外,还要告诉外界,苹果依然生机勃勃和与众不同,这个重任就落到了“非同凡想”上。

苹果找到了当时知名的广告公司TBWA\Chiat\Day,这个公司也是“1984”的缔造者,大家开始坐在一起寻找创意。与“1984”一样,创意必定伴随痛苦,整个过程充满了争论、反击、争吵和痛哭流涕,双方恨不得杀死对方,剧情狗血得能写一个剧本。参与创意的人逐字逐句地推敲文字、画面,选择历史人物,选择旁白者等,终于,在所有人彻底崩溃之前,广告内容完成了。

在旁白者的选择上,有人推荐乔布斯,但是在当年看来这并不是个好主意,乔布斯那时的成就很难比肩画面中的其他人物。最后大家选择了奥斯卡历史上最年轻的影帝理查德·德莱弗斯,不过,乔布斯也录制了一个版本,所以我们今天才有幸能够听到乔布斯本人旁白的“非同凡想”。

在广告创意和制作接近尾声的时候,乔布斯决定正式接管苹果公司,由顾问变为iCEO(临时CEO)。“非同凡想”广告播出后,所有人都知道苹果又活了,他们重新开启了复兴之旅。

16年过去了,让我们再次欣赏一下这则广告的文字版和乔布斯配音的广告片:

致疯狂的人

他们特立独行

他们桀骜不驯

惹是生非

他们格格不入

他们用与众不同的眼光看待事物

他们不喜欢墨守成规

他们也不愿安于现状

你尽可以认同他们,反对他们,颂扬或是诋毁他们

但是唯独不能漠视他们

因为他们改变了寻常世界

他们推动人类向前迈进

或许他们是别人眼里的疯子

但他们却是我们眼中的天才

因为只有那些疯狂到以为自己能够改变世界的人……

才能真正改变世界

影片中包含的人物有:阿尔伯特·爱因斯坦、鲍勃·迪伦、马丁·路德·金、理查德·布劳提根、约翰·列侬、巴克敏斯特·富勒(Buckminster Fuller)、托马斯·阿尔瓦·爱迪生、穆罕默德·阿里(Muhammad Ali-Haj)、泰德·特纳、玛丽亚·卡拉斯、圣雄甘地、阿梅莉亚·埃尔哈特、亚弗列·希治阁、玛莎·葛莱姆、吉姆·韩森、弗兰克·劳埃德·赖特、毕加索。广告的结尾,一位青春洋溢的小女孩,睁开了紧闭的双眼,仿佛看到无限可能……

在线视频地址:http://player.youku.com/embed/XMzExMzIxODA0

看到一则消息,或叫传闻,苹果将在2013年6月29日,也就是iPhone发布6周年的时候发布新产品。届时苹果将举办一个名为“Original Passion, New Ideas”的活动来庆祝iPhone发布6周年,并在活动中发布下一代iPhone和iPad等产品。由于苹果传统的WWDC大会也是在每年6月举行,不知道这两个活动是不是一起进行。

作为技术人员,相对于新产品发布会,我更喜欢每年一度的WWDC大会,届时会有年轻的、年迈的、大师级的各种产品经理、布道师、程序员来讲解他们在设计、开发、创意中的想法和实践,几十个session,看起来非常过瘾。今天的附图就是2012年的WWDC Logo。

时间如白驹过隙,距离第一部iPhone发布已经6年了,我手机上有一个用来做纪念日提醒的App显示,第一部iPhone发布于2007年6月29日。6年时光,智能手机和平板领域发生了翻天覆地的变化,当年那个手持iPhone睥睨世界的乔布斯已经仙去,Android崛起,与iOS分庭抗礼。手持设备上超过百万的App数量彻底改变了人们的生活,一切从iPhone开始。

iPhone的各个版本中,第一代和第四代是获得赞誉最多的。第一代横空出世,告诉世界现在和未来,手机应该是这样的。3年以后第四代iPhone破茧而出,工业设计和软件技术的水准堪称空前,远远地把同年代的手机落在身后70码,颇有倚天不出谁与争锋的气势。

时至今日,无论iPhone或iPad有多么大的改进,比如芯片、摄像头、NFC、硬件工艺和外观等等,都不能再给我们带来创世的感觉。除非出现颠覆性的特性,比如电池续航能力的突破、全息影像、智能感知等。毫无疑问,苹果会把iPhone、iPad、Mac和App生态帝国做得越来越好,我们可以慢慢等待,也可以去添砖加瓦,但是我们更期待那种颠覆性的产品出现,就像Mac、iPod、iPhone、App Store、iPad,这才是苹果创新的基因。未来的颠覆是什么呢?可能是iWatch、iTv,或者是我们没有想到的东西……

作为一个软件从业人员,我知道一个产品从无到有是困难的,从有到精是艰难的,而当你站上一个巅峰之后,哪怕是做最微小的改进和提升,都需要花费大量的人力物力,同时还要承受失败的风险。我们都知道,从平庸到优秀是容易的,从优秀到卓越是痛苦的,可能很多人、公司穷尽一生都无法达到卓越的境地.有时候,我们只是需要一点耐心,把我们自己的事情做好的同时,再等等。

每个孩子从小都怀揣梦想,积极上进,在充满无穷可能的选择里为自己编织最灿烂的明天。我想大家小时候都这样吧,没人从小立志要做个坏人或者流氓,很多时候别人问你的理想是什么啊?回答多半是科学家、作家、医生、老师,从来没见过一个孩子从小信誓旦旦地要做一个黑社会或贪污犯。即使人们长大了,由于各种原因变成了坏蛋和流氓,他们也希望自己的子女将来做个好人而不是坏蛋。

但是,你年轻时候的梦想只是你生命中的一个Logo,而且是个会变的Logo,比如苹果最初的Logo是这样,后来变成了这样(见附图)。我小时候因为作文被老师读,想当作家,因为参加数学竞赛,想当数学家,因为练毛笔字,想当书法家……这些都不重要,重要的是你在长大的过程中没有把这个Logo丢掉,你还在想要做点什么或改变点什么,你没有变成小时侯痛恨的那些人,这就够了。

人长大总是伴随着痛苦,现实变得越来越现实,那些无限可能都变成了没有可能或很小可能,这东西是很残酷的。当年我进入洪恩软件的时候,大概24岁,洪恩的总裁也姓池,比我大4岁左右,清华的本科生,当时已经拥有一家几百人的全国知名的科技教育公司。那时我暗暗地想,自己在28岁的时候,也要发展成什么样……这就是我当时的梦想。于是拼命工作、彻夜编程、努力学习,但是毕竟资质和眼界在那摆着,28岁了,有提升,但是远远达不到我设定的梦想。这时候你就会慢慢认识到,想取得什么样的成就,或者想成为什么样的人,除了通过长期艰苦的练习和有意识的提升,资质、环境、勇气、运气等同样重要。

然后很快你就三十了,三十而立,梦想似乎已经远走,每个人都在感慨,这么多年付出了真心却收获了一堆下水,不知道那些真心和梦想都去哪了,不是说能量守恒吗?都去哪了?其实都在,它们就藏在某个角落默默地等着,一旦你准备重新上路,它们就会跳出来,指引你前行。所以最重要的是你还想做事,而不是混世。有人说不知道自己想做什么,那么最好的办法就是把目前正在做的事情做好,如果你把不感兴趣的事情都做好了,一旦你找到自己的方向,那你得做得多好啊。

我自己离30已经很久远了,正在加速冲向四十不惑的那条金线。子曾经曰过,四十而不惑,好像是告诉你到了40岁就什么都明白了,我曾经期望着大彻大悟的那一天的到来。后来我发现子就是个骗子,他的意思是你到了40岁,该明白的都明白了,不明白的估计你也不想去明白了,所以就不惑了。但现实的情况是,如果你一直在思考、读书、实践,做自己认为对的事情,到了40岁,你会发现不是不惑,而是有了更多的惑。这种未知的恐惧可能会伴随我们的一生……

附图是苹果Logo的变迁,大部分人熟悉被吃了一口的苹果图案,但不知道第一个图是什么意思。那是苹果公司最早的合伙人韦恩设计的第一代苹果Logo,图案是一个缠绕了缎带的徽章,徽章正中是牛顿在苹果树下读书的场景。所以说乔布斯的苹果和牛顿的苹果,还是有点关系的。

乔布斯、沃兹和韦恩创建了苹果公司,但韦恩在公司成立没几天就卖掉了公司股份退出了,因为他觉得乔布斯和沃兹太孩子气了。多年以后苹果成了伟大的公司,有人找到韦恩,问他是否后悔退出苹果,他的回答是,一点也不,我喜欢现在的生活。所以说命中有时终须有,命中无时莫强求,后悔也没用,还不如不后悔!

最近连续被问到学习Objective-C的问题,比如我原来学的是C或C++,学Objective-C行吗?这门语言语法怎么那么古怪呢?现在学Objective-C有前途吗?好吧,今天简单说说苹果的当家语言Objective-C。

首先说明一下,技术这种东西很难说学哪个更有前途,而且以前有一期也说过,如果你准备以技术手段谋生或实现你的理想,基本不可能只懂一门语言。就目前来看,Objective-C似乎是薪酬较高的语言,但是这个阶段迟早会过去的,就像当年的Java一样。一门语言只有掌握得足够深入,才有机会探讨它的前途和钱途。想要看得远,必须站得足够高。吐槽完毕!

Objective-C是C语言的扩展,设计思路上借鉴了Smalltalk的面向对象和消息机制的思想。从我个人使用过的面向对象语言来看,Objective-C是对消息传递支持得最彻底的,也是最显式的。Objective-C的类中定义的方法都是消息传递,而且类和消息之间是运行时绑定的,运行时编译器把消息发送转换成对objc_msgSend方法的调用。其他的C++、Java、Python、Ruby都体现得不明显,更倾向于对象的封装和抽象。

Objective-C和C++基本上是两门语言,没有太大的关系。Objective-C本身是静态语言,编译后就是机器码,执行效率很高,但引入了很多类似Python、Ruby的动态特性,像动态类型推断、id、selector、block等特性,所以又非常灵活。用惯了Java或C++会觉得Objective-C的语法很怪,但如果你用学习新事物抛弃旧思路的方式去学习这门语言的话,你会很快爱上它的消息式的编程风格,加上XCode,无论是写Mac应用还是iOS应用,都会非常得心应手。

关于苹果为什么采用Objective-C的问题,说明一下,其实不是苹果采用了Objective-C,而是乔布斯创建的Next公司的操作系统NextStep采用了Objective-C作为原生语言。

Objective-C在计算机编程语言中有着不短的历史,20世纪80年代初Brad Cox和Tom Love发明了Objective-C,1988年乔布斯的Next公司获得了这门编程语言的授权,并开发出了Objective-C的语言库和NextStep的开发环境。NextStep以Mach和BSD为基础,Objective-C是其语言和运行库。后来的事大家都比较清楚了,苹果买了NextStep,乔布斯回归苹果,NextStep也成了Mac OS X的基础。以后发展越来越好,Objective-C反而成了苹果的当家语言,现在基本上是苹果在维护这门语言的发展。

随着苹果的App帝国不断壮大,这门语言也得到了长足的发展,从1.0到2.0,从面向对象的C语言扩展,到内存引用计数管理、属性管理、引入块的概念、实现自动引用计数、优化编译器、简化语法等。Objective-C在2011年和2012年分别获得了TIOBE评选的年度语言,目前排名第四。苹果CEO库克在2012年的WWDC大会上宣布,苹果已经为全球开发者支付了超过50亿美元的分成收入,时至今日,估计已经远远超过50亿美元了,对于开发者来说,这是一门能够独立创富的编程语言。

还有一点不能不提,第一台万维网的Server就是一个叫蒂姆·伯纳斯-李的大牛在NextStep上写的,包括浏览器。所以,咱们得感谢Objective-C,要不然还不知道互联网会发展成啥样呢……

1.终端输入说英语

  说英语时我们当然希望有标准发音。在Mac中不需要字典,直接在终端里输入say yes,Mac就会说英语了。

2.Spotlight快速打开程序

  很多刚开始使用Mac的用户,一般都知道Spotlight检索功能。事实上,用这个功能还可以快速打开程序。通过ctrl+space呼出,或者输入通讯或cont都可以找到通讯录这个程序,回车即可打开。

3.Spotlight注释功能定位文件

  OS X的文件系统提供了Spotlight注释功能,可以帮助用户更有针对性地定位文件。选中一个文件或文件夹,command+i打开简介,在Spotlight注释功能中加入自己特定的关键词。关掉简介窗口,呼出Spotlight并输入刚才的关键词,可以准确定位到相关的文件或文件夹。

4.使用sips命令批量处理图片

  如果你想批量修改一批图片(尺寸、旋转、反转等),但你不会或没有PS,可以使用sips命令高效完成这些功能,例如:

#把当前用户图片文件夹下的所有JPG图片宽度缩小为800px,高度按比例缩放 
sips -Z 800 ~/Pictures/ *.JPG

#顺时针旋转90˚ 
sips -r 90 ~/Pictures/ *.JPG 

#垂直反转 
sips -f vertical ~/Pictures/ *.JPG

  更多命令可以用sips -h查看。

5.把当前网页附加到待发送邮件中

  使用Safari浏览网页的时候,如果你想把当前页面通过邮件发送给自己或别人,使用command+i可以直接打开邮件并把当前网页附加到待发送的邮件中。

6.快速删除文件和清空废纸篓

  在Finder中选中文件,使用command+delete删除文件。如果想彻底清除,使用shift+command+delete就会自动清空废纸篓。

7.获悉目录空间

  在Mac下想知道某个目录下各个文件和子目录各占多少空间,不需要一个一个去查看。打开终端,在该目录下输入du -sh *,结果一目了然。

8.英文自动完成

  当使用系统软件文本编辑、Pages和Keynote时,输入英文按esc键,系统会帮助你自动完成单词。比如你想输入“brilliance”,只需输入 “brill”,按esc键,系统就会出现自动提示。如果某个应用,比如Safari的搜索框里esc是取消输入,那么使用fn+F5也可以达到这个效果。对于常写英文文档的人比较有帮助。

9.文件操作

  在Finder中打开文件使用鼠标双击或按command+o键。和Windows不一样的是,选中文件回车是对文件重命名,而不是打开文件。

10.显示隐藏文件

  在终端里输入ls -a,可以显示该目录下的隐藏文件。在Finder中点击顶部菜单“显示”→“显示隐藏项目”,即可显示该目录下的隐藏文件。

11.利用你的触发角

  OS X系统为用户提供了强大的Mission Control功能,今天为大家介绍其中的触发角。打开“系统偏好设置”→“Mission Control”→“触发角”,就可以对屏幕的四个角进行设置了。比如把左上角设置为将显示器置为睡眠状态,当我们暂时离开电脑时,顺手把鼠标移到左上角,屏幕就变黑了,非常方便。

12.维护你的Mac

  Mac的OS X是一个使用起来非常简单的操作系统,一般情况下不需要装杀毒工具,大部分程序安装都非常简单,直接把后缀为app的程序拖进应用程序文件夹就可以了。但是,当你在使用系统时如果发现出现异常,那么就该进行日常维护了。

  打开磁盘管理,选中你的系统盘,单击“修复磁盘权限”,对磁盘权限进行检查和修复。完成之后还可以手动执行维护脚本:

sudo periodic daily  
sudo periodic weekly  
sudo periodic monthly

  也可以一次全部执行:

sudo periodic daily weekly monthly

  一般执行完这些操作后,你的Mac就会充满活力,可以继续上路了。这些操作可以定期执行。

13.在Mission Control设置中把“使窗口按应用程序成组”关掉,Mission Control的行为就会跟10.7以前的Exposé一样,不会把同一个程序的多个窗口叠在一起。对经常一个程序开很多窗口的程序员来说很有用。

14.截图

  OS X提供了非常方便的截图工具,你可以随时随地截取屏幕画面。

  shift+command+3:全屏幕截图;shift+command+4:通过鼠标选取截图。截取的图片默认存放在桌面上,以时间命名。系统默认截图格式是png,你可以通过如下命令修改截图文件类型,例如:

defaults write com.apple.screencapture type -string JPEG

15.推荐几个有用的小工具

16.Mac的原生输入法

  我在Mac下曾经使用过很多输入法,包括百度、FIT、搜狗等,这是因为之前Mac的原生输入法太不给力了。不过现在的版本已经有了很大的改进,慢慢地也变成了常用输入法之一。今天就为大家介绍一些Mac输入法的操作技巧。

  用习惯了,你会离不开这个输入法的。

17.Safari的标签

  Safari是我在Mac上最常用的浏览器,Chrome也不错,但我更偏爱Safari。今天为大家介绍一下这个浏览器的标签使用。

  当你想在新的标签页打开网页时,只需要按住command键,单击链接即可。

  使用Multi-Touch手势在标签页中切换。在触控板上,双指开合即可显示你打开的标签页。在标签视图中,双指轻扫可浏览不同标签页。

  通过shift+command+左右方向键,可以快速在Safari中打开的标签中进行切换。

18.监控Mac的运行状况

sudo port install htop

  命令结束就安装完成了。然后键入htop,你会看到一个更丰富的彩色的top,多个CPU、内存统计、uptime,以及更详细的进程信息。参考界面最底部的帮助信息还可以进行排序、展开和Kill。输入q退出监控界面。

19.批量复制文件

  例如你在一个目录下林林总总放了几百个文件,有图片、pdf、zip、doc等,你想把后缀为png、jpeg、gif的图片复制到另一个文件夹去,最简单的方式是什么?不是通过搜索把这些文件找出来,再全选复制到另一个文件夹下。而是进入该目录,执行这样一条命令:

cp *.png *.jpeg *.gif /destpath

  如果想剪切,就把cp改为mv。

20.程序切换

  在OS X中程序切换可以通过command+tab进行,command+tab进行顺序切换,command+shift+tab进行逆序切换,功能类似Win7的alt+tab。

  OS X还提供了同组程序的切换,比如你打开了多个预览程序阅读pdf,你想在这些pdf之间切换阅读,这时候就可以使用command+`(esc下面的键)进行同组程序切换。

21.远程复制

  OS X提供了基于SSH的远程复制命令scp,这个命令大部分Linux和Unix系统都会提供,使用该命令可以非常方便地在两台机器之间安全地复制文件,具体命令为:

scp ./testfile.txt username@10.10.10.22:/tmp

  回车后会要求你输入username的密码,只会将当前目录下的testfile.txt复制到另一台机器的tmp目录下。

scp username@10.10.10.22:/tmp/testfile.txt ./

  从远端复制到本地。

22.OS X中的ftp

  这个问题有订阅者问过,总结一下,以下三种方式就够用了。

23.备份

  OS X提供了非常方便的备份工具TimeMachine(时间机器),我第一台Mac用的操作系统是Leopard,后来升级到Snow Leopard→Lion→Mountain Lion,再后来换新机器,但从未重装过系统。这对于Windows系统来说是不可想象的,这都得益于时间机器。我个人每周会备份一次,如果你觉得自己资料非常重要,可以每隔几小时备份一次。具体的用法我就不介绍了,可以参考官方介绍:http://support.apple.com/kb/HT1427?viewlocale=zh_CN

24.inode和history

history | grep apache

  找到左边的命令编号(例如1001),在终端输入

!1001

  就可以执行原来那条命令了。

25.Go2Shell

  通过Finder浏览文件的时候,常常需要在浏览的文件目录中打开终端进行操作,Go2Shell能够自动做到这一点。从App Store下载这个免费软件(https://itunes.apple.com/us/app/go2shell/id445770608?mt=12)。下载完成后从应用程序文件夹把Go2Shell拖到Finder工具栏上,然后随便进入一个目录,单击Go2Shell图标,即可打开终端进入该目录。

  Go2Shell支持原生终端、iTerm2和xterm,在终端输入open -a Go2Shell --args config即可进入配置界面,选择你喜欢的终端。

26.Safari的阅读器

  Safari的阅读器是浏览器创新之一,在Safari之前,没有其他浏览器提供过这样的功能。当Safari发现结构优良的网页文档时,就会在地址栏右侧显示“阅读器”,单击就可以进入简洁的阅读模式,通过shift+command+r也可以进入。

  阅读器已经提供了良好的网页阅读体验,对于分页文档甚至能够自动翻页阅读,但是我们还可以更进一步。比如我就觉得阅读器太窄了,视野不够宽阔。有类似需求的同学就可以通过Safari的扩展插件CustomReader进行个性化定义。

  从http://canisbos.com/customreader下载CustomReader,双击即可安装。安装之后到任何一个支持阅读器的网页,按下shift+command+r激活阅读器,再用ctrl+r调出配置页面,就可以配置你自己独享的个性化阅读器了。

27.Remote Desktop Connection for Mac

  很多读者询问如何在Mac中通过远程桌面连接到Windows,这次统一答复一下,微软提供了专门的Remote Desktop Connection for Mac,免费,下载链接:

  http://www.microsoft.com/mac/remote-desktop-client

28.文档的版本控制

  经常使用Keynote、Pages、Numbers和原生文本编辑器的用户,可以尝试使用文档的版本控制功能。对于经常编写文档的人来说,这个功能非常有用。大家可能没有注意到,当你把鼠标移至文档标题的时候,会出现一个小箭头,下拉可以看到浏览所有版本的选项,单击进入该文档的时间线,界面与Time Machine一模一样,你可以非常方便地找到任何一时间点你编辑过的内容,也可以随意恢复到任何一个版本而不会影响其他版本。非常酷的功能,并且好用。

29.如何快速发送带附件的邮件

  在Windows中,我们可以右键单击文件发送到邮箱即可发送带附件的邮件。OS X也有类似功能,只不过叫共享。右键单击要发送的文件→“共享”→“电子邮件”即可。

30.如何快速创建便笺

  便笺是我们很常用的功能,可以把一些临时性的文字内容贴到桌面上,大家是如何做的呢?复制文字,打开便笺程序,新建便笺,粘贴文字!Too young too complicated,我们只需要选中文字,然后shift+command+y,就行了。

31.Mac的通用快捷键

  这部分内容之前陆续介绍过,但还是有人希望有个汇总,基于二八原则,我把最常用的快捷键罗列一下,对于非开发者,应该够用了。

command+tab           任意情况下切换应用程序,向前循环
shift+command+tab       切换应用程序,向后循环
command+delete         把选中的资源移到废纸篓
shift+command+delete     清倒废纸篓(有确认)
shift+option+command+delete  直接清倒废纸篓
command+~            同一应用程序多窗口间切换
command+f            呼出大部分应用程序的查询功能
command+c/v/x          复制/粘贴/剪切
command+n            新建应用程序窗口
command+q            彻底退出当前应用程序
command+l            当前程序是浏览器时,可以直接定位到地址栏
command+"+/-"          放大或缩小字体
control+space          呼出Spotlight
command+space          切换输入法

  对于最后两个快捷键,我个人比较习惯control+space切换输入法,所以做了自定义的配置。

32.终端命令open

  我们之前介绍过如何在Finder中浏览文件时进入当前目录的shell界面,那个插件叫做Go2Shell。当然我们也会有在shell下打开当前目录的Finder的需求,运行如下命令即可:

open .

#当然open也可以打开其他目录,比如
open /Users

#open还可以直接打开文件、打开程序、指定程序打开文件、打开网址等,例如

open a.txt
open -a Safari
open -a TextMate a.txt
open http://news.sina.com.cn

33.介绍小软件——CatchMouse

  可以自定义快捷键快速在多个显示器内切换鼠标,非常方便,链接附上:

  https://itunes.apple.com/cn/app/catchmouse/id439700005?mt=12

34.激活窗口

  如果你在一个屏幕内打开了多个程序,除了当前激活的软件窗口,你还想看看其他窗口的内容,这时你直接单击其他窗口的话,原来的窗口就可能被遮挡或消失。如何保持原来的窗口一直处于最上层呢?非常简单,拖曳其他窗口的时候按住command键即可,原来的窗口会永远在最上面。

35.文件检查器

  在Windows中大家经常选中多个文件,单击右键→“属性”可以查看这些文件的大小。在Mac里同样的操作(选中多个文件,单击右键→“显示简介”)弹出的是各个文件或文件夹的简介,这让很多人困惑不解。其实我们只要在单击右键的同时按住option键,“显示简介”就会变成“显示检查器”,单击“显示检查器”即可查看和操作批量文件。

  另外,我还经常用这种方式浏览图片,比如选中多张图片,按住option键单击鼠标右键,选中“幻灯片显示xx项”,就可以全屏浏览图片了。

36.屏幕放大镜

  有时我们需要放大屏幕做一些精细的操作,Ctrl+鼠标滚轮可以实现这一效果,如果你是键盘控,用option+command加上加减号也可以实现。

37.语音识别

  Mountain Lion增加了语音识别的功能,具体的设置在“系统偏好设置”→“听写与语音”,可以设置听写语言、呼出窗口的快捷键等。我采用的是默认的快捷键,连续按fn键两次即可呼出语音识别窗口,这时候你就可以对Mac说话了。如果你想让Mac把你说的写下来,最好打开一个的文本编辑器并让光标处于可编辑状态。注意,该功能需要联网。

38.time命令

  如果你想知道在终端执行的某个程序耗时多久,对CPU等的使用情况,可以输入:

time python fib.py

  输出结果:

python fib.py 0.02s user 0.02s system 50% cpu 0.094 total

39.特殊字符输入

美元($)          shift+4 
美分(¢)        option+4 
英镑(£)        option+3 
人民币(¥)        option+Y 
欧元(€)         shift+option+2 
连接号(–)        option+- 
破折号(—)        shift+option+- 
省略号(...)       option+; 
约等于(≈)        option+X 
度(°)          shift+option+8 
除号(÷)        option+/ 
无穷大(∞)       option+5 
小于等于(≤)      option+, 
大于等于(≥)      option+. 
不等于(≠)       option+= 
圆周率(π)       option+P 
正负(±)        shift+option+= 
平方根(√)       option+V 
总和(∑)        option+W 
商标(™)        option+2  
注册(®)        option+R 
版权(©)        option+G

40.OS X三指轻拍查找功能

  OS X提供了三指轻拍查找的功能,什么意思呢?把光标移到一个单词上面,无需选中,三指轻拍,系统就会弹出词典显示相关单词的释义,非常方便。该功能可以在“系统偏好设置”→“触控板”里进行设置。

41.F.lux调节屏幕色温

  推荐一款免费小软件F.lux。这个软件功能类似系统的亮度自动调节,不同的是它调节的是屏幕的色温。该软件能够根据时间来调节屏幕色温以达到保护眼睛的目的。有数据表明,4 600~5 000K的暖色有缓解眼部疲劳的作用。下载地址:http://stereopsis.com/flux/

  第一次打开应用,需要输入当前城市名称,搜索定位用户的当地时间。F.lux将根据日出及日落的时间来调节色温。在日出日落期间,屏幕色温和平时一样,对于RMBP来时就是6 500K;日落之后,F.lux会逐渐地暖化你的屏幕。具体色温可以自定义。

  我用了之后感觉还不错,大家可以试用下。

42.让Mac不进入休眠状态

  如果你想离开电脑一段时间,又不想让电脑进入休眠状态,有个简单的命令可以帮助你做到这一点。在终端中输入:pmset noidle,即可。只要该命令一直运行,Mac就不会进入睡眠状态。关掉终端或ctrl+C可以取消该命令。

  pmset是OS X提供的命令行管理电源的工具,其功能远不止于此。

pmset -g  #查看当前电源的使用方案 
sudo pmset -b displaysleep 5  #设置电池供电时,显示器5分钟内进入睡眠 
sudo pmset schedule wake "02/01/13 20:00:00"  #设置电脑在2013年2月1日20点唤醒电脑 
……

  感兴趣的可以使用man pmset查看详细信息。

43.网络共享

  Mac提供了非常简单易用的Internet共享功能,可以作为一个轻量级的家庭无线路由使用。只要你的Mac能够上网,那么Phone和Pad等设备就都可以通过Wi-Fi共享Mac的网络,实现无线上网。具体的设置非常简单,打开“系统偏好设置”→“共享”→“互联网共享”,选择共享源(网卡或AirPort),并设置Wi-Fi的名称、密码、安全级别等属性,最后勾选左侧列表的“互联网共享”,根据提示操作即可。

  这是一个我曾经认为大部分用户都知道的功能,后来发现几乎很少人使用或会用。

44.快速查看

  OS X提供了非常方便的预览文件内容的功能。在Finder或桌面上,选中一个文件并按空格键,系统就会弹出预览界面。对于很多文件我们仅仅使用快速查看功能就可以浏览文件内容了,比如iWorks的Keynote、Pages和Numbers的文档,微软Office的文档,pdf,图片,视频,各类文本文件等。

  除了在Finder和桌面快速查看文件,我们还可以快速浏览邮件的附件。打开邮件程序,找到一个带有附件的邮件,选中附件并按空格键,就可以快速浏览附件内容。

  我们还可以在终端操作的时候使用这个功能,例如qlmanage -p文件名,系统就会弹出快速查看窗口。

45.显示桌面

  我们下载文件或临时文件经常会放到桌面上,在Windows里通过Win键+D或点击显示桌面的图标即可,在Mac里如何实现呢?

  有两种方式,都很方便。第一种是四指划开,该功能可以在触控板里设置。还有一种方式是通过快捷键command+F3,即可实现移开程序显示桌面的功能。

  当我们想把桌面的文件放入某个程序(比如当做邮件附件)时,可以配合command+tab实现。用鼠标拖动桌面文件,command+tab切换程序,然后把文件拖入该程序即可。

46.应用程序的安装和卸载

  OS X中的应用程序和OSGi中使用的Bundle类似,都是把配置文件和程序封装在一个包里。对于普通用户来说,你在Launchpad中看到的所有程序都像一个图标,但这个图标不是Windows中的快捷方式,而是封装好的Bundle,从程序角度而言这是一个文件夹,对普通用户来说,知道点这个图标运行程序就行了。这种设计方式使得OS X中95%以上的软件的安装变得十分简单。如果你是从Windows转过来的话,你会认为安装和卸载简单得令人发指。安装程序就是把XXX.app拖进/Applications(应用程序文件夹),卸载就是把程序从该目录删掉。好吧,你可以这么理解,OS X中95%以上的软件都是Windows中的“绿色软件”。

47.磁盘映像

  磁盘映像类似Windows中的iso,不过文件后缀为dmg。磁盘映像可以直接挂接到OS X中,其表现形式就像是磁盘分区。双击文件可以直接打开,打开后在Finder左边栏的设备中可以找到挂接好的磁盘映像。dmg是Mac下最常用的文件组织方式,几乎所有的安装程序都是以dmg方式发布的。一般情况下安装程序就是打开相关程序的dmg文件,里面有一个app和应用程序文件夹,把app拖入应用程序即可。另外我们也可以使用磁盘工具把dmg里的文件恢复为真正的硬盘文件,也可以制作dmg文件。

48.复制目录下文件名列表

  如何复制某个目录下所有文件的文件名列表呢?非常简单,command+a,command+c。然后打开一个文本编辑器(比如TextMate),command+v即可。

49.多点触控手势

  当我们用Safari浏览网页时,经常想回到之前浏览过的历史页面。使用多点触控手势可以非常容易直观地实现该功能。打开Safari浏览多个页面,然后使用双指左右轻扫,可以来回切换浏览页面。

  另外,如果你在浏览时不小心关掉了一个标签页,使用command+z可以恢复最后关闭的那个标签页。

50.OS X的预览程序

  OS X的预览程序可以打开各类图片和pdf等类型的文件,当你想查看某个图片或pdf的细节时,没必要用command++/-来缩放整个文件,使用`键可以呼出放大镜,细节一览无遗。

51.显示/隐藏桌面内容快捷键

  我们经常会在桌面上堆满文件夹和文件,有时候会很方便,有时候会觉得很乱。其实我们可以通过以下命令来决定什么时候显示,什么时候隐藏:

chflags hidden ~/Desktop/ *   //隐藏桌面内容
chflags nohidden ~/Desktop/ *  //显示桌面内容

  如果觉得输入麻烦,用TextExpander或Alfred设置成snippet即可。

52.按住option的快捷键

  OS X设置了一些快捷键用来快速打开显示器、Mission Control、键盘、声音等系统设置,具体是什么呢?你只要按住option,轮番把键盘最上方的那排键试一下就知道了,一般人我不告诉他。

53.Space(空间)

  使用OS X,我们可以充分利用系统提供的多个Space,把不同的程序放到不同的Space,让我们的系统更有扩展性。如何增加Space呢?四指上推,在桌面的最上方会出现当前的Space,把鼠标移到Space列表的右侧,会出现一个带+号的空间,单击加号,即可增加一个Space。

  那么如何把某个程序固定在某个Space打开呢?在某个Space打开程序,在Dock中找到这个程序图标,鼠标长按会出现一个菜单,“选项”→“分配给”,选“这个桌面”,下次再打开这个程序,就会自动进入设定的Space。

  Space的排列方式可以在Mission Control里设置,比如选择按照使用情况自动排列等。

54.隐藏程序

  当我们不想在使用当前程序的时候看到其他程序的时候,可以使用快捷键option+command+h,这时除了你正在使用的程序,其他所有的程序都会被隐藏起来,有助于你专心工作。想切换到其他程序时,可以使用command+tab。

55.文件颜色标签的使用

  OS X的Finder提供了颜色标签的功能,可以直接为文件和文件夹标记颜色。我在很长一段时间都没有注意到这个功能,一次偶然的机会开始使用颜色标记文件,感觉非常方便。

  比如我会在Finder的主目录下用颜色标明最常访问的文件夹。如果是电子书,可以用颜色表示阅读状态,例如绿色表示正在阅读,灰色表示读完了,橙色表示待阅读,等等。大家可以根据自己的习惯使用颜色标签,提高效率。

56.利用邮件中的日期创建日历事件

  工作中我们总是通过邮件来通知会议和活动,这时邮件中往往有日期信息。我们可以利用这个信息直接创建日历事件。打开邮件,把鼠标移动到有效的日期信息上,会出现下拉菜单的按钮,单击后可以为日历添加事件,事件标题默认为邮件标题。

57.AppleScript小程序

  今天为大家介绍用AppleScript实现一个示例小功能:清空废纸篓。打开AppleScript编辑器,输入如下代码:

--操作对象是Finder
tell application "Finder"

  --为isEmpty变量赋值
  set isEmpty to "是否清空废纸篓!"

  --显示确认对话框,单击“确认”程序继续执行,单击“取消”终止程序
  display dialog isEmpty

  --清空废纸篓
  empty the trash

  --通过语音说这事搞定了
  say "It is done!"

end tell

  单击工具栏的“编译”按钮,检查没有错误后,单击“运行”即可,大家可以看看发生了什么。

58.Homebrew

  Homebrew的功能和MacPorts、Fink很像,但是更为轻量级,由于大量利用了系统自带的库,安装方便,编译快速,实在是OS X系统开发中之必备工具。

  安装方式:ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"。

  使用方式:brew install wget //安装wget工具。

  具体的使用请参考:https://github.com/mxcl/homebrew/wiki

59.根据文件名快速查找文件

  我们在OS X中查找文件或文件内容一般使用Spotlight或Alfred,这些功能在前面的Mac Tips中都介绍过,不过,如果你知道文件名的一部分,想更加快速地定位文件,那么就会用到命令行工具locate。

  locate是Unix/Linux下的命令工具,基本原理就是通过定期更新系统的文件和文件名并把索引信息放入系统的数据库中,当通过locate查找文件时直接从数据库里取数据。而且locate可以查到Spotlight查不到的系统文件。

  基本的使用方法非常简单,比如你想找Nignx的配置文件在哪,只需输入:locate nginx.conf。

60.设置用户登录选项

  OS X系统登录后会自动启动一些程序,比如Alfred、拼音输入法、风扇控制软件等等。有时我们会嫌多,有时又想增加一些启动项,在哪设置呢? 打开“系统偏好设置”→“用户与群组”,选中“当前用户”,单击右边的“登录项”,你就会看到系统启动时加载的程序,可以随意删减,还能够设置启动后隐藏,非常方便。

61.修改你的登录窗口

  我们默认登录OS X时,系统会显示登录用户列表,你需要用鼠标点一下要使用的用户,或者用光标键选择用户,出现登录框后输入密码登录。如果我们想不显示用户列表,直接输入用户名和密码登录怎么办呢?

  打开“系统偏好设置”→“用户与群组”,单击左侧下方的“登录选项”(很奇怪很多人找不到这个),在右侧修改登录窗口为“名称和密码”。注销登录,这次大家就满意了。

62.Mac的键盘

  很多人第一次用Mac的键盘时会发现,苹果也太抠门儿了,退格键没了,PageUP/PageDown/Home/End也没了。别担心,您不是还有delete键和上下左右方向键么?delete相对于退格键,fn+delete可以往前删,fn+上下左右方向键可以实现PageUP/PageDown/Home/End的功能,一个功能都不少。

63.QuickTime

  很多人都会使用QuickTime Player看mp4或mov视频文件,但其功能远不止于此。option+command+n可以打开录像功能,ctrl+option+command+n可以打开录音功能,ctrl+command+n可以打开录制屏幕功能。最后一个功能非常适合做产品介绍或产品演示,大家可以试一试。遇到快捷键冲突的,在QuickTime的文件菜单中也可以找到这三项。

64.Dropbox快速导入Mac

  有读者问如何把iPhone或iPad里的照片导入Mac,我自己用的办法是Dropbox,安装了Dropbox之后,每次用USB连接iPhone或iPad时,程序都会提示是否有新照片需要导入,导入后自动云端同步。不用Dropbox的同学,另外一个简单的方式是连接移动设备时,打开预览程序,单击文件,可以看到一个“从iPhone/iPad导入”的菜单,单击一下,后续你基本就知道该怎么做了。

  当然还有其他方法,比如打开图像捕捉或iPhoto程序等。

65.快速创建日历事件

  OS X提供了智能创建日历事件的功能。打开日历程序,单击左上角的“+”号,在弹出的输入框里输入:“明天上午9点到13点参加公司年会。”回车,看看效果如何?日历程序会准确地创建你想要的事件。大家可以试试其他写法。

66.显卡监控软件gfxCardStatus

  现在大部分Mac都有两块显卡,集成显卡和独立显卡。OS X会根据不同的程序自动切换显卡,但有时候我们在电池供电的情况下会由于某些程序的原因一直使用独立显卡,会大大缩短待机时间,这时候就能用到这个软件了。gfxCardStatus能做的事情有两件。一件是手动切换显卡。另一件是监控现在系统在使用哪块显卡,如果是独立显卡的话,是因为哪个程序导致必须使用独显。下载地址:http://gfx.io

67.创建智能文件夹

  Finder提供了智能文件夹的功能,简单来说就是固化你的搜索条件,并形成文件夹存放在左侧边栏。

  例如你想建一个文件大小大于1G的智能文件夹,使用快捷键option+ command+n呼出新建智能文件夹界面,单击最右侧的加号,在条件选择第一栏选择“大小”,第二栏选择“大于”,第三栏输入“1G”,你就可以看到你的Mac上文件大于1G的列表,单击“存储”,命名后该文件夹就会出现在左侧边栏。随时单击随时动态监控自己的硬盘上有哪些超过1G的大文件。试试其他搜索条件吧!

68.自动打开程序文稿

  OS X提供了自动恢复上次关闭程序时打开的文稿和窗口的功能。这就是说,如果你使用预览程序打开了5个PDF文件,用command+q关闭了预览程序,下次打开预览程序时,会自动恢复这5个PDF程序,包括文字选中的状态,阅读进度等信息。这个功能我非常喜欢,但有时候我们并不希望自动恢复,那么有两种方式可以关闭这个功能。

  第一种:打开“系统偏好设置”→“通用”,选中“退出应用时关闭窗口”,这样所有的程序都不再具备恢复功能。

  第二种:退出程序时使用option+command+q而不是command+q,相当于关闭所有文件并退出程序,下次打开时,这些文件就不会自动打开了.

69.智能邮箱

  邮箱账户的创建相信一般的用户都可以正常操作,不知道你是否使用过OS X中Mail的智能邮箱功能呢?

  打开邮件程序,单击“邮箱”→“新建智能邮箱”,在弹出的窗口中选择你的过滤条件。过滤条件非常灵活,可以定义与或关系,增加多个过滤条件,设置完成后保存即可。你会发现左侧栏多了一个智能邮箱,单击即可根据你设置的过滤条件找到那些符合条件的邮件。

70.隐藏的VIP

  如果你的系统版本是10.8以上,那么你就会发现邮件程序中多了一个隐藏的VIP功能。随便找封邮件,把鼠标放在发件人或收件人的邮件地址上,会出现一个蓝色的选择框,单击其中的白色箭头,在下拉菜单中单击“添加到VIP”,你就会发现左边栏多了一个VIP分栏,单击加入的VIP用户,可以直接查看他们发送的邮件。

71.在Finder中打开某个文件夹下所有子文件夹

  有时候我们希望在Finder中查看某个文件夹下的所有文件和子文件夹,怎么做到呢?把文件切换到列表视图(command+2),把排序方式设置为“不排序”,这时文件夹左侧会出现一个箭头。按住option键单击文件夹左侧的箭头,你就会发现所有的文件和文件夹都展现在眼前了。注意,如果该文件夹下文件太多,那么不建议使用,因为打开会需要很长时间。

72.慢速动画

  所有具备动画效果的操作,按住shift键,会播放慢速动画。大家可以试试按住shift键的时候最小化窗口,效果非常酷。

73.XtraFinder

  这个插件具备和TotalFinder类似的功能,支持tab、文件夹置顶、多窗口、剪切、全局热键等功能,重要的是这是一个完全免费的自由软件。

  下载网址:http://www.trankynam.com/xtrafinder/

74.MacBook待机仍可为iPhone供电

  我们平时会把iPhone接到MacBook上充电。事实上,把MacBook合上待机时,仍然可以为iPhone供电,大家可以试一下。如果你出游时会带上你的Mac,别忘了这也是一块大的移动电池。

75.恢复截屏图片默认保存路径

  截屏图片存哪了?OS X自带截屏不好使了,截屏之后有“咔嚓”的程序运行声,但图片不知道去哪里了,如何修复?

  OS X自带的截图文件是存储在桌面上的,你的可能是被修改过了,我们可以通过以下命令恢复默认路径:

defaults delete com.apple.screencapture location

  注销,重新登录,再次截屏看看文件是否保存在桌面上了。

76.如何为OS X自带的字典增加中文字典

  目前OS X自带的字典程序是没有中文的,不过我们很容易为其扩展新字典。操作如下: 

77.文件共享

  在Mac之间进行文件共享有很多种方式,介绍两个最简单的,具备AirDrop功能的两台或多台Mac,在开着Wi-Fi的情况下打开AirDrop,就会找到同样打开AirDrop的Mac,把想传送的文件拖放到其他人的Mac头像上即可。

  另一个就是利用系统的共享功能。打开“系统偏好设置”→“共享”,单击左侧栏的“文件共享”,在右侧区域配置即可。

78.删除程序

  删除Mac上的程序有很多种方法,比如直接去应用程序文件夹下删除,用CleanApp删除,等等,今天介绍一个最好玩的。

  打开Launchpad,按住option键,就会看到所有的程序图标都会像iOS图标那样晃动起来,单击图标左上角的叉,即可删除程序,和操作iOS一样。

79.command+上下方向键

  这两个快捷键很多应用程序都支持,具体功能就是屏幕滚动到应用程序的顶部或底部,类似很多网站提供的“回到顶部/底部”功能。Safari、Chrome、Firefox、Pages、Evernote等默认都支持这样的功能。

  在使用快捷键呼出Spotlight的时候,使用command+上下方向键还可以在搜索分组之间切换,非常方便。

80.Mac上的阅读笔记类软件

  以上4个App在iPad、iPhone上也有相关应用,并且都支持云同步,合理使用对提高读写效率非常有帮助。

81.查看电源状况

  按住option键,单击右上角的苹果图标,选择“系统信息”,在打开窗口的左侧栏中找到“电源”,单击即可查看电源的详细信息。主要的指标包括电池循环计数、状况等信息。如果您安装了Alfred,呼出后直接输“sys”,也可以找到系统信息。

  如果想简单查看一下电池的使用状况,按住option键单击顶部工具栏上的电池图标,可以显示电池使用状况。如果出现“尽快更换”、“修理电池”等信息,那么有可能是电池出了问题,建议先重置系统管理控制器(SMC),如何重置可以去Apple的官方支持网站查一下。还没效果的话,可能就需要换电池了。

82.Pixelmator

  这款图像处理软件号称是Mac上的精简版Photoshop,而且更为人性化,适合非专业人士使用,不是平面设计人员也可以作出非常专业的图像设计。MacTalk里很多配图我都使用这款软件加工过,很好用。收费软件,但值得拥有。

  推荐一个Podcast视频教程(RSS):http://www.pixelmator.com/tutorials/itunes/

83.搜索命令mdfind

  mdfind是一个非常灵活的全局搜索命令,类似Spotlight的命令行模式,可以在任何目录对文件名、文件内容进行检索,例如:

//搜索文件内容或文件名包含“苹果操作系统”的文件
mdfind苹果操作系统  

//在桌面上搜索文件内容或文件名包含“苹果操作系统”的文件
mdfind -onlyin ~/Desktop苹果操作系统

//统计搜索到的结果
mdfind -count -onlyin ~/Desktop苹果操作系统

//搜索文件名包含“苹果操作系统”的文件
mdfind -name苹果操作系统

84.元信息命令mdls

  mdls可以列出某个文件或文件夹的所有元数据信息,针对不同文件显示不同的元数据信息,例如文件创建时间、类型、大小等。如果是图片或音视频文件,则会显示更多元数据信息。使用方式非常简单:

mdls ~/Desktop/a.jpg

  如果想查看图片的ISO数据,可以使用如下命令:

mdls ~/Desktop/a.jpg|grep ISO

85.功能键

  很多程序员在调试程序的时候总会用到F7、F8这些键,但在OS X里这些功能键默认分配了一些功能,想使用的话需要同时按fn+F8……

  如果希望将F1~F12这些按键用作标准功能键而且不需要按fn,可以执行以下操作:打开“系统偏好设置”→“键盘”,选中“将F1、F2等键用作标准功能键”。启用此选项时,顶部一行按键将用作标准功能键(F1~F12),而不执行音量控制等特殊功能。启用此选项后,若要使用这些按键的特殊功能,请按fn,比如按fn+F8来播放音乐。

86.查看文件信息的命令:file

  file可以查看相关文件的类型和属性,相对于mdls,这个更亲民一些,基本用法file xxx.png,大家感受一下。

87.如何配置多种网络环境

  我自己无论在公司还是家里都是DHCP自动分配IP,所以不需要进行网络环境切换。但有些用户有时自动有时手动,需要多套网络配置方案,每次修改实在是太麻烦了。曾经有人问我Mac上是否有这样的第三方软件?我说没有,因为OS X的网络设置本身就提供了这样的功能。

  打开“系统偏好设置”→“网络”,单击“位置”下拉菜单,找到“编辑位置”,打开后即可增删编辑多套网络设置,设置完成后保存。

  这时单击屏幕左上角的苹果图标,在下拉菜单里增加了一个位置选项,里面就是你配置好的多种网络设置,单击切换即可。

88.生成man page的PDF文档

  打开OS X的终端,通过man命令可以直接查看该命令的使用手册。但有时我们会觉得在命令行查看不太方便,如果可以提供一个PDF文档就完美了。这很容易做到,在终端输入如下命令,即可在预览程序打开grep的使用手册,另存为你需要的文件名即可:

man -t grep | open -f -a Preview

89.虚拟机

  2006年Mac的硬件进行了重大的架构调整,开始全面采用Intel系列的CPU,Power渐行渐远。架构的调整和Bootcamp的推出,使得在Mac上安装双系统变得触手可及。基于Mac的虚拟机应用也开始出现。我刚开始使用Mac时是双系统的支持者,后来Windows用得越来越少,就比较推荐使用虚拟机了。

  在OS X上主要有三款虚拟机软件:Parallels Desktop、Vmware Fusion和VirtualBox。简单给大家介绍一下。

  我个人首推Parallels Desktop,功能、性能和价格都不错,专注于桌面版,属上乘之选。我自己虚拟了Win7、Redhat Linux和Ubuntu等环境,作软件测试和搭建多机开发环境。

90.如何开启root用户

  用过Linux/Unix系统的都知道root用户,它具备读写文件系统所有区域的特权,是最高级别的用户。OS X一样有root用户,只不过默认情况是不开启的。我们想在命令行执行需要root权限的操作时,可以在命令之前增加sudo指令,比如执行每日维护指令:sudo periodic daily,系统会提示你输入用户密码,执行root权限。在GUI(图形界面)执行root级别的命令时也会提示输入用户密码。一般情况下我们是不需要开启root用户的。

  用惯了Linux系统的用户有时很想启用root用户,其实也很简单,打开Finder,输入shift+command+g,在前往文件夹中输入:/System/Library/CoreServices,然后在目录中找到“目录实用工具”并打开,解开左下角的小锁,然后单击顶部菜单的“编辑”,你就会看到启用或停用root用户的选项了。然后我们在命令行下执行su -,就可以切换到root目录下,root的默认目录是/var/root。

  root有风险,启用须谨慎!

91.隐藏的空间切换功能

  以前介绍过OS X中Space的使用,我们可以定义多个Space,每个程序都可以在特定的Space中打开,多手势上推下滑选择程序,也可以通过ctrl+数字切换Space,很方便。今天再为大家介绍一个隐藏的功能,就是通过四指双击触控板,可以在你最近使用的两个Space之间切换,这个功能就类似电视频道中的返回功能,当你使用了Space1中的一些App,切换到了Space4之后,就可以通过四指双击在Space1和Space4之间切换了,对于协同工作非常有效。典型的应用场景:Space1里编码,在Space4里参考各类文档。

  功能开启,打开终端程序,输入:

defaults write com.apple.dock double-tap-jump-back -bool TRUE; #功能开启
killall Dock;   #重启Dock

92.免费的文本编辑器Imagine

  我个人觉得Imagine比OS X自带的TextEdit好,除了目前不支持iCloud外,基本涵盖了TE的功能,而且排版简约美观,可更换柔和的背景色,全屏写字非常舒服,对字体样式的支持很好,在富文本和纯文本间切换方便,我基本用Imagine替代了TextEdit。

  下载地址:https://itunes.apple.com/cn/app/imagine/id566877440?mt=12

93.去除右键菜单的重复项

  OS X系统有个问题,某个程序反复安装后,选中某种类型的文件,单击右键→“打开方式”,你会看到不少重复的选项,我们可以用以下命令去除重复项。

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user

94.如何分别设置Mac的鼠标和触控板的滚动方向

  很多人习惯鼠标使用相反的滚动方向,而触控板类似iPad那样自然滚动,问如何设置,当时我的回答是不知道,因为目前OS X的系统设置里,鼠标和触控板的设置是统一的。今天发现了一个免费的软件Scroll Reverser,可以实现鼠标和触控板的分别设置。

  下载地址:http://www.macupdate.com/app/mac/37872/scroll-reverser

  启动后程序显示在顶部菜单栏,设置简单明了,有需要的用户体验一下吧。

95.如何让不支持Retina的Mac软件变成Retina App

  前两天有读者求推荐Mac下的FTP软件,我推荐了FileZilla,但这个软件是不支持Retina屏的,Retina用户使用这个软件会感觉整个世界都模糊了,结果搜索之下,发现了一个小软件,叫做Retinizer,顾名思义,就是把非Retina的软件Retina化,我用了一下,完美支持FileZilla。

  下载地址:http://retinizer.mikelpr.com/

96.文件比较

  vimdiff destfile.txt sourcefile.txt

  vim会非常清晰地显示出文件的不同,还有很多快捷方式帮助你查看和操作文件,这个命令比较适合命令行爱好者。

97.FTP工具Cyberduck

  之前介绍Retinizer(普通软件Retina化)的时候提到了FTP软件FileZilla,我个人一般使用命令行下的ftp/sftp/scp等实现FTP软件的功能,但普通用户还是用图形界面的更方便些。今天再给大家介绍一个可以实现远程同步文件的FTP工具:Cyberduck。

  Cyberduck除了可以实现FTP的基本功能外,还能支持远程同步。所谓同步,就是把远程和本地的两个目录进行比较,然后自动找出修改的文件上传到服务器。

  具体操作就是通过ftp或sftp的方式登入远端服务器,选中某个文件夹,右键菜单里选择“同步”,再选择本地文件夹,就可以进行同步比较上传了,上传之前你最好确认下,更稳妥。

  同样,这个软件也可以用Retinizer实现高清显示效果。

98.文件重命名

  文件重命名的问题以前说过,但最近又有些用户问起,就再说一下。

  如果你没有装任何插件的话,在Finder中重命名文件或文件夹的快捷键就是回车。打开文件用command+O,返回上级目录用command+向上的方向键。

  如果你装了原来推荐过的XtraFinder,可以把回车改为打开文件(与Windows操作类似),把option+R设置为文件重命名。

  如果你在命令行下重命名文件,命令是这样的:

mv oldname newname

99.多个用户登录一个程序

  Mac下有很多程序默认是单进程的,比如你不能打开多个邮件程序,不能打开多个Evernote,但有时我们可能会有这样的需求,那么用如下命令可以实现:

open -n /Applications/XXX.app

  -n的含义是:Open a new instance of the application(s) even if one is already running. 意思就是为正在运行的应用程序再开一个新实例。常用于多个账户登录一个程序,或软件比较等场景。

100.强制关闭程序

  总有程序关闭不了,这时候我们就需要以下方法。

  方法一:option+command+esc,调出强制退出应用程序的窗口,选择要退出的进程即可。

  方法二:打开活动监视器,类似windows的任务管理器一样操作就好了。

  方法三:命令行下的kill命令,比如想杀掉TextMate,首先用ps -ax|grep TextMate找到进程号,然后用kill -9进程号,即可。

  至此,天下无杀不掉的进程。

101.用AppleScript实现打开多实例程序

  之前介绍了通过open -n /Applications/XXX.app的方式打开多实例程序,有人在微博上问如何选中一个文件或程序,通过右键菜单打开新实例,而不是每次都去命令行操作。

  我们可以通过Automator+AppleScript实现这个功能。

  打开Automator,选择创建“服务”,在左侧选择“运行AppleScript”,双击打开程序窗口,在“( Your script goes here )”处输入如下代码:

tell application "Finder"
  try
    set filename to POSIX path of (selection as text)
    set fileType to (do shell script "file -b " & filename)
    if (fileType does not end with "directory") or (filename end with "app" ) then
      do shell script "open -n " & filename
    end if
  end try
end tell

  在程序上方的选择框设定“文件和文件夹”、“任何应用程序”,然后保存,起个你喜欢的名字,比如叫“以新实例运行”。退出Automator。

  选中文件或程序,右键→“服务”→“以新实例运行”,即可实现类似open -n的方式。

102.Automator

  Automator是苹果公司为其操作系统OS X开发的一款软件。通过单击拖曳鼠标等操作就可以将一系列动作组合成一个工作流,从而帮助你自动完成一些复杂的重复工作。Automator还能横跨很多不同种类的程序,包括:查找器、Safari网络浏览器、iCal、地址簿或者其他的一些程序。在Automator中可以运行AppleScript。

  在上一个技巧中我们通过Automator创建了一个服务,当你在Finder或桌面上选中文件时,在右键的“服务”菜单里增加了一个选项“以新实例运行”,是通过AppleScript实现的。下面说明一下程序功能:

--通知Finder
tell application "Finder"

  --异常处理  
  try

    --获取选中文件的全路径
    set filename to POSIX path of (selection as text)
    --通过脚本file -b获取文件类型
    set fileType to (do shell script "file -b " & filename)
    --如果不是文件夹或以app结尾,执行open -n脚本
    if (fileType does not end with "directory") or (filename ends with "app") then
      do shell script "open -n " & filename
    end if
  end try
end tell

  这里考虑到了选中程序直接打开,或选中文件以默认程序打开的情况。

103.用Safari默认查询引擎查询应用软件里的文字

  如果你想通过Safari的默认查询引擎查询某个应用软件里的文字,那么选中文字,然后使用shift+command+L即可跳转到Safari的搜索页面,非常方便。大部分应用都支持这个快捷键。

104.旋转屏幕

  打开“系统偏好设置”,已经打开了的,退出重新打开。按住option+ command键,单击显示器,在原来的亮度选项下方会出现一个“旋转”的选项,这时候你就可以旋转你的屏幕了。

105.最近尝试录制视频时在屏幕上显示键盘快捷键的操作,ScreenFlow固然可以实现这个功能,不过99美元的价格让人感觉得不偿失。搜索之下找到了KeyCastr,简单设置了一下发现可以实现我需要的功能,项目托管在GitHub上,网址:https://github.com/sdeken/keycastr,可以直接下载DMG包。

  还有一种方案是使用OS X原生的键盘显示,打开“系统偏好设置”→“语言与文本”→“输入源”,选中左边栏的第一项“键盘与字符显示程序”。关闭偏好设置,这时单击顶部Menu Bar的“语言”,会多出两项功能,单击“显示键盘显示程序”,就会在屏幕上出现一个模拟键盘。

  这个方案的缺点是没法区分快捷键和普通字符输入,而且显示速度太快,不够醒目。

106.复制截屏图片到剪贴板

  以前介绍过如何通过苹果自带的快捷键截屏并存储图片文件,例如shift+command+3和shift+command+4。现在发现如果在以上两个截屏动作中加入ctrl键,可以实现直接把图片保存在剪贴板中,而不是实体文件中,这样就可以通过command+v直接把截取的图片内容复制到图像处理软件或Pages、Keynote等文件中了。

107.CheatSheet

  一生要记住多少快捷键呢?我都不知道自己记住了多少快捷键,很多快捷键是到了那个环境下才能想起来。但是毋庸置疑,快捷键可以大大提高我们的工作效率,在Mac环境下使用快捷键和不使用,几乎是两种体验。如何记住这些快捷键呢,有人开发了一款软件叫做CheatSheet,安装并打开之后,当你记不住快捷键的时候,按住command键两秒钟,就会弹出一个当前应用软件快捷键列表,不全,但是对大部分用户都够用了。

  下载地址:http://www.cheatsheetapp.com/CheatSheet/

108.HTML5 Player

  现在越来越多的人开始看在线视频,目前大部分视频网站的播放器都是基于Flash技术的,而苹果一直对Flash很抵触,支持得也不好,Flash播一会Mac机身就会变热。另外现在的视频网站广告太多,页面花里胡哨也不适合观看。于是有位无聊的程序员做了一个HTML5播放器,可以把在线视频的播放转化成HTML5方式,并且去除广告。使用起来非常简单,只要把{原文}里的HTML5 Player链接拖曳到Safari的书签栏,播放视频时单击书签栏上的HTML5 Player书签,播放器就会自动转换,效果自己看吧。

  目前支持优酷、土豆、搜狐视频、爱奇艺、乐视网、QQ、迅雷离线,以及56视频的单视频播放页面。

  相关链接:http://zythum.sinaapp.com/youkuhtml5playerbookmark/

109.重建Spotlight索引

  以前给大家介绍过,在OS X中几乎不需要进行文档和文件夹管理,因为有Spotlight机制,可以瞬间找到你想要的文件,只要你记得这个文件的一点蛛丝马迹。

  但是Spotlight也有出问题的时候,就是它的索引文件出事了,比如查找速度变慢,某些文件明明在硬盘上就是检索不到,等等,这时候就需要重建索引了。

  打开终端程序,输入如下命令:

sudo mdutil -i off /  
  # 该命令用来关闭索引 

sudo mdutil -E /  
  # 该命令用来删除索引 

sudo mdutil -i on / 
  # 该命令用来重建索引

  然后用快捷键呼出Spotlight菜单,随便输入一个词,就能看到提示,正在进行索引,并且显示完成重建索引需要的时间。

  完成之后,Spotlight又可以运转如飞了。

  有时候人在某个阶段也需要重建索引,保持初心。什么是初心,空空如也!不要成天得瑟你知道的那点事,多琢磨那些你还不知道的事儿。

110.用键盘操作Dock和Menu Bar的菜单

  当我们想操作Dock或顶部菜单栏的时候,往往需要鼠标去选中Dock或菜单栏,但是我们往往是不希望去碰鼠标的,这时候快捷键就又开始发挥作用了。使用control+F2可以选中Menu Bar的菜单,通过左右键选择功能,回车执行;使用control+F3可以选中并显示Dock,通过左右键选择功能,回车执行。

  该功能在全屏操作时尤其有效。对于F1、F2等不是标准功能键的设置,增加fn键即可。

111.定义自己的快捷键

  我认为OS X是一个把GUI、程序进程和脚本结合得最好的操作系统,当然这样说可能有些读者不是很明白,这么说吧,OS X是一个定制化非常强的系统,很多人说OS X封闭,事实上OS X为用户预留了非常多的入口和切面,让你能够通过简单、简洁的办法进入系统做你想做的事情。

  举例来说,对于普通用户,你可以通过键盘的快捷键设置定义自己的常用操作。

  对于程序员,你可以自己通过AppleScript、Shell、Automator等创建自己的服务,也可通过类似Alfred 2这样的优秀工具编写自己的workflow。

  今天给大家说说第一种。打开“系统偏好设置”→“键盘”→“键盘快捷键”,左侧栏里列出了各种功能的快捷键,比如Launchpad、Dock、Mission Control、截屏、服务等,大家可以在这些选项中定义和修改自己常用的快捷键,增加右键菜单,等等。

112.选择文本

  用command+鼠标,可以选中不同位置的文本内容。

  用option+鼠标,可以对文本进行块选。

113.Dock中的文件夹

  这个功能非常适合普通用户使用。一般安装了系统后Dock右边会有几个默认的文件夹,事实上你可以把任何常用的文件夹拖到这个位置,不想要的拖到废纸篓即可移除。

  Dock文件夹的显示方式提供了扇状、网格和列表三种方式,我一般使用网格和列表。但是还有一个隐藏的列表功能,更为实用些,可以在命令行输入如下命令开启:

defaults write com.apple.dock use-new-list-stack -bool TRUE; killall Dock

  这时候你再启动列表模式,就会发现列表显示方式不一样了,变得更加容易操作了。

  另外,在列表和网格模式下,还可以通过command+/-来放大和缩小图标,非常方便。

114.Finder的宽度

  Finder是OS X的默认文件管理器,它提供了多种显示方式,包括图标、列表、分栏和Cover Flow。其中分栏最为常用,通过键盘的方向键浏览多层级的文件非常方便。不过每个分栏的宽度都是系统默认宽度,如何改变这个默认宽度呢?用鼠标拖动分栏线时同时按住option键,这个默认宽度就随之改变了。

115.Dashboard

  顾名思义,Dashboard就是OS X系统中的仪表盘,它可以在桌面上显示各种小功能块,比如字典、便笺、系统状态、天气预报等。

  使用快捷键F12或单击Dock中的Dashboard可以运行Dashboard,运行方式有两种,可以在一个新的Space里打开,也可以在当前的Space里打开,可以在“偏好设置”→“Mission Control”中设置。我一般使用在当前Space里打开。

  单击左下角的“+”号,可以为Dashboard添加功能块,“-”号可以删除已经添加的功能块。把鼠标移动到某个功能块时按住option键,该功能块会出现一个删除图标,单击也可删除。

  如果你想添加更多的功能块,在单击“+”号时,右侧会显示更多的Widget,单击可以到网络上下载你需要的功能。

  Dashboard还有一个Web Clip的功能,如果你添加了这个功能块,浏览网页看到特别喜欢的词句或图片,可以单击右键→“在Dashboard打开”,把这部分内容放入Dashboard。

116.Dock文件夹的使用小技巧

  前面介绍过Dock文件夹的使用问题,再说一个小技巧。当我们打开Dock文件夹后,先打开某个文件所在文件夹时,按住command,单击该文件,就会打开Finder文件夹,并选中你刚才单击的文件。

117.几个简单的命令

  介绍几个简单的命令。打开终端程序,输入date会显示当前日期,输入cal会显示日历,输入uptime会显示系统从开机到现在所运行的时间。

118.神奇的option键

  前面介绍过option相关的快捷键和功能,比如选中多个文件,然后按option+右键,可以显示检查器,按住option单击顶部菜单的电池图标会显示电池状况,单击Wi-Fi图标会显示网络状况,单击备份……可以自己试试。别忘了最左边的苹果按钮,option+单击,在下拉菜单击关机、重启都是不提示的。

  option+拖曳文件可以复制,按住option输入“=”,输出是“≠”,按住option和shift输入“=”,输出是“±”。

  还有好多,没事的时候多按按option键,你会有很多意外的发现。

119.音乐处理软件XLD

  XLD全程是X Lossless Decoder,是Mac平台上无损音乐播放、编码和转换工具,不仅支持APE、FLAC等无损音频,还支持读取音频CD,将音轨抓取出来之后创建音乐文件。

  免费软件,喜欢的可以捐赠。

  官网地址:http://tmkk.undo.jp/xld/index_e.html

120.保护你的数据文件

  在Mac下对某些文件或数据进行加密操作有两种方式:

  第一种:“系统偏好设置”→“安全性与隐私”→“FileVault”→“打开FileVault...”,即可。FileVault是全盘加密技术,可以对磁盘上的所有文件进行加密,后果是系统速度会稍微变慢一点点,一般不建议采用。

  第二种:创建磁盘映像文件,对磁盘映像进行加密处理,然后把需要保护的数据和文件放到这个磁盘映像中即可。具体方式如下:

  打开“应用程序”→“实用工具”→“磁盘工具”,单击“新建映像”,在“加密”选项处选择“256位AES加密(更安全但速度较慢)”,这种加密算法是极其安全的。创建映像时输入两次密码,即可创建加密的磁盘映像文件。在创建时最好不要选择“在我的钥匙串中记住密码”,这样可以每次打开这个磁盘映像文件时都需要输入密码,可以达到最佳保护数据的作用。

121.如何禁用通知

  很多时候写作或写代码时,不希望被打扰,这时候就需要把OX S的通知关掉。双指从触控板右侧滑入,呼出“通知中心”,在最顶部有一个“显示提示和横幅”的开关,关掉就会禁止通知,不过第二天会自动恢复这个通知设置。

  更简单的做法是按住option键单击屏幕右上角的“通知”图标。

122.Finder的工具栏

  我们可以把文件和程序拖到Finder的工具栏上,以便随时打开。但是想移除时会发现单击鼠标拖动是没法把这些图标移除的,这时候只要在单击拖动时加上command,你就会发现这些图标被销毁了。

123.Spotlight搜索时文件的定位

  用Spotlight搜索的时候,搜到文件时,我们有时候会需要打开该文件所在的文件夹,这时候按住command*键,单击文件即可打开Finder,并定位到该文件所在文件夹。

124.重新启动Finder

  Finder是OS X系统中的常驻程序,一般不需要退出,如果想重新启动Finder,有一个简单的方式:按住option键,右键单击Dock上的Finder图标,底部菜单会出现“重新开启”的选项,单击即可。同样的操作对其他Dock上的程序是强制退出。

125.屏幕画中画

  之前介绍过屏幕放大功能,也就是通过option+command++/-可以放大和缩小屏幕,使用control+滚轮也可以。

  不过这只是放大屏幕方式的一种表现形式,我们还可以通过辅助设置改为画中画模式,打开“系统偏好设置”→“缩放”→“缩放样式”,把全屏幕改为画中画即可,效果大家自己看吧。

126.粘贴纯文本

  我们在网页或其他文档上复制文字的时候,会把文字格式一并复制下来,command+v会把文字格式都粘贴过去,如果我们只想粘贴纯文本,可以使用shift+option+command+v,大部分软件都支持这种方式复制纯文本。

127.终端命令lsof

  有用户问,在倾倒废纸篓的时候,经常会提示该文件还在使用,不能删除,但是又不知道哪个程序在用,怎么办?

  Unix下有一个命令叫做lsof,名字是list open files的缩写,顾名思义,就是查看打开的文件,在终端里输入lsof文件名,就可以找到打开这个文件的程序。关掉程序,就可以正常删除文件了。当然lsof还有很多丰富的指令,感兴趣的用户自行Google吧。

128.AirDrop的有线传输

  AirDrop默认只能通过Wi-Fi来传文件,如果电脑已经连了网线,但是没开Wi-Fi就不能用AirDrop了,有一个办法可以打开AirDrop通过有线传文件的特征。打开终端输入:

defaults write com.apple.NetworkBrowser BrowseAllInterfaces 1

  然后选中Dock栏的Finder,按住option键,然后右键单击Finder图标,单击底部菜单项“重新开启”,Finder重启之后,即使你的电脑没开Wi-Fi,也可以用AirDrop给别人分享传文件了。

129.切换程序时实现预览功能

  通过command+tab可以实现程序之间的切换,如果我们想在切换到某个程序的时候看看该程序组都在显示什么,可以按住command的同时按数字键1或上下方向键,系统会调出该程序的Exposé模式,这时你可以放开所有按键,用鼠标或方向键选择显示哪个程序窗口。

130.Spotlight检索的高级技巧

kind:文件类型——搜索关键字

比如:

kind:app——搜索应用程序
kind:bookmark——搜索书签和历史记录
kind:contact——搜索联系人
kind:document——搜索各类文档
kind:word——搜索word
kind:pages——搜索pages
kind:key——搜索keynote
kind:email——搜索email
kind:event——搜索日历事件
kind:folder——搜索文件夹
kind:movies——搜索视频
kind:music——搜索音乐
kind:pdf——搜索pdf文件
kind:pic——搜索图片
……
date:today——查看今天创建或修改的文件
date:yesterday——查看昨天创建或修改的文件
date:2013-05-01——查看2013年5月1日创建或修改的文件
kind:key Mac -Windows

  也可以这样写:

kind:key Mac NOT Windows

  我们可以使用+或-进行条件表达式求值,也可以通过NOT、AND和OR来检索,不过后者一定要大写,否则会被当做搜索内容处理。

  有了以上4种搜索方式,天下再无搜不到的文档!


相关图书

ChatGPT与AIGC生产力工具实践 智慧共生
ChatGPT与AIGC生产力工具实践 智慧共生
专利写作:从创意到变现
专利写作:从创意到变现
产品经理方法论——构建完整的产品知识体系(第2版)
产品经理方法论——构建完整的产品知识体系(第2版)
程序员的README
程序员的README
架构思维:从程序员到CTO
架构思维:从程序员到CTO
开发者关系实践指南
开发者关系实践指南

相关文章

相关课程