(下)苹果有开源,但又怎样呢?

Windows窗口编程中的WM_PAINT、WM_ERASEBKGND、InvalidateRect、UpdateWindow、BeginPaint和EndPaint等函数详解 阅读详情

 一开始,因为 MacOS X ,苹果与 FreeBSD 过往从密,不仅挖来 FreeBSD 创始人 Jordan Hubbard,更是在此基础上开源了 Darwin。但是,苹果并没有给予 Darwin 太多关注,作为苹果的首个开源项目,它算不上成功。(详情请戳:《(上)苹果有开源,但又怎样呢?
》)

再后来,苹果攻坚浏览器,WebKit 成为幕后英雄。在这个时期,苹果开始涉入开源的深水区,不仅要与 WebKit 上游的开源社区 KDE 磨合,还要面临与竞争对手谷歌的开源合作。面对外界的压力和指责,苹果从 WebKit 的开源上,应该学到了不少。(详情请戳:《(中)苹果有开源,但又怎样呢?
》)

随着开源软件对行业的渗透越来越深,即使是苹果,似乎也不得不作出成长和改变。这种在开源上的成长,苹果在 Swift 上表现得十分明显。有人说,开源改变世界,那么,开源会改变苹果吗?

下篇: Swift “统治世界” 是从开源开始的吗?

除了 Jordan Hubbard,Chris Lattner
 是苹果招入麾下的另一个开源大佬。

在业内,Chris Lattner 被冠以 “编译器大神” 的称号,因为他是 LLVM(Low Level Virtual Machine)的主要发起人与作者之一,同时还是 Clang 编译器的作者。

2000 年,苹果 Darwin 开源,初涉自主开源。同年的 Chris Lattner 刚从波特兰大学本科毕业,正准备去 UIUC(伊利诺伊大学厄巴纳香槟分校)攻读计算机硕士和博士。正是在 UIUC,Chris Lattner 开始使用一种用于优化编译器的创新基础架构,去设计和构建 LLVM,这也成为了他的博士学位论文的主题。

年轻时的 “小鲜肉” Chris Lattner

不同于 Jordan Hubbard,Chris Lattner 几乎是被苹果一手发掘和培养的。

2005 年,Chris Lattner 正值毕业,LLVM 仍然是一个高级研究项目。另一头,苹果也为了编译器焦头烂额。在 LLVM 之前,苹果的软件产品都依赖于整条 GCC 编译链(GNU Compiler Collection,就是自由软件运动发起人 RMS 捣鼓的那个)。

那时,苹果在 GCC 上投入大量资金,想要新增很多特性,但 GCC 开发者不怎么愿意专门为了苹果公司的要求优化和改进 GCC 代码;而且,到后期 GCC 的代码质量也变得难以保障了。

为了摆脱 GCC 的束缚,苹果开始寻找 “替代品”。而 Chris Lattner 的 LLVM 显然是个不错的选择。由此,苹果开始成为 LLVM 计划的主要资助者。2005 年,Chris Lattner 刚毕业,苹果就直接雇用了他及他的团队。

我在读博的时候就开始写 LLVM 了。当时 LLVM 是我的博士研究项目,我想把它做成工业界中颠覆性的产品。当时我异想天开,尝试了各种架构设计,想解决以往编译器所有的弊端 —— 结果当然没有如愿。我毕业后,就希望能接着搞 LLVM ,当时只有苹果允许我入职之后继续设计并实现 LLVM 。我想都没想就加入了苹果。

—— Chris Lattner

在苹果,Chris Lattner 又发起了 Clang 项目,并在多项指标上超过 GCC。如虎添翼的 LLVM 开始走向成熟。至此,Chris 在苹果可谓是如鱼得水,在编辑器上立下大功,后来直接坐上了苹果开发者工具部门主管的位子,领导 Xcode、Instruments 和编译器团队。 

