SlideShare a Scribd company logo
© 2023 NTT DATA Corporation
OpenJDKのコミッタってどんなことしたらなったの?
解決してきた技術課題の事例から見えてくる必要な知識と技術
2023年6月4日 JJUG CCC 2023 Spring
株式会社NTTデータ 技術革新統括本部 技術開発本部
阪田 浩一
© 2023 NTT DATA Corporation 2
発表者
• 株式会社NTTデータ 所属
• OpenJDKコミッタ
• Javaチャンピオン
• Oracle ACE Pro (Java分野)
Koichi Sakata
阪田 浩一
jyukutyo
© 2023 NTT DATA Corporation 3
最初の疑問
Javaは 誰が
作っているの?
© 2023 NTT DATA Corporation 4
前提として
多くのJDKがベースとする
OpenJDKを取り上げると…
© 2023 NTT DATA Corporation 5
ちょっと待って
OpenJDKって
何なの?
© 2023 NTT DATA Corporation 6
OpenJDK[1]とは何か
 OpenJDKはオープンソースのJava SE 仕様の実装と
その関連製品を開発する場
 そのソースコードはGitHubにある[2]
[1] https://openjdk.org/
[2] https://github.com/openjdk/
© 2023 NTT DATA Corporation 7
OpenJDK[1]とは何か
 OpenJDKはオープンソースのJava SE 仕様の実装と
その関連製品を開発する場
 そのソースコードはGitHubにある[2]
 バイナリは提供しない
• 自分でビルドする もしくは他の誰かがビルドしたバイナリを利用する
• 多くのJDKはOpenJDKをベースとして作成したものである
[1] https://openjdk.org/
[2] https://github.com/openjdk/
2006 2023
Javaオープンソース化発表
Java 6リリース
Java 20
リリース
© 2023 NTT DATA Corporation 8
改めて最初の疑問
Javaは 誰が
作っているの?
© 2023 NTT DATA Corporation 9
JDK 11から最新20までの課題解決数の割合(組織別)
https://blogs.oracle.com/java/post/th
e-arrival-of-java-20
© 2023 NTT DATA Corporation 10
Java(OpenJDK)は誰が作っているのか
 さまざまな企業と個人
• 企業が開発に参画している
• 個人として参画している人も多くいる
© 2023 NTT DATA Corporation 11
次の疑問
OpenJDK開発って
何をするの?
© 2023 NTT DATA Corporation 12
OpenJDKの開発
 一般的なOSSの開発と内容は同じ
• 新機能追加
• 機能拡張 改善
• バグ修正
 提案や意見交換はメーリングリスト[1]
 開発はGitHub上[2]
[1] https://mail.openjdk.org/mailman/listinfo
[2] https://github.com/openjdk/jdk
© 2023 NTT DATA Corporation 13
OpenJDKの内容物
 Java APIの実装
 Javaコンパイラ
 Java仮想マシン(JVM)
• ガベージコレクタ JITコンパイラなど
 各種ツール
• JDK Flight Recorder jcmd jhsdbなど
[1] https://mail.openjdk.org/mailman/listinfo
CAFE
BABE
0000
クラスファイル
クラスローダー サブシステム
実行時データエリア
ヒープ … …
実行エンジン
インタ
プリタ
JIT
コンパイラ
ガベージ
コレクタ
© 2023 NTT DATA Corporation 14
実装プログラミング言語
大まかに述べると
 JVM : C++
 JVM以外 : Java
© 2023 NTT DATA Corporation 15
突然の提案
あなたもJava、
今すぐ開発しませ
ん?
© 2023 NTT DATA Corporation 16
それじゃあ
私にも Javaの開発が
できるの?
© 2023 NTT DATA Corporation 17
誰でもOpenJDK(Java)の開発に参加できる
 色々なレベルの開発者がいる
• すごい開発者だけ ではない
 必要な能力はほんの少し
• やり抜く力
• 継続する力
 以下の能力は想像よりも重要ではない
• 技術力
• 英語力
© 2023 NTT DATA Corporation 18
開発に貢献する動機は何だっていい
 技術力を高めたい
 Javaに恩返ししたい
 ワールドワイドで活動したい
 JVMになりたい
 ...
© 2023 NTT DATA Corporation 19
貢献方法はいろいろある
1. プルリクエストを出す
2. リリース前の機能を試す
3. アイデアを提案する
4. 議論に参加する
5. イベントで登壇する
6. ブログに投稿する
7. ...
© 2023 NTT DATA Corporation 20
貢献方法はいろいろある
1. プルリクエストを出す
2. リリース前の機能を試す
3. アイデアを提案する
4. 議論に参加する
5. イベントで登壇する
6. ブログに投稿する
7. ...
今日はこれ!
© 2023 NTT DATA Corporation 21
ところで
JVMとかJavaのAPIのバグって
よく遭遇しますか?
© 2023 NTT DATA Corporation 22
普通に使っていてもそんなにバグに遭遇しない
 Java APIのバグ JVMのバグ
