对话 iPod 之父 Tony Fadell:我们曾想在三十年前创造智能手机

航天仿真必看:如何用SOFA库实现高精度GCRS-ITRS坐标转换?避坑指南 本文深入解析了航天仿真中高精度GCRS-ITRS坐标转换的关键技术,重点介绍了SOFA库在天球系与轨道系转换中的权威应用。通过对比传统方法的误差来源,详细阐述了SOFA库的转换算法优势、工程实现步骤及误差控制策略,为航天器轨道仿真提供毫米级精度的解决方案。 阅读详情

作者 | 王启隆       责编 | 唐小引

出品 | 《新程序员》编辑部

Tony Fadell

做有价值的事,虽不容易,但有方法。世界上的每一位开发者都想创造价值,实现自我,但有的人苦于生计、忙碌奔波,有的人畏惧失败、无法自拔,还有的人,仍处于对自我的怀疑之中。

改变世界的产品——iPhone,在它光鲜风靡的背后,有着一次鲜为人知的尝试。一切起于 1989 年,在还没有人使用(及没有人觉得有必要使用)手机的年代,苹果员工 Marc Porat(马克·波拉特)手绘了一张图,拥有触摸屏,集手机和传真机于一体,可以让用户随时随地玩游戏、看电影,以及购买飞机票。

为了将上面这个设想变成现实,Marc 联合创立了一家名为 General Magic 的公司,后来的 Android 创始人 Andy Rubin(安迪·鲁宾)、eBay 创始人 Pierre Omidyar(皮埃尔·奥米迪亚)都曾是这里的员工。

那一年,Steve Jobs(史蒂夫·乔布斯)早已离开苹果公司,General Magic 试图在一个 Wi-Fi 都还未诞生的年代制造一个智能的个人通讯器。九十年代的社会无法接受这一超前的概念,这一概念也没有充足的技术支撑,甚至 General Magic 自己都还没能完全理解它。

General Magic 也是 Tony Fadell 的第一份工作。三十年前,Tony Fadell(托尼·法德尔,以下简称 Tony)毕业于密歇根大学,获得了计算机工程学士学位。大学毕业后,Tony 在苹果公司分拆的 General Magic 找到了第一份工作,他在这段经历中结识了一批硅谷的青年才俊,并直面了人生的第一场痛彻心扉的灾难。

为“这次跨时代的尝试”选择芯片

General Magic 失败了,Tony 也沉寂了下来,为下一次跨时代的革命开始准备。他加入了飞利浦公司,开始在每个团队、每个产品、每场失败中学习如何设计、制造、营销和销售人们真正想要的东西。

在飞利浦的经历让 Tony 重新鼓起了勇气,创办了 Fuse 公司,开始研究生产可以播放 CD、MP3 和 DVD 的数字家庭音乐和视频系统。不幸的是,2000 年互联网 1.0 泡沫破裂,源源不断的投资者资金一夜之间枯竭,Tony 的努力再次成为了泡影。

就在 Tony 的创业公司即将倒闭之际,苹果公司也正处于崩溃的边缘。2001 年,乔布斯为了销售麦金塔电脑,决定制作一款数字音乐播放器来给麦金塔打广告。Tony 带着他两次失败后的经验向乔布斯提出了自己的想法,那一年的 10  月,他们向全世界推出了 iPod。Tony 通过 iPod 拯救了当时深陷困境的苹果公司,从此被称为“iPod 之父”。

随后,Tony 开始负责前三代 iPhone 的开发并监督所有 iPhone 硬件、固件和配件的开发。最终他离开了苹果,成为了开创“物联网”的公司 Nest 的创始人,三度改变世界。2016 年,《时代》杂志将 Nest Learning Thermostat、iPod 和 iPhone 评为“有史以来最具影响力的 50 款工具”中的三款。

如今的 Tony 是一名作家,他将自己的经验和智慧提炼成文字,写就新书《创造:用非传统方式做有价值的事》。这位大师不仅会将自己的领导力、设计、创业、指导、决策以及遭遇过的毁灭性失败所得的经验教训写在书中,还将用一场对话为我们分享他的“非传统方式”。优快云《新程序员》本次访谈 Tony Fadell,他以肺腑之言将自己史诗般的职业生涯提炼成了令人耳目一新的人生建议。

我们曾想在三十年前创造智能手机

《新程序员》:您曾和世界各地许多有才华的开发者合作过,回忆往昔,哪位开发者对您的影响最大?您印象中哪位开发者拥有一名优秀的程序员或开发者应该具备的品质和能力?