除了 LLVM 和 Clang,Swift 是 Chris Lattner 所缔造的第三个伟大的项目。2015 年,Swift 官宣开源,迅速成为当下最炙手可热的编程语言之一。

这次,苹果的开源,似乎没有以前强势了。Chris Lattner 注重社区的力量,同时苹果也想要通过开源让更多的人来使用这门语言,傲慢和强势的态度没有益处。

PS:2017 年 1 月,Chris Lattner 离开了自己工作了 12 年的苹果,去过特斯拉、谷歌和 SiFive 等公司。2022 年 2 月,Chris Lattner 被曝
因为遭到多人侮辱大吼,已于去年离开 Swift 核心团队。

01 Swift 一诞生,就是冲着开源去的

时间调回到 2010 年。那年的 WWDC(苹果全球开发者大会)上,苹果刚刚在 Clang 中推出了 C++ 支持。

为了让 Clang 支持 C++,Chris Lattner 和他的团队付出了巨大的努力,有点筋疲力尽。这不禁让他们开始思考
一个问题:为什么不得不实现 C++ 呢?难道不应该有更好的语言吗?

你也知道 C++ 写起来有多丑,但是做个编辑器支持 C++,完善 C++ 这门语言就是另一回事了,我们当时搞了好久,终于完成的时候特别有成就感。无论是 C 语言,C++,还是 Objective-C,都有一些我不是很满意的地方。所以,我就想要不我们搞个新的语言来吧。新的语言要越简单越好。

—— Chris Lattner

就是这样,Chris Lattner 没有声张,在和苹果软件团队负责人 Bertrand Serlet 聊了几次后,他们明确了建立一种新语言的想法。当时它的代号是 “Shiny”,“就好像你正在建造一个闪亮的新东西。” 2019 年 Chris Lattner 回忆
道。

一旦确立想法,Chris Lattner 立马就开工了。从 2010 年夏天开始一直到第二年年末,他利用晚上和周末的时间,就那么吭哧吭哧地干着,没有告诉任何其他人,当他在伊利诺伊大学厄巴纳香槟分校的导师 Vikram Adve 知道后,都惊叹苹果的口风有多紧。

我秘密实现了大部分基本语言结构:其他一些人在 2011 年底开始认真贡献。 2013 年 7 月,它成为苹果公司开发者工具组的主要关注点。

我们在做 Swift 的时候,很多 iOS 开发者,包括苹果内部的工程师,都在吐槽我们这几年在 Objective - C 上毫无建树,都在说你们为什么不做这个那个。我们当然不能告诉他们我们在全力开发 Swift,而他们所要的语法功能我们都会给。

—— Chris Lattner

2011 年,Chris Lattner 将这门编程语言的骨架搭建完毕了,但显然仅靠他一个人是不够的。那年 4 月,他向公司管理层透露了自己的秘密,这个项目立马得到了重视,数名资深工程师加入了进来,团队不断扩大,甚至成为了苹果的主要关注对象。

很难说,苹果这种严密的保密文化是好是坏,苹果的确是受够了创意被偷走了(微软和谷歌都干过);但从开发者的角度来说,有点残酷,要知道当 Swift 已经成为苹果内部的主推项目时,开发者们还在苦学 Objetive-C。当 Swift 出世的那一刻,他们得多心碎。

2015 年 12 月,苹果兑现了 6 月在 WWDC 中的承诺,将新编程语言 Swift 开源,同时苹果还开源了两个项目:Swift 核心库项目和全新的 Swift 包管理器项目。这次,苹果采用的是 Apache 2.0,软件开发者将可以对这款新编程语言根据自己的需要进行修改。

在 Swift 之前,苹果不是没有语言。1988 年,乔布斯的 NeXT 公司获得了 Objective-C 的授权,并开发出了其语言库和 NEXTSTEP 的开发环境。此后,Objective-C 是苹果的当家语言,且随着 2007 年 iOS 移动设备的爆发,让这门 iOS 应用开发的主要语言获得了火箭一般的蹿升速度。