• まったく遭遇したことがない人も多いと思う
© 2023 NTT DATA Corporation 23
疑問
プルリクエストを出す題材は
めったに見つけれらない?
© 2023 NTT DATA Corporation 24
私もそうでした
 当初の考え方: バグを見つけたら修正に挑戦しよう
• 機会が運の問題になってしまう
 発想の転換: 自分で見つけて直す
• どうすれば修正対象を見つけられるか?
© 2023 NTT DATA Corporation 25
じゃあ
今までと違う使い方を
してみよう!
© 2023 NTT DATA Corporation 26
今までと違う使い方をしてみる
 異常系でするようなやり方で使ってみる
 使ったことがないもの(API ツール)を使ってみる
 異なる条件でビルドして使ってみる
© 2023 NTT DATA Corporation 27
異常系でするようなやり方で使ってみる
 私が修正した例: UL(Unified Logging)
-Xlog[:[selections][:[output][:[decorators][:output-options]]]]
© 2023 NTT DATA Corporation 28
異常系でするようなやり方で使ってみる
 私が修正した例: UL(Unified Logging)
-Xlog[:[selections][:[output][:[decorators][:output-options]]]]
// Java 15以前
$ java -Xlog::::::foo:::::::
// とくに警告もなく実行できる
5つ目以降のコロンは無効なので
警告を出した方がいいのでは
// Java 16以降
$ java -Xlog::::::foo:::::::
[0.003s][warning][logging] Ignoring excess -Xlog options:
":foo:::::::"
// 実行はする
© 2023 NTT DATA Corporation 29
使ったことがないものを使ってみる
 ツールやAPI
 私が修正した例: jcmd
© 2023 NTT DATA Corporation 30
使ったことがないものを使ってみる
 ツールやAPI
 私が修正した例: jcmd
ドメイン 内容
VM JVMの実行情報取得 ログ設定など
Compiler JITコンパイラ関連
GC ガベージコレクション関連
Thread 現状スレッドダンプのみ
JVMTI JVM Tool Interface関連 エージェントのロードなど
JFR フライトレコード関連
ManagementAgent JMXエージェント関連
使い方: jcmd <pid> command ドメイン.操作
jcmdはとても多機能
© 2023 NTT DATA Corporation 31
あれ?この機能ちゃんと動いてない
 Java 16以前
 実行中にjcmdでULログの設定変更をする
 変更が成功したとメッセージが出るが
実際には変更されていない
© 2023 NTT DATA Corporation 32
Java 16でのjcmdにおけるULログ設定バグ
© 2023 NTT DATA Corporation 33
あれ?この機能ちゃんと動いてない
 Java 16以前
 実行中にjcmdでULログの設定変更をする
 変更が成功したとメッセージが出るが
実際には変更されていない
 そもそもこれは変更できない設定項目
なので成功ではなく 変更しないというメッセージを出すべき
© 2023 NTT DATA Corporation 34
修正してみた
© 2023 NTT DATA Corporation 35
Java 17でのjcmdにおけるULログ設定
© 2023 NTT DATA Corporation 36
異なる条件でビルドして使ってみる
 OSやライブラリなどを変えてビルドする
 バージョンを最新などに変えてビルドする
© 2023 NTT DATA Corporation 37
ビルド?
OpenJDKって
どうやってビルドするの?
© 2023 NTT DATA Corporation 38
デモ: OpenJDKのビルド
© 2023 NTT DATA Corporation 39
OpenJDKのビルド[1]
 LinuxやmacOSは簡単
 Windowsは少し手間がかかるかも
• (数年前に一度やっただけでうろ覚え)
• WSLでもできる
 ネット上に多く関連投稿がある
• 日本語でも
[1] https://github.com/openjdk/jdk/blob/master/doc/building.md
© 2023 NTT DATA Corporation 40
異なる条件でビルドして使ってみる
 OSやライブラリなどを変えてビルドする
 バージョンを最新などに変えてビルドする
© 2023 NTT DATA Corporation 41
バージョンを最新などに変えてビルドする
 私が修正した例
• GCC 10がリリースされたとき GCC 10でビルドしてみた
© 2023 NTT DATA Corporation 42
バージョンを最新などに変えてビルドする
 私が修正した例
• GCC 10がリリースされたとき GCC 10でビルドしてみた
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)
以前は出ていなかった
警告が新たに3つ出た
© 2023 NTT DATA Corporation 43
警告の内容を確認する
 抜粋
/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;
| ~~~~~~~~~~~~~^~~~~~~
/home/jyukutyo/code/jdk/src/java.base/share/native/libfdlibm/k_standard.c:743:19:
error: 'exc.retval' may be used uninitialized in this function [-Werror=maybe-
uninitialized]
743 | return exc.retval;
| ~~~^~~~~~~
/home/jyukutyo/code/jdk/src/java.base/unix/native/libnet/NetworkInterface.c:974:13:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:10: error:
'__builtin_strncpy' output may be truncated copying 15 bytes from a string of length 15
[-Werror=stringop-truncation]
106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
© 2023 NTT DATA Corporation 44
GCC 10での変更点
GCC 10 Release Series — Changes, New Features, and Fixes https://gcc.gnu.org/gcc-10/changes.html
© 2023 NTT DATA Corporation 45
どうしても自分で
題材を見つけられないとき
何か他の方法はある?
© 2023 NTT DATA Corporation 46
 JBS(JDK Bug System) [1]
