Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
7dcb429
Add personal introduction and expectations for training
arnoldzzy Nov 12, 2025
447854c
Refactor introduction and expectations in markdown
arnoldzzy Nov 12, 2025
8e2f4e1
Change arnoldzzy.md
arnoldzzy Nov 13, 2025
953c51b
Merge pull request #2 from arnoldzzy/fix-issue-1-from-main
arnoldzzy Nov 13, 2025
94a2524
Revise training camp expectations in arnoldzzy.md
arnoldzzy Nov 13, 2025
931775f
Revise expectations for training camp
arnoldzzy Nov 13, 2025
5d35405
Refine content structure in arnoldzzy.md
arnoldzzy Nov 13, 2025
685c5b0
Merge pull request #6 from upstreamlabs/main
arnoldzzy Nov 14, 2025
468499a
add assignment1
arnoldzzy Nov 14, 2025
3c777c8
Add arnoldzzy.md to lesson1 assignments
arnoldzzy Nov 14, 2025
c49b412
:测试:add test/test1.md
arnoldzzy Nov 15, 2025
74826c9
detele test.md and modify test/test1.md
arnoldzzy Nov 15, 2025
df4f126
DELETE TEST FILE
arnoldzzy Nov 15, 2025
efd1257
Merge branch 'upstreamlabs:main' into main
arnoldzzy Nov 17, 2025
93195f3
assignment#2: arnoldzzy.md
arnoldzzy Nov 17, 2025
df2573c
add assignment#2:arnoldzzy.md
arnoldzzy Nov 17, 2025
b3ab15f
Revise Git command usage and add new operations
arnoldzzy Nov 17, 2025
90e2c47
test
arnoldzzy Nov 17, 2025
4cbf117
Delete assignments/test directory
arnoldzzy Nov 17, 2025
653bf67
Delete assignments/lesson1/example-report.md
arnoldzzy Nov 17, 2025
7a1d901
add deleted assignemt#1 example file
arnoldzzy Nov 20, 2025
d658b56
Merge branch 'upstreamlabs:main' into main
arnoldzzy Nov 20, 2025
215211b
Revise arnoldzzy.md with insights on open source
arnoldzzy Nov 20, 2025
6758c3b
Update arnoldzzy.md
arnoldzzy Nov 20, 2025
6558dca
Update arnoldzzy.md
arnoldzzy Nov 21, 2025
5aa61e1
Update arnoldzzy.md
arnoldzzy Nov 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions arnoldzzy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# 开源社区:在协作中寻找价值与方向
代码与开发者的跨界流动,让开源社区超越技术协作,成为承载哲学思考的生活方式。以下是我对开源的认知与个人介绍。

## 一、开源的哲学心理学:在协作中创造价值对抗虚无

开源并非单纯技术共享,其哲学内核在虚无主义盛行的当下,彰显着独特的精神价值。

### 创造本质:自下而上的自发秩序

- 哈耶克“自发秩序”理论诠释了开源本质:活力源于个体自发协作,而非顶层设计。开发者因热爱与需求聚集,形成无权威的协作网络。

- Linux是典型例证:托瓦兹为解决个人需求编写的代码,经全球开发者自发完善,终成抗衡闭源系统的生态,印证了协作创造的颠覆性。

### 对抗虚无:在小事中锚定人生价值

- 加缪提出“在荒谬中寻意义”,而开源正是对抗虚无的路径。当代人常陷意义焦虑,开源则提供了从小事切入的价值锚点。

- 修复Bug、完善文档等微小贡献,都能带来即时价值反馈。开发者在推动生态进步中,消解虚无感,明晰人生方向。

## 二、开源:时代发展的必然选择

哲学价值是开源内核,时代需求则是其发展的现实推力,开源已成为产业变革的必然趋势。

### 国策导向:产业升级与自主可控的战略支撑

- “十五五”规划将开源社区建设升至战略高度,明确支持AI等领域开源技术研发,这与中美科技博弈背景紧密相关。

- 核心技术“卡脖子”制约产业升级,开源则汇聚全球智慧加速研发。我国“悟道”等平台通过开源推动AI落地,是科技自立的关键。

