SlideShare a Scribd company logo
1 of 46
© 2021 NTT DATA Corporation
My Experiences as a Beginner of OpenJDK Contributor
2021/11/19 JCConf Taiwan 2021
Koichi Sakata
NTT DATA Corporation
About Me
• Java Champion
• OpenJDK Author
• NTT DATA Corporation
© 2021 NTT DATA Corporation 2
Koichi Sakata
阪田 浩一
jyukutyo
Our Contribution to JDK 17
© 2021 NTT DATA Corporation 3
The arrival of Java 17! https://blogs.oracle.com/java/post/announcing-java17
How to contribute to OpenJDK
1. Submit patches
2. Review code
3. Tell ideas
4. Participate in discussions
5. Make presentations
6. Write blog posts
etc.
© 2021 NTT DATA Corporation 4
How to contribute to OpenJDK
1. Submit patches
2. Review code
3. Tell ideas
4. Participate in discussions
5. Make presentations
6. Write blog posts
etc.
© 2021 NTT DATA Corporation 5
Today’s Focus
Contribution Process
• Case: Bug Fix
» Almost the same as popular OSS development
© 2021 NTT DATA Corporation 6
Contribution Process
• Case: Bug Fix
» Almost the same as popular OSS development
1. Find a bug
2. Fix a bug
3. Submit a patch
4. Receive reviews
5. Address comments
6. Get merged
© 2021 NTT DATA Corporation 7
Contribution Process
• Case: Bug Fix
» Almost the same as popular OSS development
1. ➡Find a bug
2. Fix a bug
3. Submit a patch
4. Receive reviews
5. Address comments
6. Get merged
© 2021 NTT DATA Corporation 8
Can we find a bug?
• OpenJDK works well in our applications
» We hardly come across any new JDK bugs
• Do we have no points to be fixed?
© 2021 NTT DATA Corporation 9
Ways I’ve tried
• How to find points to be fixed?
1. Build OpenJDK with new versions of tools
© 2021 NTT DATA Corporation 10
Build with New Versions of Tools
• OpenJDK has not only Java code but also C++ code
• We can build OpenJDK with various tools
on various platforms
» GCC, Clang, Visual Studio
» Linux, macOS, Windows (+WSL)
• Errors or warnings might occur
» Try to resolve when those occurred!
© 2021 NTT DATA Corporation 11
My Experience
• I used a new version of GCC (10.1) on Linux
» Three new warnings occurred
» I got an opportunity to contribute!
© 2021 NTT DATA Corporation 12
In file included from /home/jyukutyo/code/jdk/src/hotspot/share/classfile/systemDictionary.hpp:31,
from /home/jyukutyo/code/jdk/src/hotspot/share/classfile/javaClasses.hpp:28,
from /home/jyukutyo/code/jdk/src/hotspot/share/precompiled/precompiled.hpp:35:
In member function 'void Symbol::byte_at_put(int, u1)',
inlined from 'Symbol::Symbol(const u1*, int, int)' at
/home/jyukutyo/code/jdk/src/hotspot/share/oops/symbol.cpp:55:16:
/home/jyukutyo/code/jdk/src/hotspot/share/oops/symbol.hpp:130:18: error: writing 1 byte into a region of
size 0 [-Werror=stringop-overflow=]
130 | _body[index] = value;
| ~~~~~~~~~~~~~^~~~~~~
(omitted)
Changes in GCC 10
© 2021 NTT DATA Corporation
13
GCC 10 Release Series — Changes, New Features, and Fixes https://gcc.gnu.org/gcc-10/changes.html
Ways I’ve tried
• How to find points to be fixed?
1. Build OpenJDK with new versions of tools
2. Search issues in JDK Bug System (JBS)
© 2021 NTT DATA Corporation 14
JDK Bug System (JBS)
• Bug tracking system for OpenJDK
» https://bugs.openjdk.java.net/projects/JDK/issues/
© 2021 NTT DATA Corporation 15
Filter by Labels
• Bug tracking system for OpenJDK
» https://bugs.openjdk.java.net/projects/JDK/issues/
» Accessible for everyone with read-only
» Filter issues by starter label
• Those are for beginners
• Clean-up label is also ok
© 2021 NTT DATA Corporation 16
Ways I’ve tried
• How to find points to be fixed?
1. Build OpenJDK with new versions of tools
2. Search issues in JDK Bug System (JBS)
© 2021 NTT DATA Corporation 17
Contribution Process
• Case: Bug Fix
» Almost the same as popular OSS development
1. ✅Find a bug
2. ➡Fix a bug
3. Submit a patch
4. Receive reviews
5. Address comments
6. Get merged
© 2021 NTT DATA Corporation 18
Testing is important
• Assume that we've finished fixing code
• Need to run related tests
© 2021 NTT DATA Corporation 19
Testing is important
• Assume that we've finished fixing code
• Need to run related tests
» For Java code: jtreg
• Regression test harness
• https://openjdk.java.net/jtreg/index.html
© 2021 NTT DATA Corporation 20
Run a jtreg Test
© 2021 NTT DATA Corporation 21
Testing is important
• Run related tests before submitting the patch
» For Java code: jtreg
» For C++ code: gtest (GoogleTest)
• Google C++ Testing Framework
© 2021 NTT DATA Corporation
Testing is important
• Run related tests before submitting the patch
» For Java code: jtreg
» For C++ code: gtest (GoogleTest)
• Google C++ Testing Framework
© 2021 NTT DATA Corporation
$ ./build/linux-x86_64-server-fastdebug/hotspot/variant-server/libjvm/gtest/gtestLauncher -jdk:./build/linux-
x86_64-server-fastdebug/jdk --gtest_filter=LogConfigurationTest.*
Note: Google Test filter = LogConfigurationTest.*
[==========] Running 15 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 15 tests from LogConfigurationTest
[ RUN ] LogConfigurationTest.describe_vm
[ OK ] LogConfigurationTest.describe_vm (1 ms)
(omitted)
[==========] 15 tests from 1 test case ran. (659 ms total)
[ PASSED ] 15 tests.
Contribution Process
• Case: Bug Fix
1. ✅Find a bug
2. ✅Fix the bug
3. ➡ Submit a patch
4. Receive reviews
5. Address comments
6. Get merged
© 2021 NTT DATA Corporation 24
First thing to do
• Send a mail to a suitable ML
» Describe the details of the issue
» Paste the patch when you have already written it
© 2021 NTT DATA Corporation 25
Mailing List
• Always start from here
» https://mail.openjdk.java.net/
© 2021 NTT DATA Corporation 26
Mailing List
• Always start from here
» https://mail.openjdk.java.net/
• Many MLs...
© 2021 NTT DATA Corporation 27
Mailing List
• Always start from here
» https://mail.openjdk.java.net/
• Many MLs...
» hotspot-dev - JVM
» compiler-dev - Java compiler
» core-libs-dev - Java class libraries
» jdk-dev - General JDK discussions
© 2021 NTT DATA Corporation 28
My First Mail
© 2021 NTT DATA Corporation 29
My Experience
• Do I send a patch to the public ML?
» Feel uneasy...
© 2021 NTT DATA Corporation 30
My Experience
• Do I send a patch to the public ML?
» Feel uneasy...
» Don’t be afraid!
• People are friendly and polite
» To those who use English as a second language
• like me
© 2021 NTT DATA Corporation 31
As a Result
• Have the issue filed in JBS
» We are ready to create a pull request for the issue
© 2021 NTT DATA Corporation 32
OpenJDK is now in GitHub
© 2021 NTT DATA Corporation 33
https://github.com/openjdk/jdk
Relationship between JBS and GitHub
• All issues need to be filed in JBS
» Write the issue number
in the title of the pull request
• Comments to the PR is sent to related mailing lists
» And vice versa
© 2021 NTT DATA Corporation 34
Submit the Patch!
• Sign OCA
» Oracle Contribution Agreement
» https://oca.opensource.oracle.com/
© 2021 NTT DATA Corporation 35
Submit the Patch!
© 2021 NTT DATA Corporation 36
• Create a pull request
Contribution Process
• Case: Bug Fix
1. ✅Find a bug
2. ✅Fix the bug
3. ✅Submit a patch
4. ➡Receive reviews
5. Address comments
6. Get merged
© 2021 NTT DATA Corporation 37
Receive Reviews
• Need reviews by Reviewers
» Reviewer is a role in OpenJDK Community
© 2021 NTT DATA Corporation 38
Receive Reviews
• Need reviews by Reviewers
» Reviewer is a role in OpenJDK Community
• Roles
» Reviewer - Committer role + review
» Committer - Author role + commit and sponsor PRs
» Author - edit JBS
© 2021 NTT DATA Corporation 39
300+
Reviewers and Committers
Receive Reviews
© 2021 NTT DATA Corporation 40
Contribution Process
• Case: Bug Fix
1. ✅Find a bug
2. ✅Fix the bug
3. ✅Submit a patch
4. ✅Receive reviews
5. ✅Address comments
6. ➡Get merged
© 2021 NTT DATA Corporation 41
Find a Sponsor
• We can’t merge the PR by ourselves
» Need a "sponsor"
• Reviewer or Committer can sponsor PRs
• Sponsor will merge the PR
© 2021 NTT DATA Corporation 42
© 2021 NTT DATA Corporation 43
Finally...
Case: Bug Fix
1. ✅Find a bug
2. ✅Fix the bug
3. ✅Submit a patch
4. ✅Receive reviews
5. ✅Address comments
6. ✅Get merged
© 2021 NTT DATA Corporation 44
Summary
• Don’t be afraid of submitting patches!
» Contributing to OpenJDK is not difficult
• Let’s move OpenJDK forward together!
© 2021 NTT DATA Corporation 45
© 2021 NTT DATA Corporation
All other company or product names mentioned here in are trademarks or registered trademarks of their respective owners.