Tony:从编程能力这个角度去考虑的话,我首先想到了和我合作过的 Bill Atkinson(比尔·阿特金森,苹果 Lisa 电脑 GUI 设计者)以及 Andy Hertzfeld(安迪·赫兹菲尔德,Google+ 开发人员,Macintosh 早期开发人员),然后还有 Darin Adler(达林·阿德勒,苹果 System7 操作系统技术负责人)与英年早逝的 Phillip Goldman(菲尔·戈德曼,Macintosh 早期开发人员,WebTV 共同创始人)。

这些人可以说是我在软件编程方面的导师,与他们共事时,我常会折服于他们的能力和专业知识,他们总能为用户着想,并确保软件的体系结构是正确的。成功的开发者总在优化的路上,唯有不断地优化才能到达至臻。

现在这个时代,鲜有新的代码被编写出来,开发者们习惯于将大量的区块堆叠在彼此的开源区块之上,而非创建单个模块。回忆我还在 General Magic 工作的时候,Linux 起步没多久,九十年代的开源运动才刚刚开始;当时,我的软件编程导师对自由软件抱有怀疑态度,而只过了几年,他们便改变了主意。

但是,那个年代的开拓者们并没有急于使用开源软件,而是继续创造属于自己的东西。开源只是学习的途径,并非知识的搬运。如今,有太多人沉醉于区块的堆叠,他们没有真正理解代码,更没有从他人的代码中学到什么,我认为这是过去与现在的程序员之间的一大区别。

Tony Fadell 在 General Magic 的匆匆岁月

《新程序员》:您提到了 General Magic 公司,这家公司曾聚集了一批硅谷的传奇人物,被冠以“硅谷最重要的失败公司”。为什么它最终还是走向了失败的结局?

Tony:我建议所有人都看看一部关于 General Magic 的纪录片,电影的名字就叫“General Magic”,它很好地讲述了当年到底发生了什么。这部电影还有一个叫“General Magic the Movie”的网站专门介绍,我相信中国开发者们可以轻易搜索到它的普通话版本。总之,我建议人们都观看这部电影。

General Magic 曾想提前十五年——也就是在三十年前创造 iPhone。然而,那个年代的技术还没有准备好,社会还没有准备好,公司的人们也没有找对方向,这三个原因结合在一起导致了 General Magic 的失败。

那个年代的互联网还未兴起,更不存在移动数据,90 年代初的大众还不知道怎么在线下载电子邮件,不了解网购或者网络游戏,甚至于 General Magic 都没认识到核心问题与当时的社会有关,而是把一切归咎于技术不足。

况且,那个年代的处理器速度虽然达标,但电池续航时间还不够好,触摸屏和其他很多东西都还没有到位,General Magic 确实没有足够好的技术来创造它。还有一个问题,就是 General Magic 没掌握好正确的生产流程和产品管理,没找准当时的用户需求。

General Magic 曾沉陷于一个疯狂且有趣的沙盒中,试图为未来创造一些东西,但不是为遥远的未来,而是近在咫尺的未来。

《新程序员》:“我们曾想在三十年前创造智能手机”,您认为这是所有“创意产品”乃至“创意公司”的宿命吗?就像当年的贝尔实验室,他们也聚集了一批人才,创造了一些东西,但却在未来才发扬光大。您如何看待这个问题?

Tony:任何事物总会有先驱者。比如现在常讨论的自动驾驶汽车,关于它的话题起码有 10 多年了;然后就是 AR/VR 技术,我从 80 年代末就开始研究它了。所以这种“早期的探索”总是会存在的,有时候就是想法到位了,但对应的技术和社会都不正确。

所谓成功的产品,就是能找到社会上存在且足够多的问题,并解决这些问题,而十五年前的社会环境和技术条件就是刚刚好到足以在 iPhone 上正确解决问题。十五年前还没有 3G 网络,屏幕和摄像头等硬件条件也很差,苹果公司更是还没开始做应用商店,但人们就是能够在那个年代真正感受到  iPhone 这款新设备和新技术带来的前景。

所以,时机就是一切,如果想法诞生得太早,就会演变成类似于 General Magic 的结果;反之,如果想法诞生得太晚,那创意早就被其他人做出来了。就好比方说 iPod ,iPod 一开始的设计方案里是包含硬盘的,但最后却摆脱了硬盘。之后它的诞生赶上了一个正确的时代,硬盘技术在当时已经够好了,但对于这款产品来说还不够好,对于大规模普及来说还不够。所以,成功的产品必须要稍微地超前时代,但又不能太超前于市场和技术。

《新程序员》:iPhone 也是一款凝聚了创意的产品。您现在仍旧是 iPhone 的用户吗?现在许多人觉得 iPhone 的创新乏善可陈,越来越没有惊喜可言,您对现在的 iPhone 是什么样的看法?