而 Swift 正是作为 Objective-C 的继任者的姿态出现的。2012~2013 年,苹果试图对 Objective-C 进行大规模的优化和升级改进,增加了各种现代语言的特性,让编写 App 更加容易,以吸引更多的程序员投入到了 App Store 的生态圈里。

这些努力都不如直接来上一款开源新语言有效。事后,Chris Lattner 表示,动手做 Swift 的原因有三:

第一,如果我们大幅优化 Objective - C,把很多 Swift 的特性加进去,这对开发者来说是灾难性的,因为他们要对原来的 APP 要进行大幅修改;

第二,Objective - C 很多特性积重难返,比如它安全性上的问题;

第三,Objective - C 是基于 C 开发的语言,所以你无论怎么优化,它必然有 C 语言自身的缺陷。

更重要的一点是,Swift 是开源的,而且这次苹果的开源的确更开放了。

在 Chris Lattner 在职期间,苹果已经彻底开放了 Swift,不仅仅是开源而已,还构建了一整套社区开放合作的规范,Swift 语言的协议也是很宽松,社区十分活跃。这些动作,为 Swift 及生态圈打下了一个很好的可持续的基础。

首先,这得益于 Chris Lattner 对开源的态度:

我持有的默认观点之一是,开放比封闭好。如果你能让更多的人参与进来,你会得到更好的东西。

我个人感到最骄傲的一点是,我们并不打算仅通过内部去把它做到完美 —— 我们开源、我们依靠社区,这样一门语言才能在无数开发者的实战中得到检验和改进。我想,这才是 Swift 最棒的地方。

当 Swift 开源,它的发展进化就变成一件非常了不起的事情。从效率方面看,开源或许并不理想,但开源是使 Swift 真正与众不同的重要部分。我认为,这完全归功于那些社区里花时间去塑造和推动 Swift 的人们。

其次,早期的社区反馈确实在塑造 Swift 1 和 2 上,功不可没。

Swift 1 的头一两年,很多事情都是由社区直接推动的。甚至多年后,Chris Lattner 仍将 Swift 的成长归功于社区的力量:“ Swift 现在很好的主要原因之一是有一大群人在写博客和反馈,当人们有抱怨时,就是推动进步的时候。”

再次,正是在开源的推动下,Swift 项目乃至苹果都对开源实践有了许多心得。

社区的建设,意味着 Swift 能从很多核心团队以外的地方收获。比如,Codable 协议的设计就来自于苹果的一个框架团队(他们甚至不在 Swift 团队中);Result 类型进入 Swift 5,也是因为社区力量推动的。这些巧妙的设计被证明是很有意义的。

除此之外,为了更好地和社区产生互动合作,苹果采取了强制一定数量的文档和流程的方法。多年来,Swift 一直在平衡社区力量上作出努力,比如,是否将设计权限分配给社区?还是分配给社区优先级能力?这些问题都很有挑战性。

我从 Swift 的进化过程中学到的第一件事是:如何适当地催化社区力量。Swift 真正召集了一个语言极客社区,我一直在寻找有什么催化剂可以让 Swift 包生态或者 Swift-on-the-server 社区起飞,让社区团结起来做一些很酷的事情。

—— Chris Lattner

在开源的推动下,Swift 有了出人意料的成长。

一开始,Chris Lattner 仅仅设想这门语言会在几年后在苹果内部圈子里产生影响,而苹果则认为这是一个更快速、更有效开发 iPhone、iPad 以及 Mac 电脑软件应用的工具。

2015 年 WWDC 大会上,苹果公司高级副总裁 Craig Federighi 表示,“我们认为未来 20 年 Swift 将成为编程的标准语言。我们认为它将成为未来主要的编程语言之一。” 同时,他也表示,如果想要给更多企业开发者开发自己的移动应用提供支持的话,最好的办法就是开源。