More Related Content

What's hot

Audio Analysis with Spotify's Web API
Audio Analysis with Spotify's Web APIAudio Analysis with Spotify's Web API
Audio Analysis with Spotify's Web APIMark Koh
 
C#とILとネイティブと
C#とILとネイティブとC#とILとネイティブと
C#とILとネイティブと信之 岩永
 
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューMoriharu Ohzu
 
Jenkinsを利用したCI、弊社導入事例
Jenkinsを利用したCI、弊社導入事例Jenkinsを利用したCI、弊社導入事例
Jenkinsを利用したCI、弊社導入事例Ryoichi Obara
 
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステムAndroid向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステムKLab Inc. / Tech
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話Wooram Yang
 
失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)
失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)
失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)Yuki Tamura
 
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方光晶 上原
 
ELFの動的リンク
ELFの動的リンクELFの動的リンク
ELFの動的リンク7shi
 
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッTatsuhiko Yamamura
 
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOFINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOGame Tools & Middleware Forum
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能についてshigeki_ohtsu
 
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。sasezaki
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用DeNA
 
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYO
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYOIncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYO
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYOGame Tools & Middleware Forum
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NETterurou
 
実行統計による実践的SQLチューニング
実行統計による実践的SQLチューニング実行統計による実践的SQLチューニング
実行統計による実践的SQLチューニング健一 三原
 

