与 Bryan Carter 的程序员访谈






4.92/5 (6投票s)
欢迎阅读我们正在进行的 Code Project 系列访谈,我们将在其中与开发者探讨他们的背景、项目、兴趣和个人癖好。在本期访谈中,我们与 Bryan Carter 对话,他分享了他在苹果公司编写 HyperCard 堆栈的日子里的故事。
欢迎阅读我们正在进行的 Code Project 系列访谈,我们将在其中与开发者探讨他们的背景、项目、兴趣和个人癖好。在本期访谈中,我们与 Bryan Carter 对话,他分享了他在苹果公司编写 HyperCard 堆栈的日子里的故事。
你是谁?
我叫 Bryan Carter。我住在美国西北部。我是一家私人金融机构的程序员/系统分析师。
您做什么?
我曾在 80 年代末到 90 年代末在苹果公司工作,参与了多个 Mac 系统、硬件和操作系统以及相关外设,包括 Color OneScanner。我的职责是集成质量(质量保证)和测试产品主管。
在惠普公司(90 年代末到 00 年代初),我参与了多款 彩色 LaserJet 打印机,其中有 CLJ8550。
我在 2000 年代初到中期成为一名“专业学生”,最终完成了我的计算机信息系统学士学位。
如前所述,我目前在一家私人金融机构工作,至今已有 6 年。
这些年来,我还参与了许多非营利项目。在圣克拉拉县公共图书馆阅读理解项目(1989 年至 1992 年)中,我使用 HyperCard 编写了一系列模块,帮助 3 至 83 岁的读者学习英语,包括英语作为第二语言 (ESL)。在使用的 2 年多时间里,有超过 500 名成功“毕业生”。
Chris Maunder 邀请我进行一次程序员访谈,因为我在休息室发布了一些过去的编程经历。问题是:这里有人使用 AppleScript 编程过吗?
在那个“回答”中,我声称我在苹果公司工作期间,启动了苹果的“iProduct”命名方案,这个方案花了 10 年时间才随着 iMac 的推出而“开花结果”(被广泛使用)。
我创建了有史以来第一个基于 HyperCard 的电子邮件服务器/客户端系统,并设计了有史以来第一个“智能”的基于 HyperCard 的系统,即 HyperKiosk(下文将详细介绍)。在其鼎盛时期,它曾在全国各地的多个计算机贸易展上使用。
我没有提到的是(在上面的 URL 中)我创建了有史以来第一个完整的贸易展信息亭系统,或称 HyperKiosk(它是用 HyperCard 制作的)。现在,这个 HyperKiosk 的起源是当时的苹果人机界面小组 (HIG),该团队设计了 Mac GUI 的行为方式,而我曾是其中的一员。
我的 HyperKiosk 不仅仅包含与图形平面图绑定的供应商信息,您可以搜索和点击。HyperKiosk 拥有:
HyperMail - 用于参会者和供应商的展会内电子邮件;预注册的参与者在签到时会获得一个特殊密码。新注册者将被录入并提供密码。
HyperSpots - 突出显示当地餐厅和娱乐选项(他们为“广告”支付 20 美元)。您输入食物类别,它会显示一个列表,按距展会中心的距离排序。
HyperSchedule - 这让展会参与者最为惊叹。它允许注册者输入“标签”(是的,我当时就称它们为“标签”;也叫关键词),每个标签会根据他们对展会提供的各种研讨会的兴趣获得 1 [低] 到 5 [高] 的评分。他们甚至包括标记首选供应商和特殊活动供应商。
根据这些数据,为他们创建了建议行程。行程保存在“HyperServer”上(基本上是一个包含他们输入选择的 HyperCard 堆栈 [文件])。他们可以随时回来修改他们的标签,新的行程就会生成。
最棒的是,当参与者全天查看他们的行程时,如果供应商离开或有新的供应商加入,或者研讨会发生变化、取消、添加,他们都会在 HyperMail 中收到通知,告知有更新的行程可用。
HyperStuff(和 HyperWhiners!)- 参与者_喜欢_免费物品;谁不喜欢呢?后来的 HyperKiosk 引入了 HyperStuff,供应商会输入一件产品进行抽奖,并提出一些问题。参与者回答这些问题后即可参与抽奖。姓名被“抽出”(我使用 HyperTalk 的 Random 生成器获得一个数字,然后将其四舍五入到最近的参与者内部序列号),参与者会收到一封 HyperMail,告知他们中奖,并要求他们在指定时间到供应商处领取奖品。
有些人质疑较大金额奖品的所谓中奖者,因此我们引入了“HyperAuditors”,一个由志愿技术专业人员组成的团队,他们“验证”代码的真实性,以及一名志愿 CPA(我的一个亲密朋友),他“验证”中奖者。不知何故,HyperKiosk “意识到”那些没有经常中奖的“HyperWhiner”参与者。 ;-)
好的,最大规模的安装(开始时拥有最多的 Mac 工作站和最多的用户)是 1992 年的旧金山 MacWorld 大会。当时推出了一款新产品,它允许一种形式的无线网络连接。基本上,它是一种用于收发 AppleTalk 网络协议信号的红外设备。
MacWorld 大会在莫斯康中心举行。它有自动扶梯将您从地面层带到展厅。在苹果工作期间,我让供应商捐赠了 6 台这些无线奇迹设备。我将自动扶梯顶部的 Mac 与展厅内的 Mac 进行“无线组网”(80 英尺的距离),其中一个工作站距离 200 英尺;这在当时是一件大事。
这一切都太棒了!……直到下午 3:00 到 4:33,阳光透过玻璃门厅区域_直接_照射到楼下自动扶梯的红外传感器上,接下来的三天每天都是如此。我们最初遇到这种情况时都笑得前仰后合。解决方案:在那段时间里运行备用 AppleTalk 电缆。
好吧,除了你们都在喋喋不休地谈论它之外,这与 CodeProject 有什么关系呢?
一个非常棒的问题!
HyperCode[.com]!
我创建了有史以来第一个“在线”图形/媒体丰富的 CodeProject!!但我们称之为“HyperCode”。一个示例(HyperCard/HyperTalk)代码(“堆栈”)、文章、消息等内容的存储库,全部都在 HyperCard 中。注意:在 HyperCard 中,文件被称为“堆栈”。堆栈基本上是一个自包含的版本(以及其中的所有功能),相当于我们现在所知的网站。
好的,“在线”是相对而言的,它是一个由 5 台基于局域网的 Mac 组成的组,其中有一台单服务器 Mac(由我控制)连接到苹果公司当时的内部全球网络,名为 AppleLink。
“超级黑客”(HyperCard 编码员/程序员)会来到 iHUG 会议,访问他们的消息,获取示例堆栈/代码,阅读或提交一篇关于某个主题的文章——当然,所有这些都与 HyperCard 相关。我记得,在 1993 年我关闭它时,我们总共有 2,000 名成员,8,300 个堆栈,大约 4,800 篇文章,以及超过 75,000 条消息。
当前项目
我目前正在进行一个我称之为 C.H.A.S.E. 的志愿项目,它是 Computer-Human Adaptive Syndactic Ecphasis 的缩写。“Computer-Human Adaptive”意味着计算机需要适应使用它的人。“Syndactic”表示“数字”,我们的手指(和手)有时就是这样称呼的。“Ecphasis”是“明确的声明”。
我正在编写原型软件,使用一个感知相机将数据发送到计算机,这些数据记录了相机检测范围(3 英寸到 18 英寸)内手指和手的动作。然后这些记录的动作数据可以被用于(编程)让计算机执行任务/动作,这是使用者通过其手指(syndactics)明确声明(echpasis)他们想要完成的事情。
这个项目是针对那些手指和手有身体障碍/残疾的人。这些残疾包括关节炎、腕管综合征,以及更具挑战性的脑瘫等。
想想一个患有脑瘫的人。令人沮丧的是,他们的手指和手的活动和使用都受到限制。有些手指甚至可能因为缺乏我们大多数人所拥有的精细肌肉控制而“粘”在一起。
简而言之,我旨在运用我的专业技能,为那些更应获得科技带来的福祉的人们带来祝福,甚至比我所获得的祝福更多。我希望能够让其他人更好地追逐他们的梦想,甚至比我做得更好。
您的开发环境是什么?
我有两个开发环境:工作和家庭。
工作:带有 Visual Studio 某个版本的 Windows 系统。
家庭:Mac OS X,带有一个虚拟机中的 Windows。在 Mac 端,我运行 Xcode,在 Windows 端,我运行 Visual Studio。
您对哪些新工具、语言或框架感兴趣?
嗯,这是另一个关于从苹果旧时光中学到新东西的故事……
我有一台带有单个软盘和 40MB 硬盘的 Mac IIfx(1990 年代时期)。
我使用 Mac Programmer's Workshop (MPW, 苹果当时的 IDE) 来对当时基于软盘的 Mac OS 安装盘运行一系列 Golden Master (GM) 验证工具,这耗时 36 小时,大部分时间都在“等待”,但其中很多都是枯燥的软盘“信息”截图的复制/粘贴。虽然加班费是两倍甚至四倍,但那时间真是太长了!
所以,在我“等待”的时候,我设置了另一台 Mac IIfx,深入研究了 MPW 的工具箱,发现了许多自动化人们手工操作的方法。
最终,在那个 36 小时的过程中,我将这个过程编程(自动化)缩短到总共 9.5 小时,结果相同。加上我 20 小时的“研究与再工程/编程”以及运行我的解决方案,我在 29.5 小时内完成了任务。我等待了另外 6.5 小时,以“验证”我的结果与“真实”的 master 版本。
第二天我向所有人展示,我可以在 9.5 小时内完成 GM 磁盘验证。
尽管大多数人都很高兴,但也并非所有人都把我当成了他们最好的朋友,因为我大大减少了他们所有加班的薪水。接下来的几个月里,在“Bandley 9”请了不少啤酒!
您最讨厌的编码习惯是什么?
不是个人癖好,而是偏爱驼峰式命名法。就这么简单。真的!
您是如何开始编程的?
大约在 1981 年,我有一台带有 BASIC 的 TRS-80。我编写了一个单词搜索谜题应用程序。这项工作的最终成果是 2 个单词搜索谜题,里面有当时 1982 届高中毕业班学生的姓氏,这些谜题被印在了学校 1982 年的年鉴中。这很酷,因为我的老师在我的年鉴上“批准”了这个项目(他的名字缩写)。当然,我在里面放了我自己的“彩蛋”单词,都是宗教相关的。因为我哥哥同年毕业(82 年),所以我的姓氏也默认被包括在内。
我的第一个真正的商业代码与一家公司合作,是这样的:
HyperCard 是苹果公司在 1987 年推出的一款产品。HyperCard 被宣传为“软件积木套装”。HyperCard 确实是我们现在所知的网站的前身。它具有图形、数据库功能、背景、卡片(页面)、媒体(声音、视频)和链接。简而言之,在其鼎盛时期,您可以用 HyperCard 完成现在用网站可以完成的所有事情。
当时我在苹果公司工作期间,我更多地成为了 HyperCard 在 Mac 社区(嗯,“全球”更准确!)的“拥护者”。
我实际上是被苹果公司聘为“复印员”,而且是合同工,在当时被称为苹果人机界面小组(HIG)的部门工作,这个小组定义了我们所知的 Mac 界面。嗯,严格来说,Larry Kenyon 是在 施乐帕洛阿尔托研究中心(xPARC)提出了这个界面。拉里(和其他人)被偷走了,呃,抱歉,“雇佣”了史蒂夫·乔布斯,从 xPARC 挖来的。拉里是我继父的堂弟;这个关系是我在 97 年离开苹果公司多年后才知道的。
我作为“复印员”的第一个“任务”是为一款代号为“WildCard”的产品复印 25 份用户手册。那时我 21 岁。虽然我四年前高中时在 TRS-80 上学过一年的 BASIC,但从那以后我就再也没有编程过电脑。
那时候复印机速度很慢,而且是双面打印,每分钟 20 单面页乘以 600 双面页。在那个巨大的施乐复印机所在的小“复印室”里,除了阅读这本 WildCard 用户手册 (WUM) 之外,没有_任何_其他事情可做。
我是在一个周三下午开始我的复印任务的。
那时,任何人都可以而且确实在苹果公司连续住上好几天。接下来的 5 天我就是这样做的。我只回家洗了一两次澡,换了衣服。
到了周一早上,我已经把整本 WUM 读了三遍,同时也完成了那 25 份复印(实际上我在周六凌晨 2 点就完成了;他们预计我下周三才能完成,考虑到白天复印室有多忙……)。简而言之,我很自信我记住了 WUM,甚至还没有使用过那个应用程序。
(注:如果当时 HIG 部门的任何人想“驳斥”这些内容,我有一份你们玩脱衣扑克(为内部活动制作的恶搞视频)的视频副本……以及一个 YouTube 帐户!)
在第一周,我被分派了其他各种“复印小弟”式的工作,但我的心思和热情都集中在这款 WildCard 应用程序上。
几个内部团队正在使用 WildCard 进行各种工作。我帮助这些团队解决了他们在使用 WildCard 时遇到的编程问题。
开发者社区是如何影响您的编码的?
这些年来,我基本上都是边学边做,从任何地方和任何资源中获取知识。没有一两个主要的导师影响。我不使用 Twitter、LinkedIn、GitHub、Facebook 或其他在线资源。
您会对一个新兴的程序员提供什么建议?
尽早拿到大学学位,尤其是在你尝试组建家庭之前。
选择一个(例如,新的编程语言)不会每 3 到 6 个月就变化的行业!