Tony:我依旧还是 iPhone 的用户,但我用的是一部 iPhone 12;我没有 iPhone 13,也不打算购买 iPhone 14。要说原因的话,主要是我很关心产品的新特性,而我只能看到软件而非硬件方面的创新。

或许有很多人会认为有 iPhone 或没有 iPhone 是一种地位的象征,但又有谁会关心一名 iPhone 用户用的是 iPhone 12 还是 iPhone 14 呢?没人关心这个。所以,我们不总是需要最新或者最时尚的产品,因为其他人也看不出区别。

我对手机的观点和电脑差不多,我们不会每年都买一台新的笔记本电脑,但我们肯定得有一台手机或者电脑;现在的 iPhone 就很像笔记本电脑,缓慢的更新换代曾经发生在电脑市场上,现在不过是历史在手机市场又重演了一遍而已,我认为这是科技发展的正常曲线。

但归根结底,从创新的角度来看,我认为手机硬件做到了这个水平是没问题的。对现在的用户来说,最重要的始终是软件和网络。

曾差点被“提前创造出来”的 iPhone

《新程序员》:近些年来,打着各种噱头的创业公司层出不穷,各类创意产品开始放弃寻找需求,而是主动为用户创造需求。我们该如何判断一款硬件产品解决的是真实需求还是虚假需求呢?

Tony:事实上,开发者是很难在真正发布一件产品之前就预知其能否满足用户需求的,所以最好在最初的版本就让自己的产品与别人有所不同。而且,有时候不一定要在产品方面直接创新,仅仅是在市场零售、服务、融资以及商业模式上改变,就能让用户体验大相径庭。

显然,每个人是应该在产品上做出创新,创造出真正伟大的东西。但世界上没有人能预知自己的成功,能将产品引向成功的是开发者对市场和用户的理解,而不是无数的数据和测试。

想一想 iPhone 还没诞生的那个年代吧,人们随身携带着手机,口袋里塞着能播放音乐和视频的便携播放器,背包里放着笔记本电脑来工作和上网……在那个年代,如果想要通讯、娱乐和生产力,就必须同时带上三个设备,而 iPhone 把这些东西都包装在一个可以随身携带的产品里,这就是 iPhone 成功的原因。人们其实往往很难发现自己的需求,General Magic 的失败就在于社会还没认识到自己需要一台 iPhone,而寻找用户的需求就是一家公司该去做的。

《新程序员》:这和你创立 Nest Labs 时的心态是一样的吗?当时你也不知道 Nest 能否成功?

Tony:是的,Nest 从产品发布的第一天开始就供不应求,一直持续了两三年才稳定下来。

对于初创公司,这就是一个很好的迹象,表明产品与目标受众产生了强烈的共鸣,而且受众数量还非常大。所以我觉得每家初创公司都可以试着去预售产品,看看人们对自己的产品有什么反应,这样就能获得一些早期的客户反应。但也不能一直吊人胃口,正式发布产品是很重要的,只要当正式发布产品的时候,公司才能够真正意识到自己的市场营销和其他一切沟通是否足够,也许会因为供不应求导致客户大排长龙,但只有这样才能得到有效的反馈。

开创了“物联网”的 Nest

被动的人永远不会学到东西

《新程序员》:如今,中国开发者群体常在选择做技术还是做管理之间陷入两难。对此,您有什么样的建议?有哪些难忘的经历可以与我们分享?

Tony:我认为这个问题的关键在于提问者的个人动机。我自己就放弃了编程,因为我早已不再像以前一样真正地编程了。在我离开 General Magic 之后,我开始研究产品开发和用户体验,并意识到只有成为管理层才能完全实现自己的想法。

坦白地说,当我不再和 General Magic 的那帮人才工作之后时,我才开始认识到自己并不是一个优秀的软件程序员——我只能跟上他们工作的步伐,但我在编程方面远不及他们。从此之后,我开始倾向于销售、市场营销和产品管理,从那个层面开始构建设计产品与改善用户体验,不再担心所有的软件架构。

所以,如果只是为了名声和财富就想转型管理层,那也可以选择去成为一名杰出的个人贡献者——Andy Hertzfeld 和 Bill Atkinson 就是那种团队领导一般的角色,他们不是公司的经理,但却能够激励身边的程序员,他们每天有 95% 的时间都在编程。总有很多人认为,当上了管理层就能改变许多事物,但其实一旦成为了经理,就很可能与我一样不再编程,并加深和工程团队之间的鸿沟。总之,有时候也可以去尝试成为团队的领导,而非转型当经理。

《新程序员》:许多人都会在为自己做决定的时候陷入迷茫。您迄今为止也作出了许多抉择,能给中国的开发者一些关于工作上的选择以及跳槽的建议吗?

