JVM 聯合國

JVM United

議程簡介

JVM(Java Virtual Machine)做為一個平台,已經演化成一個完整的生態系。其穩定與跨平台的特性已被各大企業驗證,也蘊育出 Java、Kotlin、Scala、Clojure、Groovy 等語言,可謂百家爭鳴、大放異彩。近年來 Kotlin 漸受重視、GraalVM 帶來更多可能。今年 COSCUP 依照往例,由台灣 JVM 相關社群再次組成聯盟,號召各方好手,匯集了與 JVM 應用有關的主題,包括但不限於前後端、桌面或行動應用、原生與跨平台…等,一起探索 JVM 的無限潛能。

JVM as a platform is becoming a mature ecosystem for developers. It’s stable, enterprise-ready, and nurtures the languages such as Java, Kotlin, Scala, Clojure, Groovy, etc. Our goal is to collect all the topics that are related to frontend, backend, desktop, mobile, native and cross-platform, and explore the potential of JVM.

篩選條件

議題

An Introduction to JetBrains Exposed: The Kotlin-based ORM Framework

AU [[ new Date( '2023-07-29 01:30:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 01:30:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 02:00:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] en
加入行事曆 加入關注 加入關注 已關注

Learn about JetBrains Exposed, a Kotlin-based ORM framework, including its key features and how to build database applications.

講者

Recca Chao

Recca Chao

後端工程師,2017 年開始使用 Laravel

JVM United JVM 聯合國 V8F9VH general (30mins)

自家用 Kotlin 爬蟲實戰:以統整多平台 Podcast 聆聽數據為例

AU [[ new Date( '2023-07-29 02:10:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 02:10:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 02:40:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

使用爬蟲截取網頁上的資訊已是常見的資料處理技術。由於數據分析的盛行,市面上的教學大多以 Python 示例。但其實剖析爬蟲技術的核心,坐擁 JVM 生態系的 Kotlin 也能輕鬆辦到。在這場分享裡,將會以 Kotlin 爐邊漫談 Podcast 節目製作組需要統整各平台聆聽數的需求為例,說明如何使用 JVM 生態系的解析套件及爬蟲框架抓取目標資料並整理儲存至資料庫。另外,也會針對不同的資料格式來源、定時排程等延伸主題進行討論。聽完這場分享後,Kotlin 初學者也能快速上手,快速成為爬蟲擷取能手。

講者

Shengyou Fan

Shengyou Fan

JetBrains 技術傳教士,負責推廣 IDE 工具及開放原始碼技術。平時醉心於技術研究,期待能將複雜的技術詞彙以通俗易懂的方式讓人人都能吸收。工作之餘積極參與 PHP 及 Kotlin 社群運作,曾創辦 Laravel 道場、LaravelConf Taiwan、Kotlin 讀書會/練功場及 Kotlin 中文開發者大會,錄了 Kotlin 爐邊漫談 Podcast,還意外出了一本《Kotlin Collection 全方位解析攻略》。技術之外是位甜點吃貨。

JVM United JVM 聯合國 J7RHCH general (30mins)

替你的 Coroutine 加上測試

AU [[ new Date( '2023-07-29 02:50:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 02:50:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 03:20:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

單元測試能夠讓你的程式碼變得更強健,但是在非同步任務的範疇內,測試變得不太容易,因為任務會在不同的 Thread/Coroutine 上運行,而任務完成的時間可能會不一,根據不同的完成時間,可能會產生不同的測試結果。

那麼要如何測試 Kotlin Coroutine 呢?

Kotlin Coroutine 函式庫內包含了 kotlinx-coroutine-test 類,在這裡面包含了許多針對 Kotlin Coroutine 所提供的方法。利用這些方法,我們就可以寫出簡單、易懂的 Coroutine 單元測試。

講者

Andy Lu

Andy Lu

Android 開發者,Kotlin 讀書會志工。 專長 Kotlin 以及 Flutter,喜愛學習以及分享。 ⟪Kotlin 小宇宙 - 使用 Coroutine 優雅的執行非同步任務⟫ 作者

JVM United JVM 聯合國 AHEXJF general (30mins)

A deep dive into Constant Dynamic/InvokeDynamic、and INDY

AU [[ new Date( '2023-07-29 03:30:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 03:30:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 04:00:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] en
加入行事曆 加入關注 加入關注 已關注

隨著Java即將來到21,更多的特性以及項目實驗特性也即將能投入JVM環境的日常開發。但您是否有深入研究過JVM Bytecode裡那些常量及指令碼的應用?

在本次議程中,將帶領各位探討動態常量(Constant Dynamic/InvokeDynamic)以及指令碼invokedynamic(INDY)所解決的情境,以及他們是如何實際影響編譯器位元組碼的生成,進一步在JVM生態系投下震撼彈。

講者

Kyle Lin

Kyle Lin

編譯器研究者,V語言編譯器開發社群成員,TWKUG志工。

主要致力於開源文化的推廣及實踐。

JVM United JVM 聯合國 CDLSBW general (30mins)

Writing OS Updater App for Android

AU [[ new Date( '2023-07-29 04:50:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 04:50:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 05:20:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] en
加入行事曆 加入關注 加入關注 已關注

In this talk, we will look into how CalyxOS Team rewrote Android's sample OS updater app from Java to Kotlin while addressing deprecation and other issues along the process resulting in a modern app that any AOSP-based OS can use to update their A/B partition scheme devices.

講者

Aayush Gupta

Aayush Gupta

Aayush Gupta (he/him), Android Developer and Developer Relations, is a self-taught developer, working on FOSS and various communities, prominently XDA Developers, for the past few years. He holds multiple titles in numerous communities, both personal and professional. Working remotely from Bhilai, India, he actively contributes to developing Android-related projects. In addition, he has been organizing Google Developer Groups Bhilai, a.k.a GDG Bhilai, to support the local community.

JVM United JVM 聯合國 WWK9DU general (30mins)

When IntelliJ IDEA Meets Amazon CodeWhisperer.

AU [[ new Date( '2023-07-29 05:30:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 05:30:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 06:00:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

如果您認識 GitHub Copilot 的話,應該就會秒懂 Amazon CodeWhisperer 是什麼了。最近 Amazon 也跟風發表自家的 Generative Ai,將 CodeWhisperer 納入其中。而在這次 CodeWhisperer 的更新中,Kotlin 被新增為 CodeWhisperer 所支援的語言。在這次的分享中,講者將會選擇 Kotlin 語言,介紹這主題,有興趣的朋友,可以先自行安裝 IntelliJ IDEA ,並在 Plugins 新增 AWS Toolkit 功能(這部分的操作可以參考我的 Youtube 教學影片 https://youtu.be/tBlKk22XOWM ),先試用一下。

講者

楊舒安

楊舒安

《開發聊天機器人比你想的還簡單!》一書作者。 (本書介紹: https://www.tenlong.com.tw/products/9786267146521?list_name=lv ,電子書試閱: https://reurl.cc/9Vd9mX )

前幾年熱衷於影片拍攝&製作,在2020年&2021年曾和社群朋友組團參加鐵人賽(影片教學組)。之後不定期會在自己同名的 Youtube 頻道上更新教學影片。

不定時會出沒於技術社群小聚。

JVM United JVM 聯合國 QKUKKZ general (30mins)

看 FIDO 與 Spring Authorization Server 如何斬斷密碼的枷鎖!

AU [[ new Date( '2023-07-29 06:10:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 06:10:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 06:40:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

密碼已成為我們生活中不可避免的一部分,但 FIDO 與 Spring Authorization Server 的結合卻讓我們看到了破除密碼依賴的可能。這次我們將帶你探討如何利用 FIDO 的無密碼認證(PASSWORDLESS AUTHENTICATION)與 Spring Authorization Server 聯合創造一個更安全、更便利的驗證體驗。讓我我們斬斷密碼的枷鎖,讓身份驗證不再繁瑣。密碼時代的結束,無密碼時代的開始,從這裡起步。

講者

朱尚禮 samzhu

朱尚禮 samzhu

任職於國泰金控不小心開始雲原生之後就回不去的 Java 開發者

JVM United JVM 聯合國 8FL7D7 general (30mins)

Arrow KT 2.0 預覽, 更道地 Kotlin 的 FP Library

AU [[ new Date( '2023-07-29 06:50:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 06:50:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 07:20:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

Arrow KT 2.0 來了,一個 Open Source 的 Kotlin functional programming 補完計畫。從 0.x 的很 category theory 到用 Suspend 取代 IO Monad. 2.0 除了支援 KMM 又更往 Kotlin 的道地用法靠瓏。本分享將會討論

  • Arrow KT 0.x 到 2.x 轉變
  • Arrow KT Migration Tool
  • Collections and Recursive
  • Error Handling with FP

講者

Brandy Chang

Brandy Chang

10多年後端開發,主力是 Kotlin x Java backend 在這個大 DevOps 時代,都略懂略懂的雜工 - Kotlin Meetup #4 #9 - Kotlin 讀書會導讀

JVM United JVM 聯合國 3YQUVL general (30mins)

Deep dive into Compose Immutable and Stable annotation

AU [[ new Date( '2023-07-29 07:30:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 07:30:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 08:00:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注
  1. 介紹 Jetpack Compose 與 Declarative UI
  2. 介紹 Jetpack Compose 渲染機制與效能考量
  3. Immutable 與 Stable 講解以及源碼分析

講者

彥彬

彥彬

Software Engineer with a strong passion for clean code, testing, and software architecture. Over seven years of experience in Android.

JVM United JVM 聯合國 FZ3C8S general (30mins)