开源之后,Swift 发展之好让我咋舌。当年我们开源了 LLVM 和 Clang,它们也发展喜人。但是,跟 Swift 比起来,它们的发展也太慢了,LLVM 和 Clang 开源后完全没有 Swift 这么火。

Swift 就不同了,开源一年之后,我们就有了上百万的开发者在使用这门语言 —— 我和很多有丰富开源经验的老工程师都吓了一跳,这简直了!然后我们每天收到无数的邮件和 pull requests,要求更新这个、要求优化那个,我们的节奏完全被打乱了。

我现在觉得开源这个决定至关重要。一来大家会帮着优化;二来我们有个巨大的论坛,在那里大家可以畅所欲言,全世界的人都在帮着 Swift 进步,这真的很棒。我们虽然没有一开始就具体计划要开源,但是苹果内部当时都觉得 Swift 肯定有一天要开源。

—— Chris Lattner

曾经有一句话很火 ——“Swift 统治世界”。这是 Chris Lattner 开玩笑说的,但渐渐地,无论是主创团队还是苹果其他人,都开始将 Swift 当成是未来世界的主流语言来看,在他们眼里,它将会超越 Python,甚至有一天取代 C。

在 Chris Lattner 的规划中,开源是重要的一环;然后,Swift 必须要有一个杀手级的产品;再然后,就要把 Swift 应用到服务器端;再接下来,Swift 要取代 Java。

02 开源多年,苹果也有委屈,大家过度揣测了吗?

尽管 Swift 致力开放,且雄心勃勃;但始终难以摆脱苹果封闭的刻板印象。

大家始终觉得, Swift 只是苹果自己搞出来的东西,是苹果自己的玩具,只能用在苹果自己的 iOS 系统和 macOS 系统上。对此,Swift 不断加大开源和构建社区的力度,希望 Swift 能更好地被接受,并在系统开发领域追上来。

我们的目标是建立一个包容的社区。但是,如果您不是 Apple 开发人员,每次搜索 Swift 的东西时都会陷入有关 iOS 的讨论,这会让人感到疏远。

这会让你觉得自己像个局外人,这是个错误的信号。我想,没有人打算让这种情况发生,但这个效果是真实的。这是我们作为一个社区面临的挑战。而且,我不知道这些问题有没有好的、简单的答案。

—— Chris Lattner

情况究竟是怎样的呢?在 Swift 社区网站写着这样一段话:

Swift.org 社区的唯一目标是打造世界上最好的通用编程语言。我们将共同开发该语言,并由任何希望参与的人提供贡献。

Swift 语言是公开开发的,所有关于语言或社区流程的技术或管理主题都应提交给 Swift 公共论坛。鼓励公开对话,积极的 Swift 语言开发人员应关注相关论坛类别。

在结构上,Swift 项目由一个核心工程师团队(7 人)管理,该团队通过与社区合作来推动战略方向。技术领导者来自贡献者社区,任何人都可以获得领导 Swift 领域的权利。

但是,Apple Inc. 是项目负责人并担任该项目的仲裁者。Ted Kremenek(Chris Lattner 离开社区后,钦点的继任者)是苹果的指定代表,并担任项目负责人的代言人。

这意味着,苹果并没有打算将 Swift 完全交给外部人员,苹果始终保持着领导权,外部开发者能参与进来,引导 Swift 的发展,为它的运作和功能作出贡献,并且他们的工作将会公开。

苹果的确在把握着主导权,但外界对此的揣测只会层层加码。这种刻板印象和怀疑论调,在 Chris Lattner 的离职风波中,得到了很好的体现。

2017 年,Chris Lattner 离开了苹果,下一个东家是特斯拉。媒体从苹果之前多次发动的专利战争、被专利出庭困扰而辞职的前员工、特斯拉在专利上的开放态度等 “蛛丝马迹” 揣测
 Chris Lattner 离开的真正原因。更有多位自称 Chris Lattner 的 “朋友” 出来表示,Chris Lattner 确实是因专利态度加入特斯拉。