What's hot (20)

Audio Analysis with Spotify's Web API
Audio Analysis with Spotify's Web APIAudio Analysis with Spotify's Web API
Audio Analysis with Spotify's Web API
 
C#とILとネイティブと
C#とILとネイティブとC#とILとネイティブと
C#とILとネイティブと
 
【UE4.25 新機能】ロードの高速化機能「IOStore」について
【UE4.25 新機能】ロードの高速化機能「IOStore」について【UE4.25 新機能】ロードの高速化機能「IOStore」について
【UE4.25 新機能】ロードの高速化機能「IOStore」について
 
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
 
Jenkinsを利用したCI、弊社導入事例
Jenkinsを利用したCI、弊社導入事例Jenkinsを利用したCI、弊社導入事例
Jenkinsを利用したCI、弊社導入事例
 
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステムAndroid向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話
 
なぜなにFProperty - 対応方法と改善点 -
なぜなにFProperty - 対応方法と改善点 -なぜなにFProperty - 対応方法と改善点 -
なぜなにFProperty - 対応方法と改善点 -
 
失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)
失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)
失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)
 
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
 
ELFの動的リンク
ELFの動的リンクELFの動的リンク
ELFの動的リンク
 
Riderはいいぞ!
Riderはいいぞ!Riderはいいぞ!
Riderはいいぞ!
 
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
 
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOFINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能について
 
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
 
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYO
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYOIncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYO
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYO
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
 