Tony:我发现世界各地都在被类似的问题侵蚀,因为很多人对项目缺乏奉献精神。我认为每个人都应该保证自己能完成承诺,在项目的最后期限坚持到底,而非撒手不管,跳槽离开。

这不只是公司合同或者契约精神的问题,这是开发者之间的普遍信任问题,放弃项目既会影响到个人的声誉,也会影响到参与项目的所有人。

开发者永远不应该把自己当成一名生产代码的工人,可以随去随留,开发者应是一个项目的创造者和牺牲者。如果有人把自己视为一只可有可无的零件,那要么是他对自我的价值产生了错误认识,要么是他的公司或经理产生了错误的判断;如果一个人像机器上的齿轮一样,每天机械式地编码和打字,唯一考虑的事情就是能否在截止日期前完成任务,那他和公司之间形成的就是一种交易式的互动,而不是建立关系的互动,真正的团队之间的关系不该是这样的。

Tony 在苹果团队的时光

《新程序员》:但有的时候,一个项目可以出现数十甚至数百人,不是每个人都是决策者,普通人怎么能够达成您所说的这种心态呢?

Tony:还是和我刚才说的一样,一个人得对自己的价值产生正确的判断,当对自己感到迷茫时,最好的做法就是提问。我在 General Magic 的时候拿的是底薪,在最底层为那些决策层们力所能及地编写着代码,他们会反复地提出要求并在有些时候驳回我写出的代码。于是,为了理解自己哪里做得不够好,我就会去提问,让他们告诉我某个系统的架构是如何工作的。

难道人类不应该只是为了好奇而问问题吗?被动的人永远不会学到东西,如果无法通过身边的人来帮助自己的学习和成长,就会永远停滞不前。所以,每个人都应该多尝试去问“为什么?”,为什么产品或市场会这样?为什么我们要用这段代码?通过询问他人看待事情的方式,从而学习到新的事物。如果不学习,就不存在成长,也就失去了乐趣,每天都是苦差事。

《新程序员》:您曾说自己一直从灵魂深处抵制微软的操作系统,对于微软操作系统近些年来的变化,您有何感想?

Tony:微软已经不再是潮流的盲从者了,他们确实在创造一些新的事物。Windows 曾经在很多方面都模仿了 Mac,然后微软在这一基础上经营了更好的业务,采取了更加专注于业务的市场策略,而不是专注于消费者。现在微软通过他们的服务产品做出了一些真正的创新,比如 Hololens 就是个很好的例子,在我看来,微软确实变成了一家与 15 年前完全不同的公司。

《新程序员》:您曾在《创造》中提到,导师能在开发者的成长中扮演着重要的角色。那么对于开发者的个人成长和个人进步,还有其他方式吗?我们又该需要如何遇见自己的良师益友呢?

Tony:如果想找到自己的导师,最好是能和自己真正欣赏的团队一起工作。因为这个团队肯定创造了一些东西让人深受启发,或者是让人感觉到这些东西正在改变世界,抑或是做了一些非常有创意的事情才能令人欣赏。

找到自己欣赏的团队之后,自然就会开始思考“他们是怎么做到的?”,而如果能和自己欣赏的人一同工作,就可以与其学习,在这个过程中找到自己的导师。经验丰富的开发者会以不同的方式看待自己的世界,他们看待项目的角度和方式会与人非常不同。从人身上直接学到的东西,肯定会比在学校或开源网站学到的更多。

改变世界总会承担风险和失败

《新程序员》:您在《创造》中提到,iPod 最开始的诞生居然是为了销售麦金塔电脑,这个决定由史蒂夫·乔布斯做出,且事实证明这是一个错误的决定。您对此有着什么样的感受?我们要如何从失败中汲取经验?

Tony:每个人都会作出错误的决定,我的印象里史蒂夫可能有 50% 的决策是错误的——至少在产品方面。其实苹果的幕后有很多失败的产品,只有真正成功的产品才会问世,所以想要改变世界的话,承担风险是必然的,史蒂夫就能抗下这些风险,他从这些错误中吸取教训,继续前进,创造了真正改变这个星球的东西。

但是,如果一个人害怕犯错,总是试图规避风险,那他不过是在模仿那些真正的领导者罢了;在我看来,领导者是不惧失败的,如果想真正创造历史,那就难免遭遇失败。

我在 Nset Labs 也有类似的经历,当时开发团队用了三代 Nest 才算出了正确的公式,第一代和第二代产品都没有完全解决问题,但到了第三代,Nest 就开始非常接近完美了。正如我前面所说的,开发到一定程度之后,与其继续沉浸于数据的海洋中试错,不如正式发布产品;正式发布产品往往会发现很多原先未知的问题,从这些问题中学习,从失败之中汲取经验,并做好下一代产品。