没过多久,2017 年 1 月 13 日,Chris Lattner 不得不站出来在 Twitter 上辟谣:

我的决定与(专利)“开放” 无关,所谓的 “朋友” 要么是捏造的,要么是投机的。大众只是想让苹果难堪而已。

在开源上,Chris Lattner 力挺老东家。他表示,苹果其实有开源的传统, LLVM 虽然不是始于苹果,但是最终是苹果完成并将其开源。Clang 则完完全全是生于斯开源于斯。还有其他工具,比如 LLDB、libc+ 以及 compiler-rt 都是如此。

但是,媒体和外界的看法是冷峻的。更多人认为,开源从来都是不是苹果的初衷,而是一场不得不顺势而为的改变。

第一,在过去的 15 年间,开发者已经显示了对开源工具和平台的偏爱。如果苹果继续让开发者适应自己的技术,远离第三方技术,是很有风险的。这会让苹果与开发者的关系变得疏远,苹果对外开放是迟早的事。

第二,最近几年,新编程语言层出不穷,谷歌的 Go 语言、Mozilla 的 Rust、Meta 的 Hack 和 D 语言等,都是开源的!他们之中甚至会有可能出现下一个软件开发的标准。

而且,2014 年,微软开源了 .NET 框架,这个框架被正式许可在包括 iOS 和 macOS 等的非 Windows 环境使用。(有意思的是,直到 2020 年 9 月,苹果才正式官宣将 Swift 引入 Windows,也不知道为啥动作那么慢。)面对这样的挑战,苹果没有选择,Swift 必须开源。

第三,多年来,苹果一直致力于完善自己的的闭环生态圈,Swift 的开源也与此脱不开干系。尤其是在移动互联不断深入以后,要想抢占先机,就必须要有强有力的技术支持和出色的用户体验。

如今,苹果自己的硬件设备市场占有率正在稳步提升,iOS、macOS、iPadOS 等系统则在不断完善。不少人认为,推出开源的 Swift 对于丰富应用体系、挖掘人才等方面有很好的促进作用,苹果下的这盘棋很大。

目前苹果主要的几个软件平台

03 结语:通过开源,苹果能实现自我超越吗?

有句名言:开源吞噬世界。

我们能够看到,这个世界的确在被开源软件改变着,包括微软这样的专有软件大本营。2015 年,当微软拿出印有 “Microsoft Loves Linux” 字样的 T 恤和徽章时,也不知道有多少人被咖啡呛到了。

开源声势很大,苹果在开源界也难免一鼻子灰,比如,与 GCC 的合作。现在,苹果又不得不向开源靠拢。除了 Darwin、WebKit 和 Swift,苹果还有一些其他开源项目。但是,苹果每次开源,都会有异样的声音。

比如,2018 年苹果宣布开源一款增强型 NoSQL —— FoundationDB(是苹果在 2015 年的时候收购的开源公司开发的项目),就有人表示,商业巨头总是这样,自己不想维护了,就丢出来给社区维护,等社区维护好了,又闭源拿来卖钱。

除此之外,苹果还积极参加各种开放计划、开源基金会等,比如 Facebook (当时还叫这名)领军的开放计算项目(Open Compute Project, OCP)以及 Blender 基金会、开放媒体联盟等。

一路上,苹果不停招兵买马。这两年,苹果不断发布有关 RISC-V 开发者和开源项目工程师的招聘,想要从开源界吸收力量。

2011 年,乔布斯去世,苹果始终没能走出他的影响。在乔布斯的构建下,苹果对软硬件有强烈的控制欲,并发展出一种独特的闭源方式:封闭系统代码的同时,通过和第三方分享利益的方式来构建生态。

