Macintosh演化史(一)

Macintosh1

那篇谈程序员写作的文章收获一筐好评,但我自觉并非上乘之作。有位读者语重心长的告诉我:「二师兄,如果你赶脚这篇《程序员与写作》还未达到上乘水准,那么恭喜你,你的潜力大大地,可劲挖」,是用钉耙挖么? 最近闲谈随笔较多,今天写点干货,谈谈 Mac 的演化史。

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

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

  1. System 时代: 1984——1997
  2. Mac OS 时代: 1997——2002
  3. OS X 时代: 2000——现在

今天我们先说说 System 时代。

System 时代


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

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

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

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

1985年System 2 发布,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的变革、新应用程序的增加、稳定性的提升和许多新特性。System 7开始支持虚拟内存和网络,并内建了协作多任务机制,而之前的Sytem 5和6都是通过独立的应用MultiFinder实现的。System 7还支持文件拖放操作,脚本语言AppleScript也在这个版本出现了。另外,System 7还是苹果公司第一个彩色的操作系统。

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

选择 Mac

imac

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

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

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

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

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

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

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

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

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

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

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


发现虾米 for Mac 上线了,于是推荐了一下,我对国内好的 Mac 应用总是充满敬意的。有位童靴回复:「已下,就差 Mac 了」。我觉得这种革#命乐观主义精神非常值得赞赏。我的下一个理想就是开发一款牛叉的 Mac 应用,不挣钱,但能够让无数人使用和分享。


文章内容来自微信公众账号:MacTalk
· 微信号:sagacity-mac
· 回复 m 可以查阅所有历史文章和Mac Tips
· Web站点:macshuo.com

*如果希望持续听MacTalk,点击{阅读原文}对作者进行小额赞助

杯具中的战斗杯

beiju

这两天写的有点累,本来想休息下,但是有槽不吐枉自为人,于是……

最近写了几篇文章,都及时贴到macshuo.com上了,结果被转的到处都是,尤其是「趣谈个人建站」那篇长文,被转到各种网站和媒体,好一点的加上来源和署名,再好一点的在微博上发的时候@你一下,但是大部分都特么的默默转载、默默复制、默默改名,默默的说来自互联网,艹,你们全家都互联网!

总之结果就是,没有一家媒体或网站吱一声说「我们想转载你的文章balabala……」,又不和你要钱你怕啥呢?还有些个人博客,没事复制来复制去的,你要自己看直接放Evernote或Pocket不就完了么,贴博客上干嘛呢,搞的更自个写的似的。

有位网友评价:

国内版权意识淡得一逼,之前的时候看到一些省级卫视直接使用自媒体发布在优酷的版权作品,还抹掉了来源。在国内已经习惯了免费,甚至很多人觉得直接复制显得自己牛逼。虽然很无奈,但能做的就只有支持正版、支持原创了。

我觉得这位网友说的算轻的,这其实就是要不要脸的问题,创作者幸辛苦苦写了很多东西,您拿过去改改署名和标题,打扮的和自家小姑娘似的,这不是流氓是什么?

其实这样的事情由来已久,我也懒得说了,反正内容传播的目的达到了,至于内容是谁创造的,根本木有人关心。引发今天吐槽的原因是另一件事,今天和图灵的编辑聊天,谈到了他们的电子书盗版问题。大家知道图灵除了传统书籍之外,开始销售pdf版本的电子书,并在每本书的页脚打印了这样一句话「图灵社区会员 XXX专享 尊重版权」,XXX就是购书者的真实姓名,这下您不好意思复制给别人了吧,毕竟每本书上都有您的名字啊。但依然盗的风风火火,要不要脸啊?

这些盗版的传播者恰恰是正版书籍的购买者,买了正版书籍,反而成了盗版的始作俑者,这特么简直是杯具中的战斗杯!

程序员不支持程序员,还能指望谁?


今天推荐一本专讲Mac技巧的书籍,叫做「Mac功夫」,有300多个Mac技巧和窍门,去图灵社区搜索即可,纸质书和电子书都有。我发现我在MacTalk讲过的Mac技巧,一部分内容是和这本书重合的。

如果您是Mac用户,手边放一本,效率高不费劲!