### 商业演化:从敌视到拥抱的认知转变

- 微软的态度转变印证了开源的商业价值:曾视开源为“敌人”,如今通过收购GitHub拥抱开源,借助社区生态实现商业盈利。

- 微软将.NET框架开源,以“开源引流、商业变现”模式获利。越来越多企业加入,形成“商业反哺社区,社区支撑商业”的良性循环。

## 三、两种开源模式的比较:社区与商业的共生之道

开源生态大致可分为社区与商业为导向的两种基金会模式,二者各有侧重却相互依存,共同支撑生态发展。

|基金模式类型|代表项目|特点|面临问题及相关情况|
| ---- | ---- | ---- | ---- |
|偏社区建设的基金模式|Apache、Linux|以“社区自治”为核心,不依附企业,保障项目中立性。通过透明规则吸引全球开发者,确保技术长期活力|面临资金与资源难题,需企业反哺。如华为等企业为Linux社区提供支持,同时借助社区技术发展自身业务|
|偏商业建设的基金模式|Android、RedHat|以商业为核心,通过开源构建生态,再以授权、服务盈利。资金充足使技术迭代与商业化落地更高效|谷歌借Android开源凝聚生态,通过广告盈利;RedHat封装Linux提供企业服务。但需警惕商业资本过度控制破坏生态多样性|

### 核心共识:社区与商业的相互成就

- 实践证明,社区需商业提供资源,商业需社区供给创新与人才。二者“双向奔赴”,是开源生态可持续发展的核心动力。

- 华为既是Linux社区贡献者,又借力社区发展业务,正是这种共生关系的典型体现。

## 四、自我介绍:以科技为桥,拥抱开源生态

- 我从植物科学跨界技术领域。科研背景让我具备严谨思维与超强自学能力, 科学是我探索的基石。
- https://cdnsciencepub.com/doi/10.1139/cjps-2024-0242

- 在任生产主管岗期间,通过自学和在ChatGPT的帮助下,我独自开发了可适配Health Canada各项法规的大麻企业的数据系统,使库存效率提升至少40%,并指导多团队协作。此前在Quality Assurance等岗积累的规范化与问题解决能力,与开源理念高度契合。
- https://github.com/arnoldzzy/SQL-EXCEL-based-cannabis-data-system-

开源之路,行则将至。我期待与更多爱好者同行,共建开放繁荣的技术生态。
107 changes: 107 additions & 0 deletions assignments/lesson1/arnoldzzy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@

## 学员GitHub用户名: arnoldzzy

## 选择的商业模式: Apache 软件基金会商业模式全面分析

## 分析内容

### 1. 商业模式概述
Apache软件基金会(ASF)是全球最大的开源软件组织之一,成立于1999年,是一个非营利性501(c)(3)组织,核心使命是“为公共利益提供可靠的开源软件”。

核心定位是作为开源项目的**孵化器和守护者**,提供法律框架、基础设施和治理机制,支持社区主导的软件开发。

运作模式基于“**社区高于代码**”的核心理念,采用去中心化、精英管理的治理结构,确保项目独立于商业利益,由社区自主决策。

价值创造方面,通过提供全球协作平台,ASF管理着大量活跃项目和代码量,这些软件已成为互联网和企业IT基础设施的重要支柱。

---

### 2. 收入来源
ASF作为非营利组织,主要依靠以下渠道获取资金,整体财务状况稳健可控。

### 2.1 企业赞助(主要来源)
基金会赞助计划分为四个层级,不同层级对应不同的年度费用和权益回报(如品牌曝光、合作机会等)。

企业赞助是总收入的核心构成,吸引了众多科技巨头、行业领军企业参与支持,是资金的主要保障。

### 2.2 个人捐赠与活动收入
- 个人捐赠:通过官网捐赠通道和企业匹配计划获得,整体贡献占比较小。
- 活动收入:包括会议赞助、参会注册费、周边商品销售等,作为核心收入的补充。