电影《史蒂夫・乔布斯》中,法鲨饰演的乔布斯刚刚复仇归来,面对昔日伙伴 Wozniak 的质问,他将所有的一切归罪于 “开放”

在 Tim Cook 的领导下,苹果的商业模式始终没有脱离软硬件一体化消费电子公司的范畴,依旧需要不断推出远远超过市场预期的新品来维持地位。

通过开源,苹果能超越自己一直以来的封闭模式吗?

X书x-mini-sig_x-mini-mua X书的tiny风控代码,成功运行x-mini-sig|x-mini-mua 阅读详情

相关推荐

在线迭代RLHF实战:从原理到实现,复现超越官方指令模型的工作流

大语言模型(LLM)的对齐技术是提升其与人类意图一致性的关键。其中,基于人类反馈的强化学习(RLHF)通过引入人类偏好信号,指导模型优化生成策略,是实现模型“有用”与“无害”的核心方法。其技术价值在于将抽象的“对齐”目标转化为可优化的奖励信号,从而显著提升模型在对话、推理等任务中的表现。然而,传统的离线RLHF存在数据分布偏移和奖励黑客等瓶颈。在线迭代RLHF通过构建“生成-评估-学习”的动态数据循环,让模型能够利用自身最新生成的数据进行持续优化,有效克服了上述问题,成为当前提升指令模型性能的前沿方向。本文

weixin_28725037的博客 369

浅谈手机系统——iOS

我们知道,iOS的原始名称是iPhone OS,它是一种类似于UNIX的商业操作系统。 而大家也都常说iOS是一个封闭式的系统,为什么这么说呢?因为iOS的系统并未开源,即闭源。 什么是开源? 开源,(Open Source)全称为开放源代码。开源系统即开放源代码的系统。开放源代码意味着大家都可以在其基础上进行修改操作。开源系统则意味着大家都可以修改这个系统。 开源并不代表着可以不重视版权,用户在使用开源产品时,不但需要说明产品来自开源软件和注明源代码编写者姓名,而且还应把所修改产品返回给开源软

ic2121的博客 2万+

【大唐杯学习超快速入门】5G技术原理仿真教学——5G网络开通调测与车联网

自用笔记,比较乱。

qq_41224270的博客 1万+

(中)苹果有开源,但又怎样呢?

上篇(详情请戳:《(上)苹果有开源,但又怎样呢?》)里说到,苹果首个开源项目 Darwin 的诞生,与乔布斯的复仇归来有着千丝万缕的关系。作为一个开源的操作系统,Darwin 拥有非常纯正的开源血统,又有 FreeBSD 创始人 Jordan Hubbard 这样大佬级的人物加盟。在役期间,它为苹果作出了卓越的贡献,无论是 macOS、iOS 还是 iPadOS,甚至是 HomePod 和 Apple TV(TvOS)都是建立在 Darwin 的基础上。

m0_67544708的博客 578

CLASSB类移植(满足IEC 60730-1和60355-1标准)

针对软件认证需要满足IEC 60730-1和60335-1标准,ST公司专门提供的软件扩展包X-CUBE-CLASSB,它包含自测库和文档,支持多种STM32系列芯片,通过预集成测试库和标准化流程,帮助开发者快速满足国际安全标准,适用于家电、工业控制等高可靠性场景。ClassB软件包程序检测内容分为两个主要部分:启动时的自检和运行时的周期自检,MCU在上电的时候会进行复位启动,在启动完成以后会进行运行自检。

m0_61973119的博客 1402

华为OD机试真题 新系统【小花获胜的奶茶】

华为OD机试真题 新系统【小花获胜的奶茶】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【小花获胜的奶茶】多语言题解。

qq_45776114的博客 386

iOS的各种开源项目集合

