TechSummary 2025-07-29
· 閱讀時間約 22 分鐘
GitHub 全新開源播客:從初次提交到大型專案 🎧
- GitHub 推出全新播客,深入探討開源生態系的故事、專案、人物與理念,強調開源作為軟體創新的重要發射台,尤其在 AI agents、edge runtimes、climate-tech dashboards 等領域。
- 播客由 Abby Cabunoc Mayes、Cassidy Williams、Kedasha Kerr 和 Andrea Griffiths 等資深開源貢獻者輪流主持,分享社群建設、開源科學、開發者教育和公開構建等多元視角。
- 首集介紹主持人如何參與開源,並探討在內容飽和的世界中創建初學者內容的重要性。
- 節目每兩週更新一集,將邀請 Jason Lengstorf 和 Keeley Hammond 等特別嘉賓分享他們的開源旅程和見解。
- 亮點開源專案預覽:
- Anime.JS: 視覺效果出眾的 JavaScript 動畫函式庫。
- Docs: 法國和德國政府合作開發的開源文件協作編輯器。
- CSS Zero: 簡化網頁開發的無構建前端入門套件。
- 後續主題將深入探討 Model Context Protocol (MCP) 如何提升 AI 工具的透明度和互操作性。
Docker 加速企業現代化與雲端遷移 🚀
Source: https://www.docker.com/blog/accelerate-modernization-and-cloud-migration/
- 報告指出,高達 80% 的企業工作負載仍運行在舊有系統上,導致營運成本、安全風險增加,並限制企業在快速變化市場中的競爭敏捷性。
- 企業在現代化和雲端遷移中面臨的挑戰包括:複雜的舊有依賴、雲端安全與合規風險、開發者效率低下、雲端成本超支以及工具碎片化。
- Docker 產品整合(Docker Desktop、Docker Hub、Docker Build Cloud、Docker Scout、Testcontainers Cloud 和 Administration)旨在幫助企業高效、安全、漸進地現代化舊有應用程式並遷移至雲端。
- Docker 提供的解決方案包括:
- 容器化遺留應用程式:簡化將舊有工作負載打包並遷移到雲端的過程。
- 自動化 CI/CD 管道:透過自動化工作流程和雲端建構加速,加速建構、測試和部署週期。
- 嵌入式安全與治理:在整個開發生命週期中整合即時漏洞分析、策略執行和合規性檢查。
- 使用受信任安全內容:硬化映像檔(Hardened Images)透過簽名和 distroless 基礎減少高達 95% 的攻擊面,並內建 SBOMs 以便審計。
- 標準化環境:確保開發、測試和生產環境的一致性,減少配置漂移和後期缺陷。
- 漸進式、低風險現代化:無需顛覆性的多年改造,Docker 讓企業能夠從小規模開始,快速交付價值並擴展現代化工作。
Docker Content Trust (DCT) 即將退役 🔒
Source: https://www.docker.com/blog/retiring-docker-content-trust/
- Docker 宣布將逐步退役 Docker Content Trust (DCT),此功能最初於 10 年前推出,用於透過 The Update Framework (TUF) 和 Notary v1 專案驗證容器映像檔。
- 退役的原因是上游 Notary 程式碼庫不再積極維護,且容器生態系統已轉向 Sigstore 或 Notation 等更新的映像檔簽署與驗證工具。目前,使用 DCT 的 Docker Hub 映像檔拉取量已顯著下降,不足 0.05%,且 Microsoft 已宣布棄用 Azure Container Registry 中的 DCT 支援。
- 對 Docker Official Images (DOI) 使用者的影響:自 2025 年 8 月 8 日起,最舊的 DOI DCT 簽署憑證將開始過期。若
DOCKER_CONTENT_TRUST
環境變數設為True
,DOI 拉取將會失敗。建議取消設定此變數。docker trust inspect
指令將不再適用於 DOI。 - 對使用 DCT 發布映像檔的發布者的影響:應開始規劃轉移至其他映像檔簽署與驗證解決方案(如 Sigstore 或 Notation)。Docker 將很快發布相關遷移指南。
- Docker 承諾將實施基於現代、廣泛使用工具的新映像檔簽署解決方案,以持續提升容器生態系統的信任度。
運用 Amazon Q Developer CLI 排除 Elastic Beanstalk 環境故障 💡
- Amazon Q Developer CLI 的增強型 CLI 代理功能,能顯著簡化 AWS Elastic Beanstalk 環境的故障排除過程,讓開發者和 DevOps 團隊更高效地識別和解決操作問題。
- Q CLI 可作為 Elastic Beanstalk 環境問題的得力助手,無需手動瀏覽多個 AWS 控制台頁面或解析大量日誌。
- 故障排除範例與實踐:
- 環境健康問題 (HTTP 5xx 錯誤):使用
q chat
並描述問題,Q CLI 能分析日誌,自動識別問題根源(如 Node.js 應用程式運行在 3000 埠,但 Nginx 代理預設連接 8080 埠),並提供解決方案,包括修改環境配置。- EB Dashboard 警告狀態截圖:
- Q CLI 端口問題解決方案截圖:
- EB Dashboard 警告狀態截圖:
- 環境創建失敗 (VPC 連接問題):Q CLI 能檢查相關網路配置(VPC, 子網, 路由表, 安全組),找出問題點(如子網沒有出站網路存取),並提供多種解決方案。
- EB 事件 VPC 連接問題截圖:
- Q CLI 識別網路配置問題截圖:
- Q CLI 網路配置問題解決方案截圖:
- EB 事件 VPC 連接問題截圖:
- 命令執行失敗 (應用程式或依賴問題):Q CLI 可以檢查事件和日誌,找出錯誤原因(例如
requirements.txt
中 Jinja 版本不兼容),並提供更新建議和本地測試步驟。- Q CLI 識別部署失敗原因並提供解決方案截圖:
- Q CLI 識別部署失敗原因並提供解決方案截圖:
- 結合 EB CLI 使用:Q CLI 可與 EB CLI 協同工作,透過自然語言指令自動修改檔案(如
Procfile
)並部署變更, 進一步提升效率。- Q CLI 提示排除 Python 部署問題截圖:
- Q CLI 識別部署失敗原因並建議更新 Procfile 截圖:
- Q CLI 提示排除 Python 部署問題截圖:
- 環境健康問題 (HTTP 5xx 錯誤):使用
- 總結:Amazon Q Developer CLI 大幅縮短故障排除時間,將數小時的日誌解析與控制台操作縮減為數分鐘。
DataGrip 2025.2:AI 聊天中資料庫物件上下文、PostgreSQL 與 MS SQL Server 的分級內省等新功能 📊
- DataGrip 2025.2 引入多項新功能以提升資料庫開發體驗。
- AI 助手功能強化:
- 現在可將特定資料庫物件附加到 AI 聊天中,透過
@dbObject:
或#dbObject:
提及。 - 圖片範例:
- 提供基於雲端的程式碼補全功能,根據上下文實時補全單行、程式碼塊甚至整個腳本,並匹配用戶的風格和命名規範。
- 圖片範例:
- 現在可將特定資料庫物件附加到 AI 聊天中,透過
- 連接性改進:
- 為 PostgreSQL 和 Microsoft SQL Server 引入分級內省 (Introspection by levels) 功能,允許 DataGrip 根據資料庫大小自動調整加載的元數據量。
- PostgreSQL 實現智能刷新 (smart refresh),只刷新查詢執行時可能修改的物件,顯著減少 schema 刷新時間。
- 圖片範例:
- SQLite 現在支援在 WSL 中存取資料庫檔案。
- 圖片範例:
- MongoDB 連接設置中可指定讀取操作的路由方式和副本集。
- 圖片範例:
- 資料操作優化:
- 資料編輯器中,帶有 JOIN 子句的 SELECT 查詢結果網格現在可編輯,可直接修改單元格值並預覽生成的 DML。
- 圖片範例:
- 新增網格熱力圖功能,支援兩種配色方案以根據值高亮單元格。
- 圖片範例:
- 可透過「Find Action」一鍵清除所有列的本地篩選器。
- 圖片範例:
- 程式碼編輯器改進:
- 選取程式碼片段時會出現浮動工具欄,提供上下文相關和 AI 驅動的操作。
- 圖片範例:
- 溝槽區新增「取消運行語句」按鈕。
- 資料源在 IDE 重啟後不再從 SQL 文件中分離,且文件工具視窗會顯示附加的資料源名稱。
Koog:Kotlin 構建與擴展 AI 代理 — JetBrains 直播系列 🤖
- JetBrains 將於 2025 年 8 月舉辦兩部分直播系列,介紹 Koog —— 一個開源的 Kotlin 代理框架,旨在幫助開發者從零開始構建 AI 代理。
- 活動詳情:
- 直播系列:Koog:使用 Kotlin 構建與擴展 AI 代理
- 日期:2025 年 8 月 12 日和 18 日
- 時間:世界標準時間下午 3:00
- 第一場 (8 月 12 日):
- 主題:使用 Koog 啟動 Kotlin AI 代理開發。
- 內容包括:Koog 的理念、願景與生態系統;為何選擇 Kotlin 進行 AI 代理開發;Koog 的核心架構和代理模型;如何使用最少設置構建和運行第一個「Hello Agent」。
- 第二場 (8 月 18 日):
- 主題:使用 Koog 構建更智能的 AI 代理。
- 內容包括:Koog 代理如何處理上下文並控制其行為;如何使用內置追蹤功能進行調試和可觀察性;如何整合外部工具和 API 擴展代理功能;如何構建旅行規劃代理。
- 本次直播系列旨在指導 Kotlin 開發者或對構建智能系統感興趣的 AI 愛好者,從基礎到高級用例進行學習。
JetBrains 與 ICPC:2024-2025 賽季回顧 🏆
Source: https://blog.jetbrains.com/blog/2025/07/29/jetbrains-icpc-2024-2025-season/
- JetBrains 自 2017 年起擔任國際大學生程式設計競賽 (ICPC) 的全球程式設計工具贊助商,提供 IntelliJ IDEA、PyCharm、CLion 等專業 IDE,以及作為官方程式設計語言之一的 Kotlin。
- 在 2024-2025 賽季,JetBrains 的參與觸及全球 111 個國家、3,000 多所大學的 50,000 多名學生和教練。
- JetBrains 積極參與了 400 多場現場比賽,包括世界總決賽,透過提供工具、設立展位、舉辦講座、進行挑戰和招募實習生等方式支持競賽社群。
- 世界總決賽:去年首次同時舉辦三場世界總決賽,分別在盧克索和阿斯塔納。
- 歐洲地區賽:參加了西南歐 (SWERC)、西北歐 (NWERC)、中歐 (CERC)、東南歐 (SEERC) 地區賽以及歐洲錦標賽。
- Neapolis University Pafos 的 Sigma++ 團隊在歐洲錦標賽中獲得銅牌並晉級世界總決賽。
- 展位的「盲眼編程挑戰」受到選手歡迎。
- 圖片範例:
- 亞洲地區賽:在亞洲東部大陸決賽(中國)與頂尖大學教育者交流,並參與印度最大的 ICPC 活動(Amritapuri 地區賽),JetBrains 工具在亞洲各地區廣泛使用。
- 美洲地區賽:作為南加州地區賽唯一現場贊助商,提供講座和資源。參與北美錦標賽 (NAC),與 MIT、Stanford、Harvard 等頂尖學府交流。
- 圖片範例:
- JetBrains 致力於為頂尖程式設計人才提供工具和支持,即使未能親臨現場,其 IDE 和 Kotlin 語言仍在競賽中發揮重要作用,並透過品牌露出持續支持社群。
更快的 Python:解鎖 Python 全局解釋器鎖 (GIL) ⚙️
- Python GIL 是什麼? GIL (Global Interpreter Lock) 是一個互斥鎖,確保在任何時候只有一個執行緒可以訪問 Python 解釋器。這導致 Python 無法實現真正的多執行緒並行,但它簡化了對象的引用計數和垃圾收集,並避免了多執行緒帶來的「競爭條件」(race condition)。
- 為什麼會有 GIL? GIL 由 Guido van Rossum 於 1992 年加入,當時個人電腦大多是單核,多執行緒需求不高。GIL 簡化了程式實作並易於維護。
- 如何在 GIL 存在下實現並行? 可以使用 Python 的
multiprocessing
標準函式庫。它透過使用子程序而非執行緒來規避 GIL 限制,從而充分利用多核處理器。- 多處理範例:
- 異步處理(單執行緒):
import asyncio
import time
async def make_burger(order_num):
print(f"Preparing burger #{order_num}...")
await asyncio.sleep(5) # time for making the burger
print(f"Burger made #{order_num}")
async def main():
order_queue = []
for i in range(3):
order_queue.append(make_burger(i))
await asyncio.gather(*(order_queue))
if __name__ == "__main__":
s = time.perf_counter()
asyncio.run(main())
elapsed = time.perf_counter() - s
print(f"Orders completed in {elapsed:0.2f} seconds.") - 使用
multiprocessing
實現並行:import multiprocessing
import time
def make_burger(order_num):
print(f"Preparing burger #{order_num}...")
time.sleep(5) # time for making the burger
print(f"Burger made #{order_num}")
if __name__ == "__main__":
print("Number of available CPU:", multiprocessing.cpu_count())
s = time.perf_counter()
all_processes = []
for i in range(3):
process = multiprocessing.Process(target=make_burger, args=(i,))
process.start()
all_processes.append(process)
for process in all_processes:
process.join()
elapsed = time.perf_counter() - s
print(f"Orders completed in {elapsed:0.2f} seconds.")
- 異步處理(單執行緒):
- 多處理限制:無法序列化閉包或局部函數;不能使用全局變量共享數據,必須使用
multiprocessing.Queue
或multiprocessing.Value
;共享數據時需要使用multiprocessing.Lock
來保證執行緒安全。lock.acquire()
try:
current_num = order_num.value
order_num.value = current_num + 1
finally:
lock.release()
task(current_num, item_made)
- 多處理範例:
- 移除 GIL 的過程:
- GIL 移除的討論已持續近十年,最終 PEP 703 提案於 2023 年提出,旨在使 GIL 在 CPython 中變為可選。
- 引用計數與垃圾回收的挑戰:移除 GIL 後,不能再使用簡單的非原子引用計數。解決方案是使用「偏向引用計數」(biased reference counting),並將部分常用 Python 物件設計為「不朽」(immortal)。垃圾回收引入「延遲引用計數」(deferred reference counting),並在垃圾回收期間需要「停止世界」(stop the world) 以提供執行緒安全保證。
- 記憶體分配:移除 GIL 後,PEP 提案使用 mimalloc,一個 Microsoft 開發的通用分配器,以其執行緒安全和對小物件的良好性能而聞名。
- GIL 存在與不存在時的性能差異:
- 測試方法:使用 Pyenv 或 Python.org 安裝標準版(如 3.13.5)和無 GIL 版(如 3.13.5t)的 Python,並在 PyCharm 中配置不同解釋器來運行 CPU 密集型任務(質數計數)的多執行緒測試。
- 圖片範例:
- 圖片範例:
- 結果比較:
- 標準版 Python (帶 GIL):多執行緒(4個執行緒)運行時間與單執行緒幾乎相同,速度提升約 0.98x。
Python version: 3.13.5 (main, Jul 10 2025, 20:33:15) [Clang 17.0.0 (clang-1700.0.13.5)]
CPU count: 8
Range size: 1000000
Number of chunks: 16
------------------------------------------------------------
Running single-threaded version (baseline)...
Found 78498 primes in 1.1930 seconds
------------------------------------------------------------
Running multi-threaded version with 4 threads...\
Found 78498 primes in 1.2183 seconds (speedup: 0.98x)
------------------------------------------------------------
SUMMARY:
Threads Time (s) Speedup
1 (baseline) 1.1930 1.00x
4 1.2183 0.98x - 無 GIL 版 Python (free-threaded):多執行緒(4個執行緒)運行時間顯著縮短,速度提升約 3.40x。
Python version: 3.13.5 experimental free-threading build (main, Jul 10 2025, 20:36:28) [Clang 17.0.0 (clang-1700.0.13.5)]
CPU count: 8
Range size: 1000000
Number of chunks: 16
------------------------------------------------------------
Running single-threaded version (baseline)...
Found 78498 primes in 1.5869 seconds
------------------------------------------------------------
Running multi-threaded version with 4 threads...
Found 78498 primes in 0.4662 seconds (speedup: 3.40x)
------------------------------------------------------------
SUMMARY:
Threads Time (s) Speedup
1 (baseline) 1.5869 1.00x
4 0.4662 3.40x
- 標準版 Python (帶 GIL):多執行緒(4個執行緒)運行時間與單執行緒幾乎相同,速度提升約 0.98x。
- 測試方法:使用 Pyenv 或 Python.org 安裝標準版(如 3.13.5)和無 GIL 版(如 3.13.5t)的 Python,並在 PyCharm 中配置不同解釋器來運行 CPU 密集型任務(質數計數)的多執行緒測試。
- 結論:無 GIL 版 Python 顯著提升了 CPU 密集型任務的多執行緒性能。Python 3.13 提供了無 GIL 選項,未來 Python 3.14 也將包含此功能。
Shipaton 2025:Kotlin Multiplatform 應用開發競賽與大獎 📱
Source: https://blog.jetbrains.com/kotlin/2025/07/kmp-shipaton/
- RevenueCat Shipaton 2025 是一個為期兩個月的全球駭客松(8 月 1 日至 9 月 30 日),重點是推出全新的移動應用程式。
- 參賽規則:在八週內構建一個全新的移動應用程式;整合 RevenueCat SDK 實現至少一項應用內或網絡購買;在截止日期前將應用程式發布到 App Store 或 Google Play。
- Kotlin Multiplatform Reach Award:JetBrains 作為黃金贊助商,推出此獎項,旨在鼓勵開發者使用 Kotlin 和 Compose Multiplatform 在 iOS 和 Android 上構建最佳、不妥協的應用程式。
- 獎金總額 $55,000,分配給前五名團隊:第一名 $20,000,第二名 $15,000,第三名 $10,000,第四名 $5,000,第五名 $5,000。
- 參賽資格除了滿足主要駭客松規則外,還需提交簡短的 Kotlin 和 Compose Multiplatform 開發經驗描述,或提供公開的「開發故事」(如部落格、X/Twitter 貼文、LinkedIn 文章、影片等)。
- Ship with Junie 獨家計畫:JetBrains 將選出 20 位參與者,在駭客松期間獲得 Junie (JetBrains 的 AI 編碼代理,內置於 IntelliJ IDEA 和 Android Studio) 的完整訪問權限。作為交換,參與者需公開分享開發旅程並提供直接反饋。
- 提供了豐富的入門資源,包括 Shipaton 2025 駭客松資訊、Compose Multiplatform 介紹、入門教程、官方範例和 KMP Awesome 資源列表。
TypeScript 在雲端應用程式中的強大優勢 ☁️
Source: https://dzone.com/articles/typescript-in-cloud-applications
- 雲端運算已成為現代軟體生態系統的基石,涵蓋從新創公司到財富 500 強企業。
- 現代雲端原生應用程式的特性包括:分佈於多個地區和服務、由獨立的微服務或無伺服器功能組成、能夠動態擴展,並由全球分佈式團隊維護。
- 在這種複雜且高度互聯的環境中,應用程式的可靠性、可維護性以及開發者的生產力是至關重要的考量因素。
- 因此,選擇正確的程式語言和工具對於確保這些關鍵特性變得尤為關鍵。
- 本文將探討 TypeScript 為何成為雲端應用程式開發中的強大選擇。
深度學習中的卷積神經網絡 (CNN) 解析 🧠
Source: https://dzone.com/articles/cnn-convolutional-neural-networks-guide
- 卷積神經網絡 (CNN) 是現代視覺感知領域的基石,其應用範圍廣泛,從處理原始像素數據到支援自動駕駛汽車的複雜系統。
- 卷積的概念:卷積本質上是一種「混合」兩個函數(或兩個數字陣列)的方法,其中一個函數作為濾波器作用於另一個函數。它測量兩者在相互滑動(移動)時的重疊程度。
- 透過這種滑動和相乘的行為,卷積能夠有效地提取局部模式,並產生一個新的信號或圖像,其中這些特定模式被強化或抑制。
- 本文旨在深入解析 CNN 的工作原理、其在深度學習領域的重要性,以及未來的發展方向。
2025 Gartner iPaaS 魔力象限:轉向智能自動化 🔄
Source: https://dzone.com/articles/gartner-ipaas-2025-ai-low-code
- 2025 年 Gartner 集成平台即服務 (iPaaS) 魔力象限報告揭示了集成領域的轉型性轉變,該領域正被低代碼平台、人工智能 (AI) 和代理自動化重新定義。
- iPaaS 市場已從過去專注於雲到雲和混合集成,擴展為一個融合工作流自動化、機器人流程自動化 (RPA) 和 AI 編排的綜合空間。
- 本報告對 IT 領導者、架構師和開發者至關重要,幫助他們將集成策略與未來十年的業務轉型需求對齊。
聯盟身份:雲端安全與自動化的現代方法 🔑
Source: https://dzone.com/articles/federated-identity-cloud-security-automation
- 在快速發展的雲端自動化和多雲策略環境中,安全處理敏感數據(特別是憑證)已成為首要任務。
- 傳統的長期憑證存儲方法(如配置檔案、CI/CD 管道或專用秘密管理器)不僅增加操 作開銷,更關鍵的是使組織面臨更高的安全風險。
- 本文介紹了聯盟身份憑證 (federated identity credentials) 作為一種現代且強大的替代方案。
- 這種方法允許工作負載使用由受信任身份提供者發布的臨時令牌進行身份驗證,從而消除了對持久性秘密存儲的需求,從根本上改變了雲端自動化的安全方式。
從開發到部署:自動化機器學習生命週期 ⚙️
Source: https://dzone.com/articles/automating-machine-learning/
- 構建機器學習 (ML) 模型是一個既迷人又複雜的過程,其中從模型開發到部署是將 AI 變為現實最關鍵的階段。
- 一個訓練有素的模型,基於正確的演算法和相關數據,標誌著開發階段的完成,隨後重點便轉向部署。
- 部署 ML 模型通常涉及繁瑣的步驟,包括構建 API、容器化、管理依賴、配置雲環境以及設置伺服器和集群,這些都可能需要大量的精力。
- 本文將探討機器學習部署自動化如何統一並簡化所有這些流程。
- 部署過程可以透過使用通用工具、預配置模組以及易於集成的自動化腳本來大幅簡化。