### 2.3 财务核心特征
- 收支平衡:收入与支出保持稳定平衡,无大额赤字风险。
- 支出结构:核心支出集中在基础设施维护(邮件列表、代码仓库、服务器、带宽等),管理费用占比极低。
- 人力结构:全职员工数量极少,大部分核心工作由全球志愿者完成。
- 项目成本:单个项目年均维护成本较低,资金使用效率高。

---

### 3. 社区与生态
ASF以庞大的社区规模和完善的生态体系,成为开源领域的核心枢纽。

### 3.1 社区规模
- 组织成员:拥有数百名ASF正式成员(具备投票权)。
- 核心贡献者:数千名项目贡献者(Committers),直接参与代码提交与维护。
- 累计参与者:全球上万名累计代码贡献者,形成广泛协作网络。
- 项目覆盖:管理350+个顶级项目,涵盖云计算、大数据、Web服务、AI等多个技术领域。
- 传播影响力:软件累计下载量超千亿次,覆盖全球各类用户群体。

### 3.2 三层治理结构
| 层级 | 核心职责 | 运作机制 |
|------|----------|----------|
| 董事会 | 监督整体运营、法律合规、资源分配 | 成员由ASF选举产生,每月公开会议记录 |
| 项目管理委员会(PMC) | 管理各顶级项目,把控技术方向 | 每个项目独立运作,成员由社区选举 |
| 项目团队 | 具体开发、测试、维护工作 | 基于“共识+投票”决策,无商业干预 |

### 3.3 生态系统核心特点
- 技术栈多元化:从基础Web服务器到高端大数据、微服务框架,覆盖全技术链路。
- 厂商中立性:严格禁止企业商标绑定项目名称,确保技术独立于单一商业利益。
- 跨组织协作:与Linux基金会、CNCF等开源组织建立深度合作,共同推动行业标准。
- 成熟孵化机制:通过“Podling”流程培育新项目,助力优质技术从概念走向落地。

---

### 4. 竞争优势
### 4.1 与传统商业软件核心对比
| 优势维度 | Apache模式 | 传统商业软件 |
|----------|------------|--------------|
| 成本结构 | 软件免费,仅需支付服务/集成费用 | 高额授权费+年度维护费(通常为授权费15-20%) |
| 创新速度 | 全球社区并行开发,迭代周期短 | 受企业路线图限制,创新响应滞后 |
| 风险控制 | 多厂商支持,避免供应商锁定 | 依赖单一厂商,存在技术/成本锁定风险 |
| 质量保障 | 同行评审+持续测试,稳定性公认领先 | 依赖内部测试体系,质量参差不齐 |
| 支持响应 | 全球开发者24/7社区支持,响应灵活 | 受厂商团队规模、时区限制,支持成本高 |

### 4.2 差异化核心优势
- 治理模式标杆:“Apache Way”成为开源领域事实标准,被全球众多基金会效仿。
- 许可协议灵活:Apache License 2.0平衡开源自由与商业利益,允许商业使用、修改、分发,同时保护项目商标。
- 中立技术平台:成为企业IT基础设施“标配”,吸引多家竞争型科技巨头共同参与贡献。
- 品牌价值沉淀:Apache等同于“高质量、高可靠”开源软件,用户推荐意愿远高于商业软件。

---

### 5. 挑战与风险
### 5.1 可持续性挑战
- 收入依赖风险:80%左右收入来自企业赞助,经济下行周期可能面临资金收缩。
- 人力缺口问题:全职员工极少,核心项目维护者资源紧张,长期依赖志愿者稳定性存疑。

### 5.2 安全与质量风险
- 漏洞响应压力:项目数量持续增长,安全漏洞排查、修复的工作量呈指数级上升。
- 恶意攻击风险:开源代码的开放性导致“毒代码”、数据劫持等恶意利用事件频发。
- 版本碎片化:大量用户使用老旧版本,补丁覆盖不全面,整体安全防护效果削弱。

### 5.3 外部环境风险
- 地缘政治冲击:开源软件被纳入部分国家出口管制框架,“无国界”协作模式受挑战。
- 商业竞争挤压:部分企业推出功能重叠的专有软件,通过商业生态捆绑争夺市场。
- 合规复杂性:作为跨国组织,需适配不同国家法规,合规成本持续上升。

---