AFNetworking- ASI不升级以后,最多人用的网络连接开源库,iOS网络编程之AFNetworking使用,iOS开发下载文件速度计算,AFNetworking 3.0迁移指南,AFNetworking2.0源码解析<一>。 Alamofire- Alamofire是AFNetworking的作者mattt新写的网络请求的swift库。 YTKNetwork- 是基于 AFNetworking 封装的 iOS网络库,提供了更高层次的网络访问抽象。相比AFNetworking,YTK

翻肚鱼儿的博客 1881

CDD数据库文件制作(二)——服务配置(0x27)

主要根据诊断调查表,针对0x27服务在CDD中的每一步配置给出详细介绍 1.会话切换配置 1.1.根据诊断调查表进行信息提取 1.2.子功能添加 1.2.1.Level1安全等级1创建 1.2.2.Level3安全等级3创建 1.2.3.安全等级名字查看与修改 1.3.会话切换信息提取(应用程序下) 1.4.会话转换配置(应用程序下) 1.5.会话切换信息提取(引导程序下) 1.6.会话转换配置(引导程序下) 2.安全等级配置信息提取 2.1.安全访问配置(level1) 2.2.安全访问配置(level2

LOVE135149的博客 2930

搞懂unix、linux、ios、android的大致区别

UNIX操作系统(尤尼斯), 是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。目前它的商标权由国际开放标准组织所拥有,只有符合单一UNIX规范的UNIX系统才能 使用UNIX这个名称,否则只能称为类UNIX(UNIX-lik

随手笔记 3万+

Arcgis栅格裁剪批处理工具

Arcgis栅格裁剪批处理工具

yilvyangguang520的博客 2173

NSGA-II 多目标优化 —— 理论、案例与交互式 GUI 实现

本文详细介绍了 NSGA-II 多目标优化算法的基本原理、数学模型和实现流程。从非支配排序、拥挤距离计算到遗传操作,NSGA-II 通过对种群进行分层和排序,能够有效求解多目标优化问题,获得 Pareto 前沿解集。通过机械结构优化、资源分配和控制参数调优等典型案例,我们展示了 NSGA-II 在实际工程中的广泛应用。为帮助工程师和研究者更直观地理解算法求解过程,本文提供了基于 Python 与 PyQt6 的交互式 GUI 演示系统代码示例。

闲人编程的博客 2120

Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)

转载地址 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件。SVPullToRefresh - 下拉刷新控件。MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)XHRefreshControl - XHRefr

coder的专栏 4347

【Claude Code 实战】第十章:DevOps 与 CI/CD 集成 / 光子AI

本章摘要:探讨Claude Code在DevOps与CI/CD集成中的应用。DevOps作为现代软件工程核心,结合AI技术实现自动化全流程,从代码提交到生产部署。通过CALMS模型(文化、自动化、精益、度量、分享)解析DevOps理念,对比传统瀑布模式与DevOps模式差异,展示AI如何加速Dockerfile编写、CI/CD配置等任务。典型示例显示AI可将原本30-60分钟的手动配置缩短至1-2分钟,大幅提升DevOps效率。

AI天才研究院 367

(上)苹果有开源,但又怎样呢?

苹果(Apple Inc.)有多伟大,我相信已经无需赘述了。但是,这里的伟大是指用产品和理念对行业进行的革命性颠覆,而不是对开源而言。相反,在某种程度上,苹果几乎就是开源的反义词。这种骨子里的 “封闭”,从苹果诞生的那一刻就决定了。1976 年,两位都叫做 Steve 的创始人(乔布斯 和 Wozniak)在车库创建苹果的时候,估计也没想到他们之后的分歧会如此之大。Wozniak 是个典型的工程师,当他把那个后来被称作 AppleⅠ 的电路板展现给乔布斯时,当乔布斯用自己惊人的商业天赋将 AppleⅡ 推成

Xiaohong0716的博客 165

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: Go 微服务开发框架 DMicro 的设计思路
下一篇: Nginx配置整合:基本概念、命令、反向代理、负载均衡、动静分离、高可用
m0_67544708
博客等级 码龄5年 3093粉丝 861原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值