バグトラッキングシステムを見てみる
[1] https://bugs.openjdk.java.net/projects/JDK/issues/
© 2023 NTT DATA Corporation 47
JBS
 各PRには対応するJBSのイシューがある
• というよりも JBSのイシューが先にあり それにPRを出すということ
 イシューのラベル starterやclean-up は初級者向け
• それらを題材にする
© 2023 NTT DATA Corporation 48
題材を見つけたとして
誰でも修正できる?
© 2023 NTT DATA Corporation 49
JavaからC++へ
 私の場合
• 社会人歴 ≒ Java Webアプリの運用開発だった
• JVMのコードが初C++だった
© 2023 NTT DATA Corporation 50
誰でも修正できる
 言語面はなんとかできる
• 他者が書いたコードを直すという意味では普段と同じ
 低レイヤに関する知識が要求されることもある
• OS CPU メモリ ネットワーク 場合によってはアセンブリ言語
• 調べればなんとかなることも多い
© 2023 NTT DATA Corporation 51
ところで
どういう風に
開発するの?
© 2023 NTT DATA Corporation 52
エディタ IDE
 お好みで 何でもよい
 私の場合
• IDEを使っていたこともあったが
今はそのマシンにあるプレーンなエディタを使うだけ
• 加えてfindとgrepでほとんどの場合いけてしまっている
© 2023 NTT DATA Corporation 53
デバッグツール
 printデバッグでもほとんどの場合いける
 GDB
 CLion
• JetBrainsのC++用有償IDE
© 2023 NTT DATA Corporation 54
テスト
 jtreg
• Javaコードの独自テスティングフレームワーク
• JDK用リグレッションテストハーネス
 Google Test(gtest)
• C++コード用のテスティングフレームワーク
© 2023 NTT DATA Corporation 55
デモ: jtregのテスト実行
© 2023 NTT DATA Corporation 56
これで開発は
できそうだ…!
© 2023 NTT DATA Corporation 57
ところで
プルリクエストは
英語で出すんですよね?
© 2023 NTT DATA Corporation 58
英語力
 PRにはそれほど必要ない感じ
• 高校1,2年の内容が思い出せれば十分そう
• DeepL Google翻訳などを活用する
 提案 議論では長文が要求される
• このときはがんばる
© 2023 NTT DATA Corporation 59
仕事でPRは書いているけれど…
そもそもPRに
どんなことを書いたらいいの?
© 2023 NTT DATA Corporation 60
動くようにする ≠ 大規模OSSでPRをマージまで持っていく
 PRはすんなりマージされない
• レビューコメントはいくつもつく
• やりぬく力がいる
© 2023 NTT DATA Corporation 61
動くようにする ≠ 大規模OSSでPRをマージまで持っていく
 PRはすんなりマージされない
• レビューコメントはいくつもつく
• やりぬく力がいる
 OpenJDKは巨大なプロダクトである
• 修正が想像もしなかった部分に影響すると指摘されることもある
• 症状 修正方法 テスト内容 を文化が異なる国にいる
初対面のエンジニアに詳細に説明しなければならない
 PRで 何度も修正したりより詳しい説明を求められる
ことはよくある
© 2023 NTT DATA Corporation 62
何をしたのか ではなく なぜそうしたのか
 すべてをさらけ出すことになる
• この点はWebアプリ運用開発のときより厳しさを感じる
 バグなら再現手順を確立する
• 手順は余分なものを削ぎ落とし 可能な限りシンプルな手順にする
© 2023 NTT DATA Corporation 63
PRマージのイメージ
(Omitted)
© 2023 NTT DATA Corporation 64
継続しよう
 PRを出せば出すほど Javaのことがよりわかる
• 同時にまだまだ知らないことがたくさんあることがわかる
© 2023 NTT DATA Corporation 65
継続しよう
 PRを出せば出すほど Javaのことがよりわかる
• 同時にまだまだ知らないことがたくさんあることがわかる
 何よりもまずコードを書いていこう
• 読むだけよりももっと楽しい
• そのためにも修正 改善の題材を探すことが重要
 やり抜くことを継続すると ふと気づいたとき
思ってもいなかった場所にたどり着いている
© 2023 NTT DATA Corporation 66
質問
どんなことをしたら
コミッタになるの?
© 2023 NTT DATA Corporation 67
OpenJDKにおけるコミッタの定義
 コミッタ認定基準はOSSごとに異なる
 OpenJDKの開発者ロール
• レビュワ + コミッタで世界に300人+
コミッタ
Author
コントリビュータ
バグ登録権限など
開発者権限を保持
OpenJDKコミュニティにおける開発者ロール
レビュワ
© 2023 NTT DATA Corporation 68
 コミッタ = 無条件にすごい ではない
• もちろんコミッタにはすごい人も多いけれど
 コミッタ = 修正を最後までやり抜き それを何度もやった人
