今年暑假,EMQ 攜手開源之夏,與高校學(xué)生開展了一場精彩紛呈的開源之旅。開源之夏(OSPP)是由中科院軟件所「開源軟件供應(yīng)鏈點亮計劃」發(fā)起的、面向高校學(xué)生的暑期開源活動,旨在鼓勵在校學(xué)生積極參與開源軟件的開發(fā)維護(hù),促進(jìn)優(yōu)秀開源軟件社區(qū)的蓬勃發(fā)展,培養(yǎng)和發(fā)掘更多優(yōu)秀的開發(fā)者。
開源軟件的協(xié)作開發(fā)模式,是當(dāng)今軟件領(lǐng)域開展的極為成功的大規(guī)模協(xié)作實踐。近年來,我國高校、科研機構(gòu)與企業(yè)在開源領(lǐng)域不斷探索前進(jìn),將開源精神薪火相傳,把一個個開源項目推向更好的未來。
EMQ 帶著對開源的熱忱與初心,攜旗下 EMQX、MQTT X、LF Edge eKuiper 三大開源項目首秀開源之夏,吸引了不少對前端、SQL 語法、流式計算等領(lǐng)域感興趣的學(xué)生。從項目選擇、撰寫項目申請書,到在核心研發(fā)工程師的指導(dǎo)下開展項目開發(fā)貢獻(xiàn)代碼,整個過程中每個參與者都收獲滿滿。歷經(jīng)三個月的項目開發(fā)和一個月的 PR 合并期,中選并參與 EMQ 開源項目的學(xué)生均順利通過結(jié)項審核。在此,我們恭喜陳俊羽、雷佳祥和葛玉菲三位同學(xué),也感謝各位用心敲下的每一串代碼,與 EMQ 共同為開源物聯(lián)網(wǎng)基礎(chǔ)設(shè)施軟件建設(shè)貢獻(xiàn)力量。
EMQX 旗下項目|MQTT-SN 客戶端實現(xiàn)
申請者:陳俊羽 南方科技大學(xué)電子科學(xué)與技術(shù)專業(yè)
項目描述:EMQX 是 EMQ 旗下的開源大規(guī)模分布式物聯(lián)網(wǎng) MQTT 消息服務(wù)器,需要基于 Erlang 語言來實現(xiàn)一個 MQTT-SN v1.2 客戶端,來完善 EMQX 對 MQTT-SN 網(wǎng)關(guān)的功能測試和應(yīng)用。目前 Github 上主要的 MQTT-SN 客戶端均為 C 或 C++ 語言版本,難以直接原生嵌入 Erlang 語言的 MQTT-SN 網(wǎng)關(guān)中,本項工作的完成,也能夠填補開源社區(qū)的這一空白。
結(jié)項報告:
項目完成度:實現(xiàn)了 MQTT-SN 數(shù)據(jù)包的序列化和反序列化處理,實現(xiàn)了使用狀態(tài)機對協(xié)議交互邏輯的處理,實現(xiàn)了 MQTT-SN 客戶端的單元測試與集成測試。
代碼貢獻(xiàn)量:改動 21 個文件,新增 3828 行。
學(xué)習(xí)心得:
非常開心能再次投入到開源之夏的活動,在導(dǎo)師的幫助下,順利完成整個項目的開發(fā),我感到非常幸運。
我選擇這個項目的初衷是,在我學(xué)習(xí)了 Erlang 和 Elixir 語言的語法和基礎(chǔ)知識之后,希望能有一個系統(tǒng)性的項目,能夠讓我進(jìn)行函數(shù)式編程語言的實際應(yīng)用,通過不同語言之間的對比,加深對于編程語言設(shè)計和操作系統(tǒng)的了解。
當(dāng)了解到 EMQ 社區(qū)主要使用的語言,是比較特別的 Erlang、Rust 和 Haskell 時,我就對這個社區(qū)有了較大的好感,包括后面和導(dǎo)師對接時,其專業(yè)水平令我非常認(rèn)可。在編程上我有一定的基礎(chǔ),加上曾參與過兩屆開源之夏,我盡可能優(yōu)先自己解決問題,但也有對于函數(shù)式編程和 MQTT-SN 協(xié)議不甚了解的地方,比如關(guān)于 Erlang 特有的 Actor 模型和使用的 mock 框架,每次當(dāng)我詢問導(dǎo)師時,都非常熱情地幫我解答,也都馬上能夠迅速解決我的問題。
除了對項目的實現(xiàn)以外,我還嘗試將某些較新的理念應(yīng)用在項目中,比如,之前我已經(jīng)了解到 Github Action 可以實現(xiàn)基于 CI/CD 的自動化檢查測試,但這次在項目實施的過程中,我需要實現(xiàn) HTML 格式文檔的部署時,了解到 Action 同樣可以實現(xiàn)對于項目主頁的自動化部署,從而實現(xiàn)了文檔隨項目的自托管。也正是開源之夏這樣一個開放性的活動,能夠讓我逐步探索各種新的技術(shù)和最佳實踐。
項目成果:
1、完成 MQTT-SN 客戶端實現(xiàn),并提供了命令行的發(fā)布/訂閱的接口。
2、完成核心功能的單元測試、與 EMQX MQTT-SN 網(wǎng)關(guān)的集成測試。本項目的覆蓋率達(dá)到 65%。
3、完成并發(fā)布了對外的接口文檔
MQTT X 旗下項目|Electron 桌面客戶端軟件的自動更新
申請者:雷佳祥 太原科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院-智能科學(xué)與技術(shù)
項目描述:MQTT X 是 EMQ 旗下的一個強大的跨平臺 MQTT 5.0 桌面和 CLI 客戶端。目前已經(jīng)支持并提供了完整的 MQTT 協(xié)議的功能測試能力,需要一些針對前端和網(wǎng)絡(luò)功能方面的優(yōu)化,使其更加完整易用。本項目將為 MQTT X 添加一些可自動更新版本的功能,程序內(nèi)更新后顯示新版本的發(fā)布日志等的功能,用戶可以減少一些手動操作來更快體驗和使用到后續(xù)新版本的功能,從而提升整體的軟件使用體驗。
結(jié)項報告:
項目完成度:根據(jù)項目的產(chǎn)出要求(實現(xiàn)自動化更新與彈出更新日志),已全部完成并上線。
代碼貢獻(xiàn)量:貢獻(xiàn)代碼量為 200 行左右,已發(fā)布到新版本。
學(xué)習(xí)心得:
很慶幸此次暑假能發(fā)現(xiàn)并參加開源之夏這么有意義的活動,整個活動技術(shù)氛圍十分濃厚,同學(xué)們在參與競選的時候也表現(xiàn)得十分積極。開源在我看來是一個十分有意義的事,在此之前我不太理解開源,也沒有接觸過開源,感謝這次活動能讓我步入開源的大門。
技術(shù)上的提升:
·極大開拓了前端開發(fā)的視野,在做這個項目之前,我還只認(rèn)為前端可能就是開發(fā)網(wǎng)站、APP、微信小程序的工程師,做完這個項目后,我發(fā)現(xiàn)前端還可以幫助 PC 端應(yīng)用實現(xiàn)諸如自動化更新等強大的功能,只要是做優(yōu)化、處理用戶交互方面的功能都是前端的開發(fā)范圍。
·更加了解了 Electron、Typescript 等技術(shù),對跨平臺開發(fā)有更多的了解。
·熟悉了基本的 git 操作與 GitHub 的提交 PR 的流程,以前不明白 git 的用處,現(xiàn)在極大熟練了 git 與GitHub 的使用。
綜合能力的提升:
·遇到困難時,多了很多從容,善于使用搜索來了解 bug 并解決 bug。
·從學(xué)生思維轉(zhuǎn)變?yōu)楣こ處熕季S,即:遇到自己不會的技術(shù)時,可以以解決問題為目的,去學(xué)習(xí)新的技術(shù),這樣效率會非常的高。
·開發(fā)時會頻繁的與導(dǎo)師溝通,需要表達(dá)清楚問題所在,所以在開發(fā)的過程中也極大的提升了我的溝通能力。
項目成果:
自動化更新功能上線后已經(jīng)下載目標(biāo)版本的安裝包,完成了各種場景下的更新測試。
LF Edge eKuiper 旗下項目|流式計算窗口函數(shù)優(yōu)化探索
申請者:葛玉菲 西安郵電大學(xué)軟件工程專業(yè)
項目描述:LF Edge eKuiper 是由 EMQ 發(fā)起的 Go 語言實現(xiàn)的輕量級物聯(lián)網(wǎng)邊緣分析、流式處理開源軟件項目,現(xiàn)已捐贈給 LF Edge基金會。窗口函數(shù)是流式計算的核心概念之一,也是開源邊緣流式計算引擎 eKuiper 常用的功能之一。eKuiper 實現(xiàn)了幾種常見的時間窗口和計數(shù)窗口,但是目前對于較長時間的窗口的優(yōu)化仍較為欠缺。流式計算窗口的使用場景多種多樣,業(yè)界和學(xué)術(shù)界已有較多的研究和優(yōu)化方案。本項目的目標(biāo)是實現(xiàn)并設(shè)計 WASM 擴(kuò)展框架,方便用戶使用 WASM 函數(shù)擴(kuò)展 eKuiper 的處理能力。完成項目可以幫助開發(fā)者更深入地理解流式計算、大數(shù)據(jù)領(lǐng)域和數(shù)據(jù)庫 SQL 引擎等方面的通用知識并應(yīng)用于今后的工作學(xué)習(xí)中。
結(jié)項報告:
項目完成度:已按照原定方案實施項目,并積極完成了提高部分的課題。
代碼貢獻(xiàn)量:改動 26 個文件,新增 1355 行,刪除 4 行。
學(xué)習(xí)心得:
很高興能夠參加暑期開源活動,整個活動參與下來,我從中學(xué)到了很多,不但了解到了很多開源社區(qū),更是可以在一個社區(qū)深造,完成項目。開源在我看來是非常有意義的,不但可以開闊眼界,而且每個人都有可能為開源社區(qū)做出貢獻(xiàn),并在與開源同好們交流的過程中獲得很大的提升。此外,想要上手某一項技術(shù)時,盡量查詢社區(qū)官方文檔,這是了解學(xué)習(xí)最好的途徑。
技術(shù)上的提升:
·了解并學(xué)習(xí)了一門新技術(shù) Webassembly,通過咨詢社區(qū)導(dǎo)師和查閱社區(qū)文檔學(xué)會這項技術(shù)的使用,學(xué)會如何運用到我的開源項目中。
·熟練了代碼的調(diào)試。調(diào)試也可以讓我們很方便的了解代碼的運行堆棧與過程。
·學(xué)會如何上手了解一個社區(qū)的項目,熟悉了基本的 git 操作與 Github 提交 PR 的流程。
項目成果:
成功將 WASM 引入 ekuiper 插件機制,使其可以在流式 SQL 中調(diào)用 WASM 形式的函數(shù)。
后記
感謝各位導(dǎo)師和學(xué)生對開源項目開發(fā)的奉獻(xiàn),希望有意深耕開源物聯(lián)網(wǎng)數(shù)據(jù)基礎(chǔ)設(shè)施軟件領(lǐng)域的學(xué)生們持續(xù)精進(jìn)技術(shù)能力,永葆對開源的熱愛。EMQ 期待在不久的將來與各位新生力量共同打造高性能、高可用、高安全的世界級開源軟件產(chǎn)品,服務(wù)人類未來產(chǎn)業(yè)與社會。
審核編輯黃昊宇
-
開源
+關(guān)注
關(guān)注
3文章
3412瀏覽量
42743 -
EMQX
+關(guān)注
關(guān)注
0文章
8瀏覽量
292
發(fā)布評論請先 登錄
相關(guān)推薦
RT-Thread榮登2024開源創(chuàng)新榜單,躋身中國十大開源社區(qū)
![RT-Thread榮登2024<b class='flag-5'>開源</b>創(chuàng)新榜單,躋身中國十<b class='flag-5'>大開源</b>社區(qū)](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
開源鴻蒙榮獲開放原子“2024年度操作系統(tǒng)領(lǐng)域國內(nèi)活躍開源項目”
黃鶴開源社區(qū)正式發(fā)布
開源鴻蒙應(yīng)用案例重磅發(fā)布
開放原子開源基金會與三個開源項目舉行捐贈簽約儀式
2024年度國內(nèi)活躍開源項目和開發(fā)者在武漢揭曉
高校開源開發(fā)者培養(yǎng)分論壇亮點前瞻
凌蒙派OpenHarmony開源項目榮獲本期Gitee官方推薦
![凌蒙派OpenHarmony<b class='flag-5'>開源</b><b class='flag-5'>項目</b>榮獲本期Gitee官方推薦](https://file.elecfans.com/web2/M00/26/21/pYYBAGG5jjSALfrEAAAwAa9Oig8799.png)
CCF開源創(chuàng)新大賽決賽結(jié)果發(fā)布!OpenHarmony應(yīng)用開發(fā)賽道盡展風(fēng)采
![CCF<b class='flag-5'>開源</b>創(chuàng)新大賽決賽結(jié)果發(fā)布!OpenHarmony應(yīng)用<b class='flag-5'>開發(fā)</b>賽道盡展風(fēng)采](https://file.elecfans.com/web2/M00/35/6C/poYBAGIq5qqAQJzlAAA5OpNWiJA439.png)
OpenHarmony首次亮相歐洲開源會議
![OpenHarmony首次亮相歐洲<b class='flag-5'>開源</b>會議](https://file1.elecfans.com/web2/M00/0B/30/wKgaomccZp2AVkczAAAgm0PURWk196.jpg)
開放原子開源運營專區(qū)正式上線
真格基金宣布捐贈開源AI項目vLLM
Matepad pro12.2 已上市半個月,但是還沒有在開源網(wǎng)站看到該項目的開源信息,違背開源精神
項目分享|基于ELF 1S開發(fā)板完成的物聯(lián)網(wǎng)開源項目
![<b class='flag-5'>項目</b>分享|基于ELF 1S<b class='flag-5'>開發(fā)</b>板完成的物聯(lián)網(wǎng)<b class='flag-5'>開源</b><b class='flag-5'>項目</b>](https://file1.elecfans.com/web2/M00/E6/2A/wKgaomZCuEyALx2RAAAyjXiLOHA083.png)
評論