不再辉煌的 iPod

《新程序员》:您经历过苹果、谷歌和飞利浦三种截然不同的企业文化,能谈谈它们之间的区别和你的个人看法吗?

Tony:我觉得判断企业文化的异同点,主要是通过观察一个项目的领导是否愿意为了创新做出冒险。通常一个产品成功落地需要经历三个版本:处于第一个版本的产品,无论是软件还是硬件,都需要找到和市场的契合度,测试创造者的直觉是否正确;到了第二个版本,就得开始在原先的基础上完善产品,并开始寻找其商业价值;而产品的最终版本,就是要去真正实现商业目标,完成和所有客户的接触,做好对客户的服务和零售。

飞利浦总是希望每件事都能在第一次尝试时取得成功,他们有很多革命性的想法,但他们总相信自己要在第一个版本就能从商业上取得成功。

谷歌则不一样,谷歌的宗旨就是做一些很酷的东西,但如果第一次尝试就没有成功,最多第二次尝试就会放弃了。

至于苹果公司,他们会先确定公司的愿景是什么,无论前路有多么艰难,无论是否会赔钱,都会先为之付诸努力,然后到我所说的第三个版本的时候,苹果就会对产品重新评估一次,然后从这个节点开始继续或终止项目。正如我前面所说的,我认为开发者必须对产品和服务有奉献精神。

Tony Fadell 在飞利浦研发的 Philips Velo

《新程序员》:您还提到过,谷歌曾为所有员工在公司内提供免费零食,结果经常出现员工把大量零食私自带回家的情况。您认为这是企业文化导致的,还是所谓“人性的本质”?

Tony:我认为这当然是人类的天性。如果一个人长期得到免费的馈赠,那么他自然会认为这是一种理所当然的权利。所以说,公司的方向不能和员工所得到的事物偏离太远,这会造成一种失衡。

比方说当今的经济环境下,数不胜数的公司开始削减员工,削减各种额外的员工,削减这类所谓的福利,这都是因为他们“失衡”了。这和饮食是同样的道理,如果一个人暴饮暴食,变胖变懒,那他就不得不去节食和锻炼,去找到一种健康的平衡。健康的公司和健康的人是一样的,过多的福利和项目会导致失衡,美好的时光也会随着失衡而一去不复返。

《新程序员》:那么,根据您对中国开发者的了解,您对中国公司该如何形成一种企业文化有什么建议呢?

Tony:不要去模仿他人。很多公司对待开发者就像对待生产线上的产品一样,提供步骤让人机械化地重复工作,但如果公司想模仿所谓“成功的企业文化”,按照“成功企业的步骤”去一步步地做,那结果就和之前没任何区别,员工依旧会像机器上的齿轮一样重复运作,没有任何改变。

如果想变成一名创新者而非模仿者,那就得和微信与抖音一样,去真正地改变一些事情;去创新,而不仅仅是复制,用全新的方式思考,并用那种方式创造文化。

《新程序员》:最后,您对中国有着什么样的渊源或认知?想对中国的读者和开发者说点什么?

Tony:我非常羡慕那些在中国开发的硬件,因为中国的工业机器完善、工作流程分明、供应商和制造商不计其数,还拥有创造各种小零件或小组件的能力。现在的硅谷已经没有这种感觉了,大多数的创新在二十多年前就转移到了亚洲。在中国,这种资源的调控能力十分令人惊奇,并且中国有着强大的地域优势,人们可以从街道上的建筑物或就近的城市,去与那些实际上创造了这些奇迹的人一起工作,我认为这是工程师和开发者应该珍惜的东西,因为其实世界上大多数地方都没有这样的奢侈。

然后就是,我刚刚提到过文化,中国有着悠久的传统,失败在传统文化中被视为一件坏事。我还在上学的时候,也被教育过“失败是可怕的”,因为我们不能考试不及格,否则就会面临很坏的后果;但如果一个人永远处于未知,也就无法找到成功。

所以说,最优秀的领导者,尤其是那些我在中国认识的、和我共事过的领导者,都懂得从失败之中学习;他们失败往往不是因为他们缺乏努力或执行力,而是想法出现了错误,所以分析自己的失败,才能找出自己想法中的缺陷,从而找准正确的方向。

《新程序员》:无论是开发者或其他人,都会害怕失败,因为总是担心谋生的问题。他们中的有些人也有改变世界的想法,想拥有更高的眼界,但总是困于谋生。