• すごいことをやる必要はない
• 言い換えると どんな人にもなれるチャンスがある
コミッタってすごいの?
© 2023 NTT DATA Corporation 69
コミッタ認定の流れ
 基準クリア -> 推薦 -> 投票 -> 認定
• 基準: コードに対して意味のある修正を 8回以上実施する
• 推薦: コミッタ以上が候補者をメールで推薦する
• 投票: コミッタ以上がメールで賛成か反対の票を入れる
• 認定: 反対票がなければコミッタ認定
© 2023 NTT DATA Corporation 70
コミッタ認定の流れ
 基準クリア -> 推薦 -> 投票 -> 認定
• 基準: コードに対して意味のある修正を 8回以上実施する
• 推薦: コミッタ以上が候補者をメールで推薦する
• 投票: コミッタ以上がメールで賛成か反対の票を入れる
• 認定: 反対票がなければコミッタ認定
 私の場合
• PRが14回マージされていた
• 何度かレビューしてくれていた米オラクル社の人から
突然推薦するとメールが来た
• 投票を経て2月に認定
© 2023 NTT DATA Corporation 71
そうは言っても…
1人で全部進められるか
不安…
© 2023 NTT DATA Corporation 72
メンタになってもらう
 OpenJDK開発は多人数 ワールドワイド 英語使用 難解
• 独力でやり遂げられる人は多くないはず
- 私はやりたい思いがありつつ 長年始められなかった
© 2023 NTT DATA Corporation 73
メンタになってもらう
 OpenJDK開発は多人数 ワールドワイド 英語使用 難解
• 独力でやり遂げられる人は多くないはず
- 私はやりたい思いがありつつ 長年始められなかった
 コントリビュート経験者に相談する
• このCCCにコミッタ以上のロールを持つ人は何人も来ている
• 1度F2Fで話しておけばソーシャルメディアでも相談しやすい
© 2023 NTT DATA Corporation 74
(私に限らず)
気になったセッションの
発表者に話しかけてみましょう!
© 2023 NTT DATA Corporation 75
私の場合: JavaカンファレンスとTwitterでのやり取り
 後に師匠となる人のセッションを聞き 衝撃を受ける
• Javaのことなのにセッションの半分が理解できない
 以降 師匠のセッションがあればそのイベントに出向く
• 当時関西在住 東京まで出てくる
© 2023 NTT DATA Corporation 76
私の場合: JavaカンファレンスとTwitterでのやり取り
 後に師匠となる人のセッションを聞き 衝撃を受ける
• Javaのことなのにセッションの半分が理解できない
 以降 師匠のセッションがあればそのイベントに出向く
• 当時関西在住 東京まで出てくる
 海外カンファレンスで師匠と実際に話す
 OpenJDKについてブログ投稿やツイートをすると
Twitterで助言をもらえるように
 転職し 師匠と同僚になる
• メンタになってもらう
© 2023 NTT DATA Corporation 77
コントリビュートして コミッタになって よかったこと
 Javaの歴史に自分も痕跡を残せたうれしさがある
© 2023 NTT DATA Corporation 78
コントリビュートして コミッタになって よかったこと
 Javaの歴史に自分も痕跡を残せたうれしさがある
 コミッタ向けイベントに参加できる
• OpenJDK Committer's Workshop
 OpenJDK開発者と知り合えた
• 日本語話者の開発者とも
 新しい技術領域に踏み出せた
© 2023 NTT DATA Corporation 79
まとめ
© 2023 NTT DATA Corporation 80
見えてきた必要な知識と技術とは
 知識も技術もあとからついてくる
 やり抜く力と継続する力こそが大切
 言い換えればどんな人だって歩き続ければ
そこにたどり着ける!
• そこはきっと自分が思い描く場所
© 2023 NTT DATA Corporation 81
本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。

More Related Content

What's hot

モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
Hajime Yanagawa
 
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
Yoshitaka Kawashima
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
Takuto Wada
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
貴仁 大和屋
 
Metaspace
MetaspaceMetaspace
Metaspace
Yasumasa Suenaga
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
NTT DATA Technology & Innovation
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
Yuji Kubota
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
Masahiko Sawada
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
 

What's hot (20)

モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
 
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
 
Metaspace
MetaspaceMetaspace
Metaspace
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 

Similar to OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)

おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
Koichiro Sumi
 
Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...
Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...
Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...
NTT DATA Technology & Innovation
 
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
NTT DATA Technology & Innovation
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンスKaoru NAKAMURA
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshopDaisuke Sugai
 
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後
Shingo Sasaki
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
NTT DATA Technology & Innovation
 
ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方
Harada Kazuki
 
Windows 11とNPUで実現するWindowsのAI
Windows 11とNPUで実現するWindowsのAIWindows 11とNPUで実現するWindowsのAI
Windows 11とNPUで実現するWindowsのAI
Tomokazu Kizawa
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
NTT DATA Technology & Innovation
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Atsushi Nakamura
 
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
Koichi ITO
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Masahito Zembutsu
 
Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)
shojiro-tanaka
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
Masaki Muranaka
 
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Naoki Umehara
 
Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2
Taiji Tsuchiya
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
NTT DATA Technology & Innovation
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
David Buck
 

