一名开源拓荒者的 Apache 之旅

今年是 Apache 软件基金会20周年庆,作为一家全球性的以开发开源软件为公共利益的慈善组织,正在变得更加的多元化、日渐丰富与完善。从本土软件产业的角度而言,须以站在世界的角度来认识、参与、贡献,进而领导,让更多的人受益。从个人而言,就是要经历观察、学习、奋斗、参与的过程。

目前 ASF 全球活跃成员(Member)有700多名,其中华人约有28名,目前住址在中国的有 10 位(其中今年新当选 6 位华人里住址在中国的有 3 位)。这三位来自中国新当选的 ASF Member 分别是陈亮,堵俊平(请参考开源社公众号4月18日发布的文章),张乎兴。

今天为大家推荐的故事是新当选的 ASF Member - Apache CarbonData 项目委员会主席 - 陈亮,这是一个关于本土开发者成长的历程,一个让我们从中看出崛起与趋势的走向。

Apache CarbonData 作为本土企业里第一个捐赠给 ASF 的开源项目、第一个走入 ASF 孵化器、也是第一个从 ASF 孵化器顺利毕业成为顶级项目的本土开源项目。作为一个本土大企业内第一位开路先锋的筚路蓝缕、披荆斩棘正是点滴在心头,如今贡献社区成就自身,当选为 ASF Member ,可谓是实至名归。以下陈亮将为大家娓娓道来。

陈亮简介 :2005年加入华为,一直从事大数据和 AI 相关的研发工作,对开源软件有深入理解。

“下面以华为云 EI 布道师身份给大家分享下我的 Apache 故事。

01我的Apache故事前言

很高兴2019年4月受邀成为全球最大开源社区 Apache 软件基金会的 Member 

1.jpg

ASF member  Apache 项目 PMC/Committer 主要的区别是,前者是参与基金会层面的事务,后者是具体项目层面的事务。

2.jpg

 

今年也是 Apache 基金会成立20周年,为帮助中国更多的项目和个人参与到 Apache,社区朋友建议我抽空分享下我的 Apache 故事和经验。

我的 Apache 故事与华为的 Apache 相关的大数据开源历程几乎一样,在华为很难找出第2个人,像我这样全程参与了整个工作。


02开启 Apache 之旅

2011-2014年我被外派到华为印度研究所,负责软件平台工作,当时根据印度员工两个优势(语言+软件),公司将大数据开源相关业务交由我的团队负责。华为在 2012 年 HBase 峰会上,分享并开源了 HBase 二级索引方案 hindex

https://github.com/Huawei-Hadoop/hindex

这在业界引起极大的反响和关注,有人认为,如果华为早点公布这个方案,HBase 多列组合快速查询的问题早就解决了。

我是在 2012 年开启了 Apache 之旅,开始研究开源文化和 Apache Way 的精髓,下面这些理念,我个人比较认可,分享给大家,摘自艾里克.斯蒂芬.雷蒙《大教堂与集市》“只要眼球足够多,所有臭虫都好捉”,开源软件和开放性内容兴起的背后是社会信息结构变革。技术和知识在公共领域的畅通促进发展、公平和机遇,破除与经济和政治权力绑结的知识垄断。然而草根能量需要一个健康的进化机制来真正推动社会的进步,其中核心是知识生产和传播的可靠性、可信度。


03参与 Apache 社区,积累个人的功勋值 ( Merit )

几乎所有知名的大数据开源软件全在 Apache 基金会下管理,每天社区都在发生很大的变化。华为是业界最早提供大数据套件发行版厂商之一,为了给客户提供稳定可靠的大数据软件,我们积极参与 Apache 大数据项目的内核特性开发,并贡献回馈到开源社区,多次在华为公司园区内组织 Apache 项目线下技术交流(2014年与陈超@七牛云技术总监,一起组织了杭州第一次 Apache Spark 技术 Meetup)

2016年华为将研究开发多年的大数据项目 CarbonData 开源,并捐赠给 Apache 软件基金会,进入 Apache Incubator(孵化器),经过来自华为、Intel 、Talend 、交通银行、上汽、携程等众多公司架构师和开发人员的努力,CarbonData 经过不到一年的时间,于2017年4月顺利地由孵化器毕业,正式成为 Apache 社区顶级项目,并由我本人担任此项目的 PMC Chair(项目委员会主席)。在此要特别感谢3位 Apache mentors(孵化项目导师 - 法国人 JB,印度人 UMA,印尼裔 Henry)对 Apache CarbonData 项目的贡献和帮助。同时也要感谢 Apache Kylin 项目负责人 Luke Han (韩卿),前期给了不少指导。这几年参与 Apache 项目,积累了大量经验,希望可以帮助到更多项目进入 Apache 孵化,回馈社区。

 

由于端到端负责过 Apache 孵化项目,且参与过多个 Apache 社区项目(Hadoop 、Spark 、Flink 、Hive等),我很快被 Apache Incubator(孵化器)接纳为 PMC 成员。除了未曾担任 Apache 基金会的 Board Member 和 Officers,基本上 Apache 其他所有的角色,我都担任过。

(User->Contributor->Committer->PMC->PMC Chair->Member->IPMC)

 

04Apache 经验共享

 

Apache Way 总结:

 

3.jpg

 

 

开源项目到 Apache 的关键路径:

 

 

4.jpg

 

Apache 、Linux 开源社区的对比分析:

 