Tony:我的职业生涯中有十年是失败的,我在《创造》中就写了这些。我不会将失败视为世界末日,失败只会让我变得更加情绪化,让我更想去学习,去从泥沼中爬起来,搭建起知识的阶梯。所以,不要害怕失败,有时候我们必须接受失败,否则就无法真正理解自己先前不知道的东西,我认为这是大多数传统文化需要改善的最重要的东西。

Tony Fadell《创造》

多模态情感识别(MER)数据集实战指南:从IEMOCAP到应用落地 本文提供了多模态情感识别(MER)从数据集到应用落地的完整实战指南。以经典IEMOCAP数据集为例,详细讲解了音频、视觉、文本等多模态数据的预处理、特征提取与融合技术,并分享了模型训练调优心得及面向智能客服、在线教育等场景的部署考量,帮助开发者快速构建高效可用的MER系统。 阅读详情

相关推荐

Windows 10/11 注册表 ProfileImagePath 误改修复:3步恢复用户登录与数据安全

本文详细介绍了Windows 10/11系统中因误改注册表ProfileImagePath键值导致用户无法登录的修复方法。通过3个关键步骤,包括定位SID、安全修复注册表项及验证处理,帮助用户恢复登录并保障数据安全。特别强调了操作顺序的重要性以避免数据丢失,适用于各类Windows用户账户登录错误的紧急处理。

chuoshao2508的博客 404

消灭低头族!这三大科技创新正将智能手机送入坟墓 | 精选

▼点击上方蓝字 关注网易智能为你解读AI领域大公司大事件,新观点新应用【网易智能讯 3月25日消息】拨号电话、寻呼机、传真机,这些通讯装置都是革命性的发明,但它们现在几乎绝迹了。接下来智能手机也会如此吗?皮尤研究中心(Pew Research Center)的数据显示,智能手机是美国使用最广泛的移动技术,截至2018年,77%的美国成年人拥有智能手机。它创造了快速和相互联系的交流方式,让人们在几秒

网易智能 626

C#程序突然崩溃怎么办?5分钟学会分析Dump文件(Visual Studio 2022实战)

本文详细介绍了在C#程序崩溃或无响应时,如何捕获并分析Dump文件以快速定位问题。通过Visual Studio 2022实战演示,重点讲解了配置符号服务器、解读调用堆栈与内存状态,以及针对CPU飙高、内存泄漏等典型场景的分析方法,帮助开发者高效进行故障诊断。

docker8compose的博客 476

iPod 之父离职的背后,是 Google 和苹果文化冲突的缩影

iPod 之父离职的背后,是 Google 和苹果文化冲突的缩影(转) 文/cyzhou Nest 的联合创始人兼 CEO Tony Fadell(托尼·法戴尔)离职了。 一般来说,当创始人选择离开自己亲手创办的公司时,这家公司很有可能是遭遇了一些麻烦事。对于 Nest 来说,它当下的状态的确不太好。从今年 3 月份开始,一方面 Nest 内部矛盾开始公开化:员工公开指责 Tony

SQ更上一层楼穷千里目 860

XVF3800麦克风阵列实战:从选型到快速原型搭建

本文详细介绍了XVF3800麦克风阵列的选型与快速原型搭建实战经验。从开箱即用的特性到波束成形、回声消除等核心功能拆解,再到硬件设计避坑指南和固件开发技巧,帮助开发者高效实现智能语音设备的开发。特别适合智能音箱、会议终端等需要远场拾音和声源定位的应用场景。

weixin_29161719的博客 274

Unity中Newtonsoft.Json的使用(一)

在Unity中下载Newtonsoft.Json,并进行序列化和反序列化

洛苍离的博客 1万+

谷歌以32亿美金收购iPod之父的创业公司Nest 物联网时代来临

北京时间1月14日消息,谷歌于本周一在该公司官方网站上发布新闻稿称,以现金32亿美元收购了智能家居设备公司Nest。 Nest自从2011年开始就已经销售相当受到欢迎的智能温控器,并且最近更推出智能烟感器,可以通过平板或智能手机远程控制, 让用户随时知道家中情况。另外,这些设备可以根据你的生活习性,自动随着时间的推移为你调节合适的温度。 谷歌一直是Nest最早的投资者之一,包括2011

呆萌院长 1131

【小白深度教程 1.32】手把手教你从多视角图像进行 3D 重建(SfM 算法)

重建的目标是从一组照片中推导场景的几何结构,假设摄像机位置和内部参数是已知的或可以从图像集中猜测。 这是通过使用多个照片,在其中应用运动结构法(Structure from Motion,SfM)来解决像素级对应问题,部分地恢复3D信息来实现的。

2401_87064292的博客 2160

一、天下科技