実行統計による実践的SQLチューニング
実行統計による実践的SQLチューニング実行統計による実践的SQLチューニング
実行統計による実践的SQLチューニング
 

Similar to My Experiences as a Beginner of OpenJDK Contributor (JCConf Taiwan 2021)

My Experiences as a Beginner of OpenJDK Contributor (jLove Conference)
My Experiences as a Beginner of OpenJDK Contributor (jLove Conference)My Experiences as a Beginner of OpenJDK Contributor (jLove Conference)
My Experiences as a Beginner of OpenJDK Contributor (jLove Conference)NTT DATA Technology & Innovation
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life DevOps.com
 
ch7-Create an IoT Solution
ch7-Create an IoT Solutionch7-Create an IoT Solution
ch7-Create an IoT Solutionssuser06ea42
 
Docs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API ExperiencesDocs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API ExperiencesAnne Gentle
 
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SACDeveloping IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SACMediaTek Labs
 
Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Jody Garnett
 
Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...
Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...
Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...{code} by Dell EMC
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsMark Windholtz
 
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
The Latest Status of CE Workgroup Shared Embedded Linux Distribution ProjectYoshitake Kobayashi
 
It is a sunny day
It is a sunny dayIt is a sunny day
It is a sunny daybcoder
 
Friday final test
Friday final testFriday final test
Friday final testbcoder
 
Lessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions DeploymentLessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions DeploymentMartijn de Jong
 
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...Daniel Bryant
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationNils Hofmeister
 
DevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesDevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesFab L
 

Similar to My Experiences as a Beginner of OpenJDK Contributor (JCConf Taiwan 2021) (20)

My Experiences as a Beginner of OpenJDK Contributor (jLove Conference)
My Experiences as a Beginner of OpenJDK Contributor (jLove Conference)My Experiences as a Beginner of OpenJDK Contributor (jLove Conference)
My Experiences as a Beginner of OpenJDK Contributor (jLove Conference)
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
 
tut0000021-hevery
tut0000021-heverytut0000021-hevery
tut0000021-hevery
 
tut0000021-hevery
tut0000021-heverytut0000021-hevery
tut0000021-hevery
 
Developing NuGet
Developing NuGetDeveloping NuGet
Developing NuGet
 
ch7-Create an IoT Solution
ch7-Create an IoT Solutionch7-Create an IoT Solution
ch7-Create an IoT Solution
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
 
Docs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API ExperiencesDocs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API Experiences
 
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SACDeveloping IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
 
Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...
 
Node-RED Installer, Standalone Installer using Electron
Node-RED Installer, Standalone Installer using ElectronNode-RED Installer, Standalone Installer using Electron
Node-RED Installer, Standalone Installer using Electron
 
Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...
Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...
Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic Patterns
 
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 
It is a sunny day
It is a sunny dayIt is a sunny day
It is a sunny day
 
Friday final test
Friday final testFriday final test
Friday final test
 
Lessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions DeploymentLessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions Deployment
 
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous Integration
 
DevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesDevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation Slides
 

More from NTT DATA Technology & Innovation

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)NTT DATA Technology & Innovation
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方NTT DATA Technology & Innovation
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...NTT DATA Technology & Innovation
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)NTT DATA Technology & Innovation
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)NTT DATA Technology & Innovation
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...NTT DATA Technology & Innovation
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)NTT DATA Technology & Innovation
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...NTT DATA Technology & Innovation
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)NTT DATA Technology & Innovation
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 

More from NTT DATA Technology & Innovation (20)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

Recently uploaded

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 

Recently uploaded (20)

The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 