5.jpg

 

 

本人总结的一套 Committer 脚本:

git clone

https://git-wip-us.apache.org/repos/asf/projectname

cd projectname

git remote rename origin apache

git remote add github

https://github.com/apache/projectname

git config --local --add remote.github.fetch '+refs/pull/*/head:refs/remotes/github/pr/*'

git fetch --all

git checkout -b pr-1062 github/pr/1062

git rebase -i apache/master (-i squash some commits.)

pick fda59df commit 1

squash x536897 commit 2

squash c01a668 commit 3

(This means, you take the first commit, and squash the following onto it)

git log -- get the commit info

git checkout apache/master

git cherry-pick 0e1c3b09ccc3493ca50a0a41ae993260a9a30493(To be merged PR's commit info)

git commit --amend -m "PR title" -m "PR description" -m "This closes #1062"

git push apache HEAD:master

 

05感想、收获

 

  • 早期国内有 Apache 孵化项目经验的人还比较少(2015年时只有 eBay 中国研究院的3个 Apache 孵化项目),不像现在这么多(目前源自中国的 Apache 顶级项目有8个,Apache 孵化项目有6个),有些问题可以直接问,少走弯路。当时 CarbonData 在孵化时,也碰到了很多问题和挑战,解决问题的办法就是去仔细阅读 Apache 官网的规定,以及去学习社区 Mailing list(邮件列表)大家曾经讨论过的问题。

  • 在 Apache 社区绝大多数人都是很 OPEN 和 NICE 的,当有人对你的项目提出问题时,其实别人是在帮助你的项目,切记不能用带着情绪化的语言去回复和争吵,且回复时就在公共的 mailing list 里公开答复。(之前有一个例子,项目成员私信去和提问题的人确认问题,最后被人家拿出来说事,被质问为什么不在社区公开讨论,结果囧大了!)

     

  • 参与 Apache 开源社区,确实要花很多时间去做贡献,但相比收获、学习到的知识、朋友、人脉等,一路走来,绝对值得

     

社区福利(数量有限,仅限前50名):如想获得华为云 ModelArts 免费云资源使用券,可以联系 chenliang613@apache.org 。(ModelArts 是面向AI开发者的一站式开发平台,提供海量数据预处理及半自动化标注、大规模分布式训练、自动化模型生成,及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期 AI 工作流)

购买华为云请点击立即购买

转载于:https://my.oschina.net/u/4146444/blog/3060686

【基于Python的大麦网自动抢票工具的设计与实现】 随着互联网技术的发展,网络购票已经成为人们生活中不可或缺的一部分。尤其是在文化娱乐领域,如音乐会、演唱会、戏剧等活动中,热门演出的门票往往在开售后瞬间就被抢购一空。为了解决这个问题,本论文探讨了一种基于Python的自动抢票工具的设计与实现,旨在提高购票的成功率,减轻用户手动抢票的压力。 Python作为一种高级编程语言,因其简洁明了的语法和丰富的第三方库,成为了开发自动化工具的理想选择。Python的特性使得开发过程高效且易于维护。本论文深入介绍了Python语言的基础知识,包括数据类型、控制结构、函数以及模块化编程思想,这些都是构建抢票工具的基础。 自动化工具在现代社会中广泛应用,尤其在网络爬虫、自动化测试等领域。在抢票工具的设计中,主要利用了自动化工具的模拟用户行为、数据解析和定时任务等功能。本论文详细阐述了如何使用Python中的Selenium库来模拟浏览器操作,通过识别网页元素、触发事件,实现对大麦网购票流程的自动化控制。同时,还讨论了BeautifulSoup和requests库在抓取和解析网页数据中的应用。 大麦网作为国内知名的票务平台,其网站结构和购票流程对于抢票工具的实现至关重要。论文中介绍了大麦网的基本情况,包括其业务模式、用户界面特点以及购票流程,为工具的设计提供了实际背景。 在系统需求分析部分,功能需求主要集中在自动登录、监控余票、自动下单和异常处理等方面。抢票工具需要能够自动填充用户信息,实时监控目标演出的票务状态,并在有票时立即下单。此外,为了应对可能出现的网络延迟或服务器错误,工具还需要具备一定的错误恢复能力。性能需求则关注工具的响应速度和稳定性,要求在大量用户同时使用时仍能保持高效运行。 在系统设计阶段,论文详细描述了整体架构,包括前端用户界面、后端逻辑处理以及与大麦网交互的部分。在实现过程中,采用了多线程技术以提高并发性,确保在抢票关键环节的快速响应。此外,还引入了异常处理机制,以应对网络故障或程序错误。 测试与优化是确保抢票工具质量的关键步骤。论文中提到了不同场景下的测试策略,如压力测试、功能测试和性能测试,以验证工具的有效性和稳定性。同时,通过对抢票算法的不断优化,提高工具的成功率。 论文讨论了该工具可能带来的社会影响,包括对消费者体验的改善、对黄牛现象的抑制以及可能引发的公平性问题。此外,还提出了未来的研究方向,如增加多平台支持、优化抢票策略以及考虑云服务的集成,以进一步提升抢票工具的实用性。 本论文全面介绍了基于Python的大麦网自动抢票工具的设计与实现,从理论到实践,从需求分析到系统优化,为读者提供了一个完整的开发案例,对于学习Python编程、自动化工具设计以及理解网络购票市场的运作具有重要的参考价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值