许北林
软通动力
资深项目经理

在全球开源趋势下,中国正逐渐成为全球开源软件的主要使用者和核心贡献者。今天我们来认识一位接触 OpenHarmony 不到一年,便带领团队成功开发出一款“启航 KP“智能开发套件的开发者——软通动力资深项目经理许北林

作为软通动力硬件团队负责人,许北林负责团队整体技术规划、项目看护、成果交付以及部门、成员的协调沟通。在工作中,许北林积极推进 OpenHarmony 解决方案,同时推进 OpenHarmony 开发板的开源事宜,特别是推动硬件开源以及硬件设计指南,做到“软硬兼施”。

接下来,让我们和许北林一起聊一聊关于他加入 OpenHarmony 生态的初心、对 OpenHarmony 的看法、在开源项目中遇到的困难和收获,以及开源过程中的心得体会等话题。

Q=OpenHarmony A=许北林

Q1:首先非常开心许老师能接受我们的访谈,请您给我们简单地介绍下自己和所在的团队

大家好,我是许北林,是软通动力创新中心硬件开发团队的项目经理。团队主要负责打造业务硬件底座,由硬件对接、硬件技术支持、硬件设计、固件开发组成,对外支持客户顺利对接华为生态,对内建立软通硬件生态。我是 2021 年初正式接触 OpenHarmony 开源项目,希望能够为开源生态做出一些贡献。

Q2:那是什么原因促使您和您的团队加入OpenHarmony生态、参与开源共建呢?您认为,OpenHarmony项目最吸引人的点在哪里?

如今,开源在各行业的应用逐渐加深,开源软件也成为各行业信息系统的重要组成。我一直觉得,和这个世界交互、分享越多,就会有更多的可能性。

从开发者角度来讲,我们不只是现成开源项目的使用者和消费者,更可以是创作者和贡献者。OpenHarmony 是面向万物互联的下一代操作系统, 使用了先进的分布式架构,对开发者非常友好,开发效率也非常高。

加入 OpenHarmony 生态,从自身来讲,可以提升自身能力;从企业来讲,可以壮大公司实力;再往大讲,可以助力国家的发展。在开源的路上,只有通过共商、共建、共享,才能实现共赢,惠及每一个热爱并热心开源事业的组织与个人。

Q3:有了解到您和您的团队开发了一个OpenHarmony的“启航KP”开发套件项目,可以给大家简单介绍下吗?

做这个项目最开始,是打算自研一款软通自己的认证模组,让厂商的模组选择面更加宽广,打开软通的硬件局面。有了核心模组,我们就同步开发了 OpenHarmony 开发板。

这里所说的开发板就是“启航 KP”开发套件,这块开发板搭载了 OpenHarmony 开源操作系统。因为拥有灵活的模块化拓展能力和组网能力,可以适用丰富多样的应用场景,比如汽车、能源等工业和消费领域。

此外,“启航 KP”智能开发套件也已经上架华为开发者联盟生态市场。软通 WiFi Harmony Connect 模组作为软通“启航 KP”开发板核心,提供主控能力,已经成功助力“启航 KP”开发板参加被誉为“中国科技第一展”的高交会及第二届操作系统产业峰会,收获了广泛的关注。另外,产品和相关材料也将被软通教育 OpenHarmony 教师培训收录。作为项目的主导成员之一,我感到非常的自豪。

Q4:在整个开发进程中,您和团队遇到的最大的困难和最大的收获是什么呢?

最大的收获是和团队一起,克服重重困难,成功完成了“启航 KP”开发套件这个项目。这块开发板运用了自研 3861 模组作为核心驱动,并将开发板包含核心板在内的 12 个模块的代码与原理图全部开源,为 OpenHarmony 推广做贡献。

现在回想起整个开发的过程,心里感触颇丰。平均年龄二十来岁的我们都是第一次做开源项目,最开始,每一个人都很兴奋,很多人是第一次实打实地做开发套件,同时也能够为公司实现 0 的突破。但是,现实首先狠狠地给了我们一巴掌。

在研发过程中,我们逐渐发现自身经验的不足,有点无从下手。但是整个团队坚持主动思考,主动学习,甚至在我们吃饭的时候,团队的小伙伴都在思考讨论项目的事情,有时候灵机一现,就赶紧扒拉扒拉饭,冲上楼去敲键盘。虽然这个过程充满挑战和艰辛,但是我觉得这个过程非常宝贵,整个团队都学到了很多东西,并且这种成就感太棒啦!

说到困难,在射频技术方面,没有外部技术支撑,又没有相关技术积累,确实给我们的研发带来了一定的难度。但是面对这些困难,我们一边摸索一边前进,并总结了自己的一套方法论。

首先,我们要完成 3861WiFi 模组天线外的电路布局,再将实际数据导入 HFSS 软件进行 2.4G 射频仿真,这个包括:电路板尺寸、材质、叠层数据;之后根据仿真结果反复调整匹配电路参数和天线尺寸,为了调整到最合适参数,这个过程真的是反复了很多次。