Similar to OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring) (20)

おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...
Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...
Let's Start Contributing to OpenJDK from Today!(Oracle Groundbreakers APAC Vi...
 
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
 
ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方
 
Windows 11とNPUで実現するWindowsのAI
Windows 11とNPUで実現するWindowsのAIWindows 11とNPUで実現するWindowsのAI
Windows 11とNPUで実現するWindowsのAI
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
 
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
 
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
 
Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
 

More from NTT DATA Technology & Innovation

YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
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
 
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)

YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
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年度秋季研究発表大会 発表資料)
 
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

2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 

Recently uploaded (15)

2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 

OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)

  • 1. © 2023 NTT DATA Corporation OpenJDKのコミッタってどんなことしたらなったの? 解決してきた技術課題の事例から見えてくる必要な知識と技術 2023年6月4日 JJUG CCC 2023 Spring 株式会社NTTデータ 技術革新統括本部 技術開発本部 阪田 浩一
  • 2. © 2023 NTT DATA Corporation 2 発表者 • 株式会社NTTデータ 所属 • OpenJDKコミッタ • Javaチャンピオン • Oracle ACE Pro (Java分野) Koichi Sakata 阪田 浩一 jyukutyo
  • 3. © 2023 NTT DATA Corporation 3 最初の疑問 Javaは 誰が 作っているの?
  • 4. © 2023 NTT DATA Corporation 4 前提として 多くのJDKがベースとする OpenJDKを取り上げると…
  • 5. © 2023 NTT DATA Corporation 5 ちょっと待って OpenJDKって 何なの?
  • 6. © 2023 NTT DATA Corporation 6 OpenJDK[1]とは何か  OpenJDKはオープンソースのJava SE 仕様の実装と その関連製品を開発する場  そのソースコードはGitHubにある[2] [1] https://openjdk.org/ [2] https://github.com/openjdk/
  • 7. © 2023 NTT DATA Corporation 7 OpenJDK[1]とは何か  OpenJDKはオープンソースのJava SE 仕様の実装と その関連製品を開発する場  そのソースコードはGitHubにある[2]  バイナリは提供しない • 自分でビルドする もしくは他の誰かがビルドしたバイナリを利用する • 多くのJDKはOpenJDKをベースとして作成したものである [1] https://openjdk.org/ [2] https://github.com/openjdk/ 2006 2023 Javaオープンソース化発表 Java 6リリース Java 20 リリース
  • 8. © 2023 NTT DATA Corporation 8 改めて最初の疑問 Javaは 誰が 作っているの?
  • 9. © 2023 NTT DATA Corporation 9 JDK 11から最新20までの課題解決数の割合(組織別) https://blogs.oracle.com/java/post/th e-arrival-of-java-20
  • 10. © 2023 NTT DATA Corporation 10 Java(OpenJDK)は誰が作っているのか  さまざまな企業と個人 • 企業が開発に参画している • 個人として参画している人も多くいる
  • 11. © 2023 NTT DATA Corporation 11 次の疑問 OpenJDK開発って 何をするの?
  • 12. © 2023 NTT DATA Corporation 12 OpenJDKの開発  一般的なOSSの開発と内容は同じ • 新機能追加 • 機能拡張 改善 • バグ修正  提案や意見交換はメーリングリスト[1]  開発はGitHub上[2] [1] https://mail.openjdk.org/mailman/listinfo [2] https://github.com/openjdk/jdk
  • 13. © 2023 NTT DATA Corporation 13 OpenJDKの内容物  Java APIの実装  Javaコンパイラ  Java仮想マシン(JVM) • ガベージコレクタ JITコンパイラなど  各種ツール • JDK Flight Recorder jcmd jhsdbなど [1] https://mail.openjdk.org/mailman/listinfo CAFE BABE 0000 クラスファイル クラスローダー サブシステム 実行時データエリア ヒープ … … 実行エンジン インタ プリタ JIT コンパイラ ガベージ コレクタ
  • 14. © 2023 NTT DATA Corporation 14 実装プログラミング言語 大まかに述べると  JVM : C++  JVM以外 : Java
  • 15. © 2023 NTT DATA Corporation 15 突然の提案 あなたもJava、 今すぐ開発しませ ん?
  • 16. © 2023 NTT DATA Corporation 16 それじゃあ 私にも Javaの開発が できるの?
  • 17. © 2023 NTT DATA Corporation 17 誰でもOpenJDK(Java)の開発に参加できる  色々なレベルの開発者がいる • すごい開発者だけ ではない  必要な能力はほんの少し • やり抜く力 • 継続する力  以下の能力は想像よりも重要ではない • 技術力 • 英語力
  • 18. © 2023 NTT DATA Corporation 18 開発に貢献する動機は何だっていい  技術力を高めたい  Javaに恩返ししたい  ワールドワイドで活動したい  JVMになりたい  ...
  • 19. © 2023 NTT DATA Corporation 19 貢献方法はいろいろある 1. プルリクエストを出す 2. リリース前の機能を試す 3. アイデアを提案する 4. 議論に参加する 5. イベントで登壇する 6. ブログに投稿する 7. ...
  • 20. © 2023 NTT DATA Corporation 20 貢献方法はいろいろある 1. プルリクエストを出す 2. リリース前の機能を試す 3. アイデアを提案する 4. 議論に参加する 5. イベントで登壇する 6. ブログに投稿する 7. ... 今日はこれ!
  • 21. © 2023 NTT DATA Corporation 21 ところで JVMとかJavaのAPIのバグって よく遭遇しますか?
  • 22. © 2023 NTT DATA Corporation 22 普通に使っていてもそんなにバグに遭遇しない  Java APIのバグ JVMのバグ • まったく遭遇したことがない人も多いと思う
  • 23. © 2023 NTT DATA Corporation 23 疑問 プルリクエストを出す題材は めったに見つけれらない?
  • 24. © 2023 NTT DATA Corporation 24 私もそうでした  当初の考え方: バグを見つけたら修正に挑戦しよう • 機会が運の問題になってしまう  発想の転換: 自分で見つけて直す • どうすれば修正対象を見つけられるか?
  • 25. © 2023 NTT DATA Corporation 25 じゃあ 今までと違う使い方を してみよう!
  • 26. © 2023 NTT DATA Corporation 26 今までと違う使い方をしてみる  異常系でするようなやり方で使ってみる  使ったことがないもの(API ツール)を使ってみる  異なる条件でビルドして使ってみる
  • 27. © 2023 NTT DATA Corporation 27 異常系でするようなやり方で使ってみる  私が修正した例: UL(Unified Logging) -Xlog[:[selections][:[output][:[decorators][:output-options]]]]
  • 28. © 2023 NTT DATA Corporation 28 異常系でするようなやり方で使ってみる  私が修正した例: UL(Unified Logging) -Xlog[:[selections][:[output][:[decorators][:output-options]]]] // Java 15以前 $ java -Xlog::::::foo::::::: // とくに警告もなく実行できる 5つ目以降のコロンは無効なので 警告を出した方がいいのでは // Java 16以降 $ java -Xlog::::::foo::::::: [0.003s][warning][logging] Ignoring excess -Xlog options: ":foo:::::::" // 実行はする
  • 29. © 2023 NTT DATA Corporation 29 使ったことがないものを使ってみる  ツールやAPI  私が修正した例: jcmd
  • 30. © 2023 NTT DATA Corporation 30 使ったことがないものを使ってみる  ツールやAPI  私が修正した例: jcmd ドメイン 内容 VM JVMの実行情報取得 ログ設定など Compiler JITコンパイラ関連 GC ガベージコレクション関連 Thread 現状スレッドダンプのみ JVMTI JVM Tool Interface関連 エージェントのロードなど JFR フライトレコード関連 ManagementAgent JMXエージェント関連 使い方: jcmd <pid> command ドメイン.操作 jcmdはとても多機能
  • 31. © 2023 NTT DATA Corporation 31 あれ?この機能ちゃんと動いてない  Java 16以前  実行中にjcmdでULログの設定変更をする  変更が成功したとメッセージが出るが 実際には変更されていない
  • 32. © 2023 NTT DATA Corporation 32 Java 16でのjcmdにおけるULログ設定バグ
  • 33. © 2023 NTT DATA Corporation 33 あれ?この機能ちゃんと動いてない  Java 16以前  実行中にjcmdでULログの設定変更をする  変更が成功したとメッセージが出るが 実際には変更されていない  そもそもこれは変更できない設定項目 なので成功ではなく 変更しないというメッセージを出すべき
  • 34. © 2023 NTT DATA Corporation 34 修正してみた
  • 35. © 2023 NTT DATA Corporation 35 Java 17でのjcmdにおけるULログ設定
  • 36. © 2023 NTT DATA Corporation 36 異なる条件でビルドして使ってみる  OSやライブラリなどを変えてビルドする  バージョンを最新などに変えてビルドする
  • 37. © 2023 NTT DATA Corporation 37 ビルド? OpenJDKって どうやってビルドするの?
  • 38. © 2023 NTT DATA Corporation 38 デモ: OpenJDKのビルド
  • 39. © 2023 NTT DATA Corporation 39 OpenJDKのビルド[1]  LinuxやmacOSは簡単  Windowsは少し手間がかかるかも • (数年前に一度やっただけでうろ覚え) • WSLでもできる  ネット上に多く関連投稿がある • 日本語でも [1] https://github.com/openjdk/jdk/blob/master/doc/building.md
  • 40. © 2023 NTT DATA Corporation 40 異なる条件でビルドして使ってみる  OSやライブラリなどを変えてビルドする  バージョンを最新などに変えてビルドする
  • 41. © 2023 NTT DATA Corporation 41 バージョンを最新などに変えてビルドする  私が修正した例 • GCC 10がリリースされたとき GCC 10でビルドしてみた
  • 42. © 2023 NTT DATA Corporation 42 バージョンを最新などに変えてビルドする  私が修正した例 • GCC 10がリリースされたとき GCC 10でビルドしてみた 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) 以前は出ていなかった 警告が新たに3つ出た
  • 43. © 2023 NTT DATA Corporation 43 警告の内容を確認する  抜粋 /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; | ~~~~~~~~~~~~~^~~~~~~ /home/jyukutyo/code/jdk/src/java.base/share/native/libfdlibm/k_standard.c:743:19: error: 'exc.retval' may be used uninitialized in this function [-Werror=maybe- uninitialized] 743 | return exc.retval; | ~~~^~~~~~~ /home/jyukutyo/code/jdk/src/java.base/unix/native/libnet/NetworkInterface.c:974:13: /usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:10: error: '__builtin_strncpy' output may be truncated copying 15 bytes from a string of length 15 [-Werror=stringop-truncation] 106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • 44. © 2023 NTT DATA Corporation 44 GCC 10での変更点 GCC 10 Release Series — Changes, New Features, and Fixes https://gcc.gnu.org/gcc-10/changes.html
  • 45. © 2023 NTT DATA Corporation 45 どうしても自分で 題材を見つけられないとき 何か他の方法はある?
  • 46. © 2023 NTT DATA Corporation 46  JBS(JDK Bug System) [1] バグトラッキングシステムを見てみる [1] https://bugs.openjdk.java.net/projects/JDK/issues/
  • 47. © 2023 NTT DATA Corporation 47 JBS  各PRには対応するJBSのイシューがある • というよりも JBSのイシューが先にあり それにPRを出すということ  イシューのラベル starterやclean-up は初級者向け • それらを題材にする
  • 48. © 2023 NTT DATA Corporation 48 題材を見つけたとして 誰でも修正できる?
  • 49. © 2023 NTT DATA Corporation 49 JavaからC++へ  私の場合 • 社会人歴 ≒ Java Webアプリの運用開発だった • JVMのコードが初C++だった
  • 50. © 2023 NTT DATA Corporation 50 誰でも修正できる  言語面はなんとかできる • 他者が書いたコードを直すという意味では普段と同じ  低レイヤに関する知識が要求されることもある • OS CPU メモリ ネットワーク 場合によってはアセンブリ言語 • 調べればなんとかなることも多い
  • 51. © 2023 NTT DATA Corporation 51 ところで どういう風に 開発するの?
  • 52. © 2023 NTT DATA Corporation 52 エディタ IDE  お好みで 何でもよい  私の場合 • IDEを使っていたこともあったが 今はそのマシンにあるプレーンなエディタを使うだけ • 加えてfindとgrepでほとんどの場合いけてしまっている
  • 53. © 2023 NTT DATA Corporation 53 デバッグツール  printデバッグでもほとんどの場合いける  GDB  CLion • JetBrainsのC++用有償IDE
  • 54. © 2023 NTT DATA Corporation 54 テスト  jtreg • Javaコードの独自テスティングフレームワーク • JDK用リグレッションテストハーネス  Google Test(gtest) • C++コード用のテスティングフレームワーク
  • 55. © 2023 NTT DATA Corporation 55 デモ: jtregのテスト実行
  • 56. © 2023 NTT DATA Corporation 56 これで開発は できそうだ…!
  • 57. © 2023 NTT DATA Corporation 57 ところで プルリクエストは 英語で出すんですよね?
  • 58. © 2023 NTT DATA Corporation 58 英語力  PRにはそれほど必要ない感じ • 高校1,2年の内容が思い出せれば十分そう • DeepL Google翻訳などを活用する  提案 議論では長文が要求される • このときはがんばる
  • 59. © 2023 NTT DATA Corporation 59 仕事でPRは書いているけれど… そもそもPRに どんなことを書いたらいいの?
  • 60. © 2023 NTT DATA Corporation 60 動くようにする ≠ 大規模OSSでPRをマージまで持っていく  PRはすんなりマージされない • レビューコメントはいくつもつく • やりぬく力がいる
  • 61. © 2023 NTT DATA Corporation 61 動くようにする ≠ 大規模OSSでPRをマージまで持っていく  PRはすんなりマージされない • レビューコメントはいくつもつく • やりぬく力がいる  OpenJDKは巨大なプロダクトである • 修正が想像もしなかった部分に影響すると指摘されることもある • 症状 修正方法 テスト内容 を文化が異なる国にいる 初対面のエンジニアに詳細に説明しなければならない  PRで 何度も修正したりより詳しい説明を求められる ことはよくある
  • 62. © 2023 NTT DATA Corporation 62 何をしたのか ではなく なぜそうしたのか  すべてをさらけ出すことになる • この点はWebアプリ運用開発のときより厳しさを感じる  バグなら再現手順を確立する • 手順は余分なものを削ぎ落とし 可能な限りシンプルな手順にする
  • 63. © 2023 NTT DATA Corporation 63 PRマージのイメージ (Omitted)
  • 64. © 2023 NTT DATA Corporation 64 継続しよう  PRを出せば出すほど Javaのことがよりわかる • 同時にまだまだ知らないことがたくさんあることがわかる
  • 65. © 2023 NTT DATA Corporation 65 継続しよう  PRを出せば出すほど Javaのことがよりわかる • 同時にまだまだ知らないことがたくさんあることがわかる  何よりもまずコードを書いていこう • 読むだけよりももっと楽しい • そのためにも修正 改善の題材を探すことが重要  やり抜くことを継続すると ふと気づいたとき 思ってもいなかった場所にたどり着いている
  • 66. © 2023 NTT DATA Corporation 66 質問 どんなことをしたら コミッタになるの?
  • 67. © 2023 NTT DATA Corporation 67 OpenJDKにおけるコミッタの定義  コミッタ認定基準はOSSごとに異なる  OpenJDKの開発者ロール • レビュワ + コミッタで世界に300人+ コミッタ Author コントリビュータ バグ登録権限など 開発者権限を保持 OpenJDKコミュニティにおける開発者ロール レビュワ
  • 68. © 2023 NTT DATA Corporation 68  コミッタ = 無条件にすごい ではない • もちろんコミッタにはすごい人も多いけれど  コミッタ = 修正を最後までやり抜き それを何度もやった人 • すごいことをやる必要はない • 言い換えると どんな人にもなれるチャンスがある コミッタってすごいの?
  • 69. © 2023 NTT DATA Corporation 69 コミッタ認定の流れ  基準クリア -> 推薦 -> 投票 -> 認定 • 基準: コードに対して意味のある修正を 8回以上実施する • 推薦: コミッタ以上が候補者をメールで推薦する • 投票: コミッタ以上がメールで賛成か反対の票を入れる • 認定: 反対票がなければコミッタ認定
  • 70. © 2023 NTT DATA Corporation 70 コミッタ認定の流れ  基準クリア -> 推薦 -> 投票 -> 認定 • 基準: コードに対して意味のある修正を 8回以上実施する • 推薦: コミッタ以上が候補者をメールで推薦する • 投票: コミッタ以上がメールで賛成か反対の票を入れる • 認定: 反対票がなければコミッタ認定  私の場合 • PRが14回マージされていた • 何度かレビューしてくれていた米オラクル社の人から 突然推薦するとメールが来た • 投票を経て2月に認定
  • 71. © 2023 NTT DATA Corporation 71 そうは言っても… 1人で全部進められるか 不安…
  • 72. © 2023 NTT DATA Corporation 72 メンタになってもらう  OpenJDK開発は多人数 ワールドワイド 英語使用 難解 • 独力でやり遂げられる人は多くないはず - 私はやりたい思いがありつつ 長年始められなかった
  • 73. © 2023 NTT DATA Corporation 73 メンタになってもらう  OpenJDK開発は多人数 ワールドワイド 英語使用 難解 • 独力でやり遂げられる人は多くないはず - 私はやりたい思いがありつつ 長年始められなかった  コントリビュート経験者に相談する • このCCCにコミッタ以上のロールを持つ人は何人も来ている • 1度F2Fで話しておけばソーシャルメディアでも相談しやすい
  • 74. © 2023 NTT DATA Corporation 74 (私に限らず) 気になったセッションの 発表者に話しかけてみましょう!
  • 75. © 2023 NTT DATA Corporation 75 私の場合: JavaカンファレンスとTwitterでのやり取り  後に師匠となる人のセッションを聞き 衝撃を受ける • Javaのことなのにセッションの半分が理解できない  以降 師匠のセッションがあればそのイベントに出向く • 当時関西在住 東京まで出てくる
  • 76. © 2023 NTT DATA Corporation 76 私の場合: JavaカンファレンスとTwitterでのやり取り  後に師匠となる人のセッションを聞き 衝撃を受ける • Javaのことなのにセッションの半分が理解できない  以降 師匠のセッションがあればそのイベントに出向く • 当時関西在住 東京まで出てくる  海外カンファレンスで師匠と実際に話す  OpenJDKについてブログ投稿やツイートをすると Twitterで助言をもらえるように  転職し 師匠と同僚になる • メンタになってもらう
  • 77. © 2023 NTT DATA Corporation 77 コントリビュートして コミッタになって よかったこと  Javaの歴史に自分も痕跡を残せたうれしさがある
  • 78. © 2023 NTT DATA Corporation 78 コントリビュートして コミッタになって よかったこと  Javaの歴史に自分も痕跡を残せたうれしさがある  コミッタ向けイベントに参加できる • OpenJDK Committer's Workshop  OpenJDK開発者と知り合えた • 日本語話者の開発者とも  新しい技術領域に踏み出せた
  • 79. © 2023 NTT DATA Corporation 79 まとめ
  • 80. © 2023 NTT DATA Corporation 80 見えてきた必要な知識と技術とは  知識も技術もあとからついてくる  やり抜く力と継続する力こそが大切  言い換えればどんな人だって歩き続ければ そこにたどり着ける! • そこはきっと自分が思い描く場所
  • 81. © 2023 NTT DATA Corporation 81 本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。