NEWS1:     本周三,在美国全国广播公司财经频道接受采访时,乔布斯生前唯一授权的官方传记《史蒂夫•乔布斯传》的作者Walter Isaacson提到:现在世界上最伟大的创新者是Google而非苹果。至少在本周,Google收购Nest明显比苹果在中国移动开售iPhone更有时代意义及发展空间。 他提到,虽说正式与中国移动成立合作伙伴关系对于苹果来讲是笔“大买卖”,但Google

chchlh的专栏 1006

从零开始创建Davinci Configurator配置工程

本文介绍了从零开始搭建达芬奇工程的详细步骤。首先安装Vector的CBD包后,通过DavicCFG.exe新建空白ECU工程。文章提到Postbuild相关概念可参考往期文章《AUTOSAR配置中的PostBuild、Precompile、Linktime》,并预告下期将讲解如何通过导入DBC文件来启用AUTOSAR模块。全文以实操截图为主,步骤清晰简明,适合开发者参考备份。

Xiaowestwind的博客 223

【AlphaFold2】深入浅出,讲解Evoformer|学习笔记

本篇博客是围绕youtube德国博主Kilian Mandon()的《从头实现AlphaFold2:AlphaFold Decoded》的第五期视频讲解和note-book内容写成的笔记,加上了自己的理解和对相关概念的解释。上期我们讲解了AlphaFold2的特征提前的部分【AlphaFold2】Feature extraction:提取特征,为模型输入做准备|Datapipeline讲解。本期,我们将介绍AlphaFold2中最为庞大且最为重要的部分——Evoformer。

Yaoyao2024的博客 2016

Android Visualizer 实战:把声音画出来

是系统提供的音频效果(AudioEffect)之一。它挂在音频链路上,,把数据回吐给你——画波形、画频谱、做响度表。

Android的专栏 311

【ESP32设备通信】-两个ESP32间UART通信

在本文中,我们将使用 Arduino IDE 的 UART 硬件库在两个 ESP32 板之间执行 UART 或串行通信。 要使用 USB 端口调试和编程 ESP32,需要使用称为通用异步接收器/发送器 (UART) 通信的串行端口。 对于大多数传感器和系统,主要的通信方法被认为是 UART。 为了共享工作负载、信息和执行不同的任务,有时需要在两个 ESP32 开发板之间进行通信。

视觉与物联智能 2997

Android 开发入门实践(十三):用 Intent、UiState 和 Reducer 理解 MVI 的状态更新

本文记录第141—145课对MVI架构的入门实践,通过“返回列表”功能逐步构建意图(NewsIntent)、状态(NewsUiState)与状态转换(reduce)机制。基于单向数据流,用户操作生成意图,ViewModel通过Reducer根据旧状态计算新状态,并通过StateFlow更新Compose界面。代码实现清晰分离关注点,强化了对状态管理、事件驱动与数据流的理解。

Easyhood的博客 341

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Android Message源码阅读

本文梳理了Android Handler机制中Message的核心设计:链表结构、消息复用池(sPool)及回收机制,重点解析了异步消息与同步屏障(SyncBarrier)的协同机制。当主线程需优先处理UI绘制等高优先级任务时,系统通过postSyncBarrier插入屏障,使Looper跳过普通同步消息,优先执行标记为异步的UI渲染任务,确保帧率流畅。该机制是保障Android界面响应性的关键技术之一。

u012116089的博客 207

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

RK-RK3572-Android16- 编译打包优化-OTA整包-差分包打包

这里主要记录一下 RK3572 在Android16 上面进行OTA升级的整包和差分包制作经验的一个分享,整理知识点,方便后续自己和其它同事开发提高工作效率、直接使用。不管哪一个平台,MTK 也好、RK也好 基本上都是不同Android版本各个子系统之间还是有一点点区别的,所以有必要记录整理知识点,方便提高开发效率、生产效率。针对OTA升级问题 ,再一次说明还是要看官方提供的文档,按照文档来。

十年饮冰,难凉热血 197

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

安卓APK下载后安装全流程:从点击下载到第一次启动,每一步的检查点

这套流程听起来繁琐,但真正需要每次都做的只有来源核对和签名校验两步,其他都是出问题时才查。养成习惯之后,能挡掉绝大多数"装了垃圾包""装完闪退"的情况。如果要省事,直接用这类会标注包名、版本号和校验信息的站点,比在搜索结果里挨个试要稳得多。

qq362196705的专栏 164

Android Laya 与 Native Bridge:页面识别、双向通信、协议设计和崩溃定位

Laya 与 Native 通信的难点不在于某个或的写法,而在于边界:页面来源是否可信、协议是否明确、线程是否正确、请求是否幂等、页面是否仍然存在、日志是否能关联一次完整请求。建立这些边界后,才能把“页面白屏”“按钮无响应”“重复消息”和“Native 崩溃”拆成可验证的层次,并沿着真实调用链找到根因。