另外,再推荐一下郝培强的新作「新杂志」(iPad版),到App Store搜索「新杂志」下载即可,App和里面的杂志都是免费的,其中的MacTalk杂志下载量依然排行第二,下载量还没超过2000,被胖子的Tiny4Cocoa落下一个身位,你们对得起谁?

说说我和Mac(二)

Panther-X.3-picture

回复 98 可以看 《说说我和Mac(一)》,今天是二。

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

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

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

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

昨天谈了第一季第二季的想法,有读者回复,一季一季也不错,间歇期间可以出点题目之类让大家投稿,分享大家的想法。
这个思路,我觉得不错。

今日Mac技巧:

说完了Objective-C的Category,今天简单说说Protocol。

Protocol,简单来说就是一系列不属于任何类的方法列表,其中声明的方法可以被任何类实现。这种模式一般称为代理(delegation)模式。你通过Protocol定义各种行为,在不同的场景采用不同的实现方式。在iOS和OS X开发中,Apple采用了大量的代理模式来实现MVC中View和Controller的解耦。
 
定义Protocol很简单,在声明文件(h文件)中通过关键字@protocol定义,然后给出Protocol的名称,方法列表,然后用@end表示Protocol结束。在@end指令结束之前定义的方法,都属于这个Protocol。例如:

@protocol ProcessDataDelegate <NSObject>
@required
- (void) processSuccessful: (BOOL)success;
@optional
- (id) submitOrder: (NSNumber *) orderid;
@end

 
以上代码可以单独放在一个h文件中,也可以写在相关类的h文件中,可以视具体情况而定。该Protocol包含两个方法,processSuccessful和submitOrder。这里还有两个关键字,@required和@optional,表示如果要实现这个协议,那么processSuccessful方法是必须要实现的,submitOrder则是可选的,这两个注解关键字是在Objective-C 2.0之后加入的语法特性。如果不注明,那么方法默认是@required的,必须实现。
 
那么如何实现这个Protocol呢?创建一个普通的Objective-C类,取名为TestAppDelegate,这时会生成一个h文件和m文件。在h文件中引入包含Protocol的h文件,之后声明采用这个Protocol即可,如下:

@interface TestAppDelegate : NSObject<ProcessDataDelegate>;
@end

用尖括号(<…>)括起来的ProcessDataDelegate就是我们创建的Protocol。如果要采用多个Protocol,可以在尖括号内引入多个Protocol名称,并用逗号隔开即可。例如<ProcessDataDelegate,xxxDelegate>
 m文件如下:

@implementation TestAppDelegate
- (void) processSuccessful: (BOOL)success{
    if (success) {
        NSLog(@"成功");
    }else {
          NSLog(@"失败");
    }
}   
@end 

由于submitOrder方法是可选的,所以我们可以只实现processSuccessful。

说说我和Mac(一)

Jaguar

30岁之后,时间仿佛开闸的河水一样滚滚而去,感觉自己浪费的时间太多。我们不得不承认,先知先觉的人会比我们领先10年甚至更多的身位。进入二十一世纪,世界迎来了信息时代,人才竞争尤其激烈,与其他人感受不同的是,我觉得中国涌现出了很多非常厉害的年轻人,例如微信账号“道哥的黑板报”的host,从大学少年班起步,23岁即成为阿里巴巴集团最年轻的技术专家,端的是少年英雄。但是放眼未来,无论现在的你是年少成名还是大器晚成还是默默无闻,都需要不停的奔跑和追赶。

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

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

软件是BS架构的,基于JDK1.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前调音和谱曲的画面。那个兄弟叫老郭,专门为软件做音乐,经常对我们这些不懂艺术的程序猿说,嗯,你们都是土鳖,就知道编程,多无聊。当时我想,这话反过来说,也成!

待续,这给系列不想一口气写下去,穿插着写吧。

今日Mac技巧:

1、神奇的option键

以前很多期介绍过option相关的快捷键和功能,比如选中多个文件option+右键,可以显示检查器,按住option点击顶部菜单的电池会显示电池状况,点击wifi会显示网络状况,点击备份…好吧,你们都可以点点试试。别忘了最左边的苹果按钮,option+点击,在下拉菜单点关机、重启都不提示的。

option+点击Dock上活动的程序会隐藏,option+拖拽文件可以复制,按住option输入=输出是≠,option+shift+=,输出是±

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

2、推荐一款音乐处理软件XLD

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

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

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