让我最有感触的是,虽然组里一个个都是成天穿着打扮都不太讲究的小伙子,没想到工作起来都这么细心又这么有耐心,遇到困难就查资料、细心询问、认真聆听与提问,在大家的不懈努力下,终于得到在指定带宽内合格的 S11 参数。但是在按照仿真结果进行天线设计的时候,我们没有这个技术经验积累,反复联调近 2 个月的时间,尝试了很多次,也失败了很多次,团队成员就一起组会,一起啃技术文档,一起加班探讨更完善的方案,通过打样后用网络分析仪进行实际测试,再根据结果再次调整匹配电路和天线线长。

功夫不负有心人,我们成功攻克了射频技术的难关,这也提高了团队小伙伴们的信心。同时,授人以鱼不如授人以渔,为了帮助后续的小伙伴们研发更加顺利,硬件开发组把整个开发板的硬件 + 固件的技术文档也一并作为教程输出,希望对别人有所帮助。

Q5:能开发出这么一个优秀的产品,您和您的团队一定付出了很多。可以请许老师给我们分享一下,开发这个产品的整个过程,有什么记忆深刻的经历吗?

我们这个项目是一个 OpenHarmony 开源项目,对于我们来讲,是一个正式加入 OpenHarmony 大家庭的一个机会,同时也是一个挑战。在这个过程中,每一个成员都付出了很多心血。

记得有一次,刚好是周五,临近下班的时候遇到了一个技术难题,好像是有默契一样,谁也没说要走,我立刻发起提议:进会议室讨论个明白,大家二话不说都进了会议室。当大家争执得面红耳赤时,有个同事的电话响了,他外地的女朋友刚赶来找他过周末,我们说让他先回去,但他和女友短暂聊了几句后,放下电话毅然决然地和我们一起继续讨论问题。通过将近 2 个小时的争论,和后续的不断的调整代码和实验,我们终于在 12 点解决了问题。解决问题后,突然听到谁的肚子叫了下,原来大家忙到都忘记了吃晚饭。

现在讲起来,这种情形实在太多了,为了解决问题,我们可以加班,可以争执,可以各抒己见,但私底下又是一群非常要好的朋友。能够和这样一群可爱又敬业的伙伴们一起,是我的荣幸,也让我深刻体会到了团队的重要性,一个程序员的责任心不止是对自己的代码负责,更是与团队共进退,对自己团队的负责。

Q6:在开发项目的过程中,您对OpenHarmony的感触一定特别深。您最想吐槽OpenHarmony哪些方面?或者期待未来OpenHarmony哪些方面能够得到改善、提供更多支持呢?

OpenHarmony 系统很庞大,但是目前也比较基础,我们应该着眼于 OpenHarmony 的优势,如在分布式的交互方式,如物联网上的应用。

当然,也希望 OpenHarmony 能够组织更多的交流会,给开发者多提供一些平台,释放更多的教学内容,大家一起共建 OpenHarmony 生态。

Q7:OpenHarmony目前仍处在开发探索阶段,很多共建单位和生态伙伴还不清楚开源项目的玩法,或不知该如何着手进行开发。可以请许老师给大家分享一条,您认为最重要或最值得分享的心得吗?

最好的办法,就是跟着我们的开源资料,从搭建环境开始学习。我们的开源开发板,全套资料都进行了开发,并有声情并茂的视频讲解。当然,关键点,还是学习者应该亲自完成例程的代码编写,并举一反三,完成学习例程的同时进行自己项目的自研扩展。大家一起共建共享,也一起完善这份开源事业。

Q8:采访的最后,许老师还有什么话特别想分享的吗?

有些事不是看到了希望才去坚持,而是因为坚持了才会看到希望。仰望星空,不如躬身入局,欢迎大家加入 OpenHarmony 生态大家庭。

搜索

复制