### 6. 个人见解
### 6.1 Apache 模式的成功与未来挑战
Apache 最厉害的是 “社区大于代码” 的理念,在这个理念下全球开发者一起做出免费又靠谱的软件,这件事在人文的角度我个人认为是非常鼓舞的。像 Hadoop 这些成了行业刚需,还吸引企业赞助,形成良性循环。但未来有不少坎:资金全靠捐赠和活动,经济差时可能缺钱;冷门项目没商业激励,没人愿意维护;全球开发者协作,项目节奏和方向难统一,协调起来很麻烦。

### 6.2 两类开源模式的对比
开源模式大致可以分为两类,以Apache和Linux 为代表的“**开源社区基金会**”,和以Android、RedHat 为代表的“**开源商业实体**”。相比于开源生态的建设,开源商业实体更偏重于盈利性质的商业化。因此在此模式下,资金相对稳定,可投入更多资源用于技术研发、维护和市场推广。在短时间内和经济下行时,相比之下可能发展地更快。但上升到人类文化和国家发展的发展的角度,我认为一个包容的可持续的生态更有利于文化和商业的发展。

### 6.3 Apache 模式在中国的挑战与应对
Apache 在中国发展不算顺:企业爱用免费版,不愿为技术支持付费;开发者沟通文化不合,专业人才也少。我认为可行的应对方法有:建中文社区降以低参与门槛,对接信创政策适以配国产需求,多搞培训培养懂技术又懂规则的人才。
73 changes: 73 additions & 0 deletions assignments/lesson2/arnoldzzy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Git工具安装与使用报告

## 学员GitHub用户名: arnoldzzy

## 1. Git安装过程

### 1.1 访问并下载安装包,安装到本地

https://git-scm.com/install/windows

choose "Git for Windows/x64 Setup"

### 1.2 操作系统

Windows 11 Home
64-bit operating system, x64-based processor

## 2. 遇到的问题及解决方法

### 2.1 无法访问Github以及加载下载过慢

- 修改本地hosts文件

- 安装Watt Toolkit加速器from Microsoft Appstore

- 安装Dev-sidecar
https://github.com/docmirror/dev-sidecar/releases/tag/v2.0.0

大多数情况下Dev-sidecar好用,下载时用Edge比Chrome快。

### 2.2 不懂如何安装,配置以及应用git bash

- 阅读文献
https://git-scm.com/book/en/v2/

- 问AI

## 3. 版本信息截图
<img width="358" height="212" alt="image" src="https://github.com/user-attachments/assets/456c6550-22e2-4e99-a6ea-cd92a6b83096" />

## 4. Git命令使用过程总结

### 4.1 新学的 major operations
- git config --global user.name/user email: 配置用户并和email
- cd:定位到要操作的目录,操作成功后地址后会出现(master)
- git init: 创造.git文件,记录库文件的版本变化
- git status: 查看仓库改动后的状态,全局
- git diff: 比较仓库改动后的状态,局部
- git rm: git add的reversal
- git branch: 查看本地分支
- git checkout / git switch: 切换分支
- git checkout -- / git restore:恢复文件
- git log: 查看提交记录

### 4.2 新学的 variations of major operations
- git commit -m “text”: 提交文件和text到本地仓库,无需打开编辑器
- git branch -a: 查看本地远程所有分支
- git add .: 增加所有改变到暂存区
- git show HEAD: 查看最新提交的详细信息
- git log -1 HEAD: 查看head现在关联哪个分支/提交
- git checkout HEAD~1: 查看旧版本(detached HEAD模式,不可更改)
- git checkout main: 回到最新main分支(reattached HEAD,可更改)
- git reset HEAD( .): 取消(全部)文件暂存
- git diff HEAD origin/main: 比较远程和本地分支

### 4.3 模板上的
(在此处总结使用Git命令的过程,包括但不限于以下操作:
- git clone: 克隆远程仓库到本地
- git add: 添加文件到暂存区
- git commit: 提交更改到本地仓库,**需要打开编辑器**
- git push: 推送更改到远程仓库
- git pull: 从远程仓库拉取最新更改
等其他相关命令的使用体验和理解)