My Experiences as a Beginner of OpenJDK Contributor (JCConf Taiwan 2021)

  • 1. © 2021 NTT DATA Corporation My Experiences as a Beginner of OpenJDK Contributor 2021/11/19 JCConf Taiwan 2021 Koichi Sakata NTT DATA Corporation
  • 2. About Me • Java Champion • OpenJDK Author • NTT DATA Corporation © 2021 NTT DATA Corporation 2 Koichi Sakata 阪田 浩一 jyukutyo
  • 3. Our Contribution to JDK 17 © 2021 NTT DATA Corporation 3 The arrival of Java 17! https://blogs.oracle.com/java/post/announcing-java17
  • 4. How to contribute to OpenJDK 1. Submit patches 2. Review code 3. Tell ideas 4. Participate in discussions 5. Make presentations 6. Write blog posts etc. © 2021 NTT DATA Corporation 4
  • 5. How to contribute to OpenJDK 1. Submit patches 2. Review code 3. Tell ideas 4. Participate in discussions 5. Make presentations 6. Write blog posts etc. © 2021 NTT DATA Corporation 5 Today’s Focus
  • 6. Contribution Process • Case: Bug Fix » Almost the same as popular OSS development © 2021 NTT DATA Corporation 6
  • 7. Contribution Process • Case: Bug Fix » Almost the same as popular OSS development 1. Find a bug 2. Fix a bug 3. Submit a patch 4. Receive reviews 5. Address comments 6. Get merged © 2021 NTT DATA Corporation 7
  • 8. Contribution Process • Case: Bug Fix » Almost the same as popular OSS development 1. ➡Find a bug 2. Fix a bug 3. Submit a patch 4. Receive reviews 5. Address comments 6. Get merged © 2021 NTT DATA Corporation 8
  • 9. Can we find a bug? • OpenJDK works well in our applications » We hardly come across any new JDK bugs • Do we have no points to be fixed? © 2021 NTT DATA Corporation 9
  • 10. Ways I’ve tried • How to find points to be fixed? 1. Build OpenJDK with new versions of tools © 2021 NTT DATA Corporation 10
  • 11. Build with New Versions of Tools • OpenJDK has not only Java code but also C++ code • We can build OpenJDK with various tools on various platforms » GCC, Clang, Visual Studio » Linux, macOS, Windows (+WSL) • Errors or warnings might occur » Try to resolve when those occurred! © 2021 NTT DATA Corporation 11
  • 12. My Experience • I used a new version of GCC (10.1) on Linux » Three new warnings occurred » I got an opportunity to contribute! © 2021 NTT DATA Corporation 12 In file included from /home/jyukutyo/code/jdk/src/hotspot/share/classfile/systemDictionary.hpp:31, from /home/jyukutyo/code/jdk/src/hotspot/share/classfile/javaClasses.hpp:28, from /home/jyukutyo/code/jdk/src/hotspot/share/precompiled/precompiled.hpp:35: In member function 'void Symbol::byte_at_put(int, u1)', inlined from 'Symbol::Symbol(const u1*, int, int)' at /home/jyukutyo/code/jdk/src/hotspot/share/oops/symbol.cpp:55:16: /home/jyukutyo/code/jdk/src/hotspot/share/oops/symbol.hpp:130:18: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=] 130 | _body[index] = value; | ~~~~~~~~~~~~~^~~~~~~ (omitted)
  • 13. Changes in GCC 10 © 2021 NTT DATA Corporation 13 GCC 10 Release Series — Changes, New Features, and Fixes https://gcc.gnu.org/gcc-10/changes.html
  • 14. Ways I’ve tried • How to find points to be fixed? 1. Build OpenJDK with new versions of tools 2. Search issues in JDK Bug System (JBS) © 2021 NTT DATA Corporation 14
  • 15. JDK Bug System (JBS) • Bug tracking system for OpenJDK » https://bugs.openjdk.java.net/projects/JDK/issues/ © 2021 NTT DATA Corporation 15
  • 16. Filter by Labels • Bug tracking system for OpenJDK » https://bugs.openjdk.java.net/projects/JDK/issues/ » Accessible for everyone with read-only » Filter issues by starter label • Those are for beginners • Clean-up label is also ok © 2021 NTT DATA Corporation 16
  • 17. Ways I’ve tried • How to find points to be fixed? 1. Build OpenJDK with new versions of tools 2. Search issues in JDK Bug System (JBS) © 2021 NTT DATA Corporation 17
  • 18. Contribution Process • Case: Bug Fix » Almost the same as popular OSS development 1. ✅Find a bug 2. ➡Fix a bug 3. Submit a patch 4. Receive reviews 5. Address comments 6. Get merged © 2021 NTT DATA Corporation 18
  • 19. Testing is important • Assume that we've finished fixing code • Need to run related tests © 2021 NTT DATA Corporation 19
  • 20. Testing is important • Assume that we've finished fixing code • Need to run related tests » For Java code: jtreg • Regression test harness • https://openjdk.java.net/jtreg/index.html © 2021 NTT DATA Corporation 20
  • 21. Run a jtreg Test © 2021 NTT DATA Corporation 21
  • 22. Testing is important • Run related tests before submitting the patch » For Java code: jtreg » For C++ code: gtest (GoogleTest) • Google C++ Testing Framework © 2021 NTT DATA Corporation
  • 23. Testing is important • Run related tests before submitting the patch » For Java code: jtreg » For C++ code: gtest (GoogleTest) • Google C++ Testing Framework © 2021 NTT DATA Corporation $ ./build/linux-x86_64-server-fastdebug/hotspot/variant-server/libjvm/gtest/gtestLauncher -jdk:./build/linux- x86_64-server-fastdebug/jdk --gtest_filter=LogConfigurationTest.* Note: Google Test filter = LogConfigurationTest.* [==========] Running 15 tests from 1 test case. [----------] Global test environment set-up. [----------] 15 tests from LogConfigurationTest [ RUN ] LogConfigurationTest.describe_vm [ OK ] LogConfigurationTest.describe_vm (1 ms) (omitted) [==========] 15 tests from 1 test case ran. (659 ms total) [ PASSED ] 15 tests.
  • 24. Contribution Process • Case: Bug Fix 1. ✅Find a bug 2. ✅Fix the bug 3. ➡ Submit a patch 4. Receive reviews 5. Address comments 6. Get merged © 2021 NTT DATA Corporation 24
  • 25. First thing to do • Send a mail to a suitable ML » Describe the details of the issue » Paste the patch when you have already written it © 2021 NTT DATA Corporation 25
  • 26. Mailing List • Always start from here » https://mail.openjdk.java.net/ © 2021 NTT DATA Corporation 26
  • 27. Mailing List • Always start from here » https://mail.openjdk.java.net/ • Many MLs... © 2021 NTT DATA Corporation 27
  • 28. Mailing List • Always start from here » https://mail.openjdk.java.net/ • Many MLs... » hotspot-dev - JVM » compiler-dev - Java compiler » core-libs-dev - Java class libraries » jdk-dev - General JDK discussions © 2021 NTT DATA Corporation 28
  • 29. My First Mail © 2021 NTT DATA Corporation 29
  • 30. My Experience • Do I send a patch to the public ML? » Feel uneasy... © 2021 NTT DATA Corporation 30
  • 31. My Experience • Do I send a patch to the public ML? » Feel uneasy... » Don’t be afraid! • People are friendly and polite » To those who use English as a second language • like me © 2021 NTT DATA Corporation 31
  • 32. As a Result • Have the issue filed in JBS » We are ready to create a pull request for the issue © 2021 NTT DATA Corporation 32
  • 33. OpenJDK is now in GitHub © 2021 NTT DATA Corporation 33 https://github.com/openjdk/jdk
  • 34. Relationship between JBS and GitHub • All issues need to be filed in JBS » Write the issue number in the title of the pull request • Comments to the PR is sent to related mailing lists » And vice versa © 2021 NTT DATA Corporation 34
  • 35. Submit the Patch! • Sign OCA » Oracle Contribution Agreement » https://oca.opensource.oracle.com/ © 2021 NTT DATA Corporation 35
  • 36. Submit the Patch! © 2021 NTT DATA Corporation 36 • Create a pull request
  • 37. Contribution Process • Case: Bug Fix 1. ✅Find a bug 2. ✅Fix the bug 3. ✅Submit a patch 4. ➡Receive reviews 5. Address comments 6. Get merged © 2021 NTT DATA Corporation 37
  • 38. Receive Reviews • Need reviews by Reviewers » Reviewer is a role in OpenJDK Community © 2021 NTT DATA Corporation 38
  • 39. Receive Reviews • Need reviews by Reviewers » Reviewer is a role in OpenJDK Community • Roles » Reviewer - Committer role + review » Committer - Author role + commit and sponsor PRs » Author - edit JBS © 2021 NTT DATA Corporation 39 300+ Reviewers and Committers
  • 40. Receive Reviews © 2021 NTT DATA Corporation 40
  • 41. Contribution Process • Case: Bug Fix 1. ✅Find a bug 2. ✅Fix the bug 3. ✅Submit a patch 4. ✅Receive reviews 5. ✅Address comments 6. ➡Get merged © 2021 NTT DATA Corporation 41
  • 42. Find a Sponsor • We can’t merge the PR by ourselves » Need a "sponsor" • Reviewer or Committer can sponsor PRs • Sponsor will merge the PR © 2021 NTT DATA Corporation 42
  • 43. © 2021 NTT DATA Corporation 43
  • 44. Finally... Case: Bug Fix 1. ✅Find a bug 2. ✅Fix the bug 3. ✅Submit a patch 4. ✅Receive reviews 5. ✅Address comments 6. ✅Get merged © 2021 NTT DATA Corporation 44
  • 45. Summary • Don’t be afraid of submitting patches! » Contributing to OpenJDK is not difficult • Let’s move OpenJDK forward together! © 2021 NTT DATA Corporation 45
  • 46. © 2021 NTT DATA Corporation All other company or product names mentioned here in are trademarks or registered trademarks of their respective owners.