路在脚下,幸福在手中,莫贪!!!!! 165

BUUCTF-菜刀流量-MISC-学习笔记

从 1970-01-01 00:00:00 UTC 起算的秒数,——Wireshark 直接告诉你它回答的是谁;由表可知道,96帧返回了flag.rar。, 代表删除键,先删了4次,又删了1次。所以密码是:SuperMaster。解析128帧的响应,即133帧。所以这是一个标准抓包文件,用。解压压缩包拿到html代码。:选中 128 帧,展开。:128 和 131 的。能把一问一答放在一起看;是八进制(Oct)的数字。(或 TCP 层)看到。对比一下ASCii 码表。

晓梦林的博客 77

悬浮窗挡住 Android:agent 读到 0 个节点

我在做一个跑在 Android 上的 agent,叫 Andee。他没有常规主界面,也不用 Compose——整个应用就是一颗悬浮球挂在你屏幕上,点那颗球说话,他靠无障碍服务读屏幕、点按钮,替你把事办了。悬浮窗权限是他唯一「不给就完全不能用」的一项:球、字幕、设置面板、保险箱,全都是。写这篇,是因为「系统级 agent」这两天开始真往用户手机上推了。荣耀 MagicOS 11 从 11 月 6 日向 Magic V6、Magic8 系列推送,今天轮到 Magic V5、Magic7 系列;

qq_42960812的博客 216

Harness篇|DeepSeek Harness 上手机:五条安卓移植路线与 App 内 Linux 拆解

DSH 官方没出安卓版,火的全是社区第三方移植。本文拆解真实卡点(glibc vs Bionic)、两种「App 内 Linux」的实现(PRoot 与 seccomp 容器),以及「真沙箱」的三层边界与衡量标准。

AI_Gump的博客 344

Android 开发入门实践(九):把新闻数据与页面状态交给 ViewModel

本文记录第110—117课学习成果:将页面标题、新闻列表及选中编号逐步迁移至NewsViewModel,通过ViewModelProvider获取实例并读取数据。页面调用ViewModel方法处理选择与返回,实现状态管理解耦。过程中纠正了对Activity重建机制的误解,并厘清mutableStateOf的可观察性与ViewModel对象生命周期的区别,深化了对Compose状态更新机制的理解。

Easyhood的博客 225

Android 17 全栈性能分析关键字与源码手册

FrameTimeline 找异常帧,ATrace 找阶段,thread_state 找等待类型,ftrace 找内核原因,Simpleperf 找 CPU 热点,驱动源码找最终触发条件;任何根因结论都必须回到同一对象、同一时间窗口和同一条依赖链。

weixin_43228946的博客 379

谷歌相机9.2下载(GCam 安卓通用版 安装与使用说明)

谷歌相机9.2版移植自Pixel原生相机,支持Camera2 API的Android 10+设备安装,凭借多帧合成技术在夜景、HDR+与人像模式表现优异。可提升暗光画质、优化动态范围与背景虚化效果,支持视频防抖及配置文件自定义。安装需确认机型兼容性,建议备份原相机,避免冲突。资源可通过kuake链接获取,仅限学习测试使用。

2611_96675819的博客 214

Android 开发入门实践(十):用 Kotlin 协程完成模拟加载、取消与异常处理

本文记录第118—125课对NewsApp的协程改造:从viewModelScope.launch启动协程,逐步加入delay模拟等待、suspend函数封装、withContext(Dispatchers.IO)切换线程并观察上下文恢复机制。通过日志验证withContext完成后恢复原执行上下文(非自动回主线程),纠正了初始理解偏差。引入Job管理任务,实现加载取消与重复点击防护,结合异常处理与状态管理,完成可观察、可中断的异步流程。

Easyhood的博客 411

工业智能体:从Codex/Claude到项目实战~系列文章11:Codex 批量重构老系统:激活历史 DCS/PLC 存量代码

本期提出规模化重构工业老系统(如DCS/PLC代码)的可执行方法论:通过AST静态分析量化风险,按“盘点评估→样板重构→批量迁移→回归灰度”四阶段推进;利用Codex实现模块级批量重构,并以“金标准样本”确保数值一致性;接入CI流水线实现自动化守护。强调“小步改、保语义、可回滚”,结合绞杀者模式渐进替代,实现存量代码的安全激活。来自华北理工大学段一凡的博客文章

段一凡的博客 398
上一篇: 开源助力云计算十年:从基础设施,到云原生崛起!
下一篇: 吴峰光杀进 Linux 内核
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值