许北林:我为什么加入OpenHarmony生态?又为什么要做“启航KP”开发套件?的更多相关文章

  1. 破界!Omi生态omi-mp发布,用小程序开发生成Web

    omi-mp 是什么 Omi 框架是微信支付线研发部和 AlloyTeam 开源的通用 Web 组件化框架,基于 Web Components,用来开发 PC.手机浏览器或者微信.手Q webview ...

  2. 【OpenHarmony移植案例与原理】XTS子系统之应用兼容性测试用例开发

    摘要:本文主要介绍ACTS应用兼容性测试用例开发编译. 本文分享自华为云社区<移植案例与原理 - XTS子系统之应用兼容性测试用例开发>,作者: zhushy . XTS(X Test S ...

  3. 【分享汇总】25个主题分享,360°领略OpenHarmony最新技术版图

    2021年10月,开放原子开源基金会旗下开源项目 OpenAtom OpenHarmony (以下简称"OpenHarmony") 应邀参加华为2021 HDC 开发者大会,并组织 ...

  4. 王家林 大数据Spark超经典视频链接全集[转]

    压缩过的大数据Spark蘑菇云行动前置课程视频百度云分享链接 链接:http://pan.baidu.com/s/1cFqjQu SCALA专辑 Scala深入浅出经典视频 链接:http://pan ...

  5. Spring生态

    1.简洁有力,干掉了j2ee容器层特别是ejb,spring在rod Johnson十几年前一个人单挑j2ee体系开始,到十年前开始大行其道至今,基本上是java开发领域的事实标准.从此大部分开发者去 ...

  6. Office 365开发概述及生态环境介绍(二)

    本文于2017年3月19日首发于LinkedIn,原文链接在这里 在上一篇 文章,我给大家回顾了Office发展过来的一些主要的版本(XP,2003,2007,2013等),以及在Office客户端中 ...

  7. Spring生态研习【一】:定时任务Spring-task

    本系列具体研究一下spring生态中的重要或者常用的功能套件,今天从定时任务开始,主要是spring-task.至于quartz,下次找个时间再总结. 我的验证环境,是SpringCloud体系下,基 ...

  8. fw: 专访许鹏:谈C程序员修养及大型项目源码阅读与学习

      C家最近也有一篇关于如何阅读大型c项目源代码的文章,学习..融合.. -------------------- ref:http://www.csdn.net/article/2014-06-05 ...

  9. 阿里云高磊:API网关加速能力聚合与生态集成

    导读:本文中,阿里云高级技术专家高磊(花名:埃兰)将聚焦API网关加速能力聚合与生态集成,讲述API如何实现系统间的衔接和API网关的产品升级进程,重点展示了一些新功能.新体验和新变化. 大家下午好, ...

  10. 发布SaaS加速器:我们不做SaaS,我们只做SaaS生态的推进者和守护者

    摘要: 此次阿里云推出的SaaS加速器,涵盖商业中心.能力中心.技术中心三大板块,是阿里巴巴商业.能力和技术的一次合力输出:技术能力在这里沉淀为一个个模块,ISV和开发者只要通过简单的操作,写很少的代 ...

随机推荐

  1. django中如果不是第一次迁移的时候就配置AUTH_USER_MODEL(用来告知django认证系统识别我们自定义的模型类),那么该如何解决才能让django的认证系统识别且不会报未知错误?

    Django认证系统中提供的用户模型类及方法很方便,我们可以使用这个模型类,但是字段有些无法满足项目需求,如还需要保存用户的手机号,需要给模型类添加额外的字段. Django提供了django.con ...

  2. 02-Redis系列之-架构和高级API的使用

    通用部分 通用命令 # 1-keys # 打印出所有key keys * # 打印出所有以n开头的key keys n* # 打印出所有以nam开头,第四个字母是a到z的范围 keys nam[a-z ...

  3. C C++指针面试题零碎整理

    最基础的指针如下: int a; int* p = &a; 答:p指向a的地址,&是取a的地址.*指的是指针中取内容的符号. 2.str[]和str*的区别: char str1[] ...

  4. 【Azure 服务总线】Azure门户获取ARM模板,修改Service Bus的TLS版本

    问题描述 在Azure中创建Sverice Bus服务后,如果想修改服务的TLS版本,是否有办法呢? 问题解答 通过Service Bus的ARM模板,修改属性值中的 minimumTlsVersio ...

  5. kotlin协程小记

    转载请标明出处:https://www.cnblogs.com/tangZH/p/16849169.html -[kotlin协程小记]-[协程的async使用]- [kotlin协程异常处理之-tr ...

  6. 机器学习策略篇:详解训练/开发/测试集划分(Train/dev/test distributions)

    训练/开发/测试集划分 设立训练集,开发集和测试集的方式大大影响了或者团队在建立机器学习应用方面取得进展的速度.同样的团队,即使是大公司里的团队,在设立这些数据集的方式,真的会让团队的进展变慢而不是加 ...

  7. 1. JVM体系结构

    1. 前言 作为Java工程师 ,jvm对于 java的重要性不言而喻,但是 我们又对jvm了解多少 Java的跨平台性 java发布的口号 "一处编译到处运行 " 依赖于jvm, ...

  8. Java interface 接口的使用 implements 实现----

    1 package com.bytezreo.interfacetest; 2 3 /** 4 * 5 * @Description interface 接口的使用 implements 实现---- ...

  9. hadoop集群启动成功但进入web50070管理界面显示DataNode为0与集群运行,结果全为0的问题总结

    Hadoop完全分布式出现DataNode为0的解决方案 问题:在配置好Hadoop后,jps命令下看见Hadoop服务已经启动,namenode和datanode都已经启动,但进入Hadoop界面还 ...

  10. SSH原理与实践(二)

    主页 个人微信公众号:密码应用技术实战 个人博客园首页:https://www.cnblogs.com/informatics/ 引言 在上一篇文章[ssh原理与实践(一)]中我们详细介绍了SSH两种 ...