Editor's Notes

  1. Thank you for your kind introduction ダゲーホー Hello everyone Thank you for joining me This is the title of my presentation
  2. Let me introduce myself I'm Koichi, Koichi Sakata I'm talking to you from Japan I show my handle name at the bottom left of this slide Follow me if you are interested I'm a Java Champion Last year I submitted some patches to OpenJDK, so I'm an OpenJDK Author now I work at NTT Data
  3. This chart shows issues fixed in JDK 17 per organization Our company, including me, has contributed to OpenJDK since before
  4. Today I will be taking about contributing to OpenJDK How many of you want to contribute to OpenJDK? Yes, I can see All people in this room want to do so As you can see, there are many ways of contributing When you hear of the contribution to open source software, the first thing that you think of is writing code But there are other ways to contribute It's good to combine some ways
  5. In this presentation, I will focus on the way of submitting patches Because this is the thing that most people are interested in, I think After this presentation, you will be able to submit patches to OpenJDK Duke needs you for JDK development
  6. Let's try to think about fixing bugs The contribution process is almost the same as developments of popular open source software, such as spring framework, Jakarta EE, etc.
  7. There are some steps to fix a bug First, find.., then fix..., submit..., finally the patch is merged I'll explain each step from now
  8. The first step is to find a bug
  9. As you know, OpenJDK works well in our applications almost always Have you ever come across a new JDK bug? We try to find bugs but failing to do so What should we do? Where are points to be fixed?
  10. I tried some different ways. As a result, I've found points to be fixed before. I'll introduce them to you. It's effective to build OpenJDK with new versions of tools
  11. As you may know, OpenJDK has not only Java but also C++, especially JVM is written in C++ So we need tools for C++ to build it For example we use GCC on Linux, Clang on macOS, Visual Studio on Windows You can build it on WSL, Windows Subsystem for Linux Errors or warnings might occur during the build. If those occurs, it means you have found the point to be fixed. Then you can try to resolve it
  12. I've actually tried it before I saw some warnings with GCC 10 immediately after it released Those warnings didn't happened with GCC 9 What you can see at the bottom is one of the warnings The details of the warning is out of this presentation When you build with the new versions of tools, you might be able to see some errors or warnings as well
  13. On the GCC website, I found those sentences in this slide The warning was enhanced in GCC 10 I examined the warning further and tried to change the code to fix the warning This is how I write a patch for warnings
  14. I'll introduce another way to find points to be fixed OpenJDK has the bug tracking system We simply call it JBS
  15. It's the bug tracking system JBS is based on Atlassian JIRA So you can operate JBS in the same way as JIRA. Look at this screenshot Each issue has detailed information
  16. JBS is accessible for everyone with read-only You can search issues on JBS In this screenshot I used the query language to search issues that have starter label Those are for beginners so good to address I’ve fixed some issues that had the label before Issues that have clean-up label are also good for beginners
  17. OK, we can find the points now Let's move on to the next step
  18. Second step is fixing a bug
  19. Assume that we've finished fixing code Of course, we should run tests before sending a patch
  20. Jtreg is the regression test harness I'll show you a demo
  21. This is the movie of running a jtreg test I increased the playback speed This code is a test class for the clhsdb tool in the jhsdb I executed the make run-test command It's running the test Just a moment What you can see here is the result of running a jtreg test
  22. There is also gtest test code for the C++ part Gtest is a Google C++ testing framework
  23. Here is the result of running a gtest test.
  24. So far, we become able to run tests Go on to the next step How do we submit our patch? Is it OK to create pull requests to the OpenJDK repository in GitHub?
  25. Instead of creating pull requests, it's better to send a mail to the suitable mailing lists. In the mail, you write the details of the issue you found and paste the patch if you have written it already When the issue is recognized, it is filed in JBS After that, you can create the pull request to the repository
  26. Mailing lists are important for the OpenJDK development. I'm going to talk for a minute about them
  27. Don't be surprised, OpenJDK has many mailing lists. I took a count of them There are 200 mailing lists
  28. I'll introduce a few of them hotspot-dev, compiler-dev... Each mailing list covers of the topic as described in this slide It's good to subscribe those mailing lists to gather information All mails are archived We can read past communications on the web site
  29. This is my first mail to the mailing list As you can see, it's about GCC warnings I explained before
  30. Yes, I understand how you feel now Do we need to code to the public mailing list? Everyone will feel uneasy to do I used to be the same
  31. But don't be afraid People in the OpenJDK community are friendly and polite Even if English is your second language, like me So you can send the mail, too
  32. When the issue is recognized, OpenJDK developers filed it in JBS After that, you can create a pull request in GitHub.
  33. OpenJDK has a repository in GitHub. It used to use Mercurial
  34. There is a relationship between JBS and GitHub All issues need to be files in JBS We have to write the issue number in the title of the pull request Additionally, comments to the pull request are send to related mailing lists of OpenJDK and vice versa
  35. Before creating a pull request, we have to sign OCA, that is Oracle Contribution Agreement For more information see this link
  36. Next, we create a pull request as usual This screenshot is my pull request
  37. We've submitting the patch Next step is receiving reviews
  38. Of course the pull request need to be reviewed The only people who has a reviewer role can review and approve the code Reviewer is one of the roles in OpenJDK Community
  39. I'll give a short explanation of roles in OpenJDK Everyone is a contributor at first They don't have any privileges After some contributions, you will be an Author I have this role I'll touch on what sponsoring means later At present, there are over three hundred committers and reviewers When you make many significant changes, you will become a committer or reviewer
  40. Let's get back to the pull request In this example, my pull request were reviewed by four reviewers
  41. This is the last step
  42. We can't merge our pull request by ourselves After the review, Reviewer or committer can sponsor the pull request The sponsor will merge it If you don’t have any role, your name will be recorded as a contributor
  43. In this screenshot, the sponsor run sponsor pull request command to merge this pull request
  44. We did it! I've explained all steps to fix a bug.
  45. Let me summarize Today I talked about contributing to OpenJDK There are many steps But don't be afraid You can do it Let's move OpenJDK forward together!
  46. I guess that's all I wanted to say today Thank you for your attention Enjoy this conference!