SlideShare a Scribd company logo
1 of 26
Download to read offline
JavaのStreamで学ぶ
遅延処理実装パターン
@mike_neck
ことわり
この話を聞いてもアプリ作るのが爆速になるわけではありません
この話を聞いてもアプリが簡単に作れるようになるわけでもあり
ません
この話を聞いても作るアプリケーションが安全になるわけでもあ
りません
単なる知的好奇心を満たすかもしれませんが、儂が満足したいだ
けです
遅延評価の話はしませんよ
概要
Streamの復習
Streamについての疑問
Streamパイプラインがやっていること
Sinkの合成
終端操作と処理開始
誰?
持田真哉(@mike_neck)
たんなるJava、Groovy好きのおっさん
某IDEを売っている会社に入り浸って、クソコラを作ってる
2015年期待している陸上選手
青山聖佳(400m)、水口怜(走幅跳)、藤光謙司(200m)、
高瀬慧(100m)
Streamの復習
for文を簡単に今っぽく書くやつ
InputStreamと関係ない(全く関係ないわけで
もないけど)
ScalaのStreamとは違う
順次および並列での集約操作をサポートする要素の
シーケンス(Javadocより)
Streamの復習
repo.findAllUsers().stream()
.filter(User::isMen)
.filter(u -> u.getAge() >= 27)
.filter(u -> u.getAge() <= 35)
.map(User::getHobbies)
.flatMap(List::stream)
.collect(groupingBy(
Hobby::getGenre,
counting()));
ソース
ストリームパイプライン
終端操作
Streamの疑問
repo.findAllUsers().stream()
.filter(User::isMen)
.filter(u -> u.getAge() >= 27)
.filter(u -> u.getAge() <= 35)
.map(User::getHobbies)
.flatMap(List::stream)
.collect(groupingBy(
Hobby::getGenre,
counting()));
・この処理はいつ行われるの?
・これらの処理はどのように保持
されるの?
・処理の順番はどのように保持さ
れるの?
・終端操作呼び出しでどのように
処理が実行されるの?
Streamパイプラインがやってい
ること
repo.findAllUsers().stream()
.filter(User::isMen)
.filter(u -> u.getAge() >= 27)
.filter(u -> u.getAge() <= 35)
.map(User::getHobbies)
.flatMap(List::stream)
.collect(groupingBy(
Hobby::getGenre,
counting()));
・AbstractPipeline<P_IN,
P_OUT, Stream<P_OUT>>のイ
ンスタンスを生成して返す
Streamパイプラインがやってい
ること
AbstractPipeline<P_IN, P_OUT, Stream<P_OUT>>とは?
Stream<P_OUT>の実装クラス
これをさらに継承したクラスにReferencePipeline<P_IN,
P_OUT>という抽象クラスがある(ほぼこれが実体)
さらにStatelessOp<P_IN, P_OUT>、StatefullOp<P_IN,
P_OUT>という抽象クラスがある
これらのパイプラインを構成するオブジェクトはデータ構造的に双方
向リンクドリストとなって前後のオブジェクトをたどることができる
public final <R> Stream map(
Function<? super P_OUT, ? extends R> mapper) {
return
new StatelessOp<P_OUT, R>(this, …) {
@Override Sink<P_OUT> opWrapSink(int flags, Sink<R> sink) {
return new Sink.ChainedReference<P_OUT, R>(sink) {
public void accept(P_OUT u) {downSink.accept(mapper.apply(u));}
}
Streamパイプラインがやってい
ること
返されるStreamの無名クラスの中に
埋め込む形で処理を保持する
public final <R> Stream map(
Function<? super P_OUT, ? extends R> mapper) {
return
new StatelessOp<P_OUT, R>(this, …) {
@Override Sink<P_OUT> opWrapSink(int flags, Sink<R> sink) {
return new Sink.ChainedReference<P_OUT, R>(sink) {
public void accept(P_OUT u) {downSink.accept(mapper.apply(u));}
}
public final <R> Stream map(
Function<? super P_OUT, ? extends R> mapper) {
return
new StatelessOp<P_OUT, R>(this, …) {
@Override Sink<P_OUT> opWrapSink(int flags, Sink<R> sink) {
return new Sink.ChainedReference<P_OUT, R>(sink) {
public void accept(P_OUT u) {downSink.accept(mapper.apply(u));}
}
Sinkの合成
Sinkの合成
Sink<T>とは
個々の処理実行・制御を提供するConsumer<T>の拡
張インターフェース
初期状態 ! begin(long) ! 処理中 !
accept(T) ! 処理中 ! end() ! 初期状態
主な実装クラスはSink.ChainedReference<T>とい
う抽象クラスで、リンクドリストの構造を持つ
Sinkの合成
ChainedReference
<B, A> implements
Sink<A>
ChainedReference
<C, B> implements
Sink<B>
begin(long) begin(long)
accept(a) accept(b)
end() end()
a -> b b -> c
Sinkの合成
ChainedReference
<B, A> implements
Sink<A>
ChainedReference
<C, B> implements
Sink<B>
begin(long) begin(long)
accept(a) accept(b)
end() end()
a -> b b -> c
・先に行われる処理(Sink)は次
に行われる処理(Sink)へのリン
クを持っている
Sinkの合成
ChainedReference
<B, A> implements
Sink<A>
ChainedReference
<C, B> implements
Sink<B>
begin(long) begin(long)
accept(a) accept(b)
end() end()
a -> b b -> c
・begin(long)は次の処理(Sink)
のbegin(long)を呼び出す
Sinkの合成
ChainedReference
<B, A> implements
Sink<A>
ChainedReference
<C, B> implements
Sink<B>
begin(long) begin(long)
accept(a) accept(b)
end() end()
a -> b b -> c
・accept(A)は処理を施した後に次の処
理(Sink)のaccept(B)を呼び出す
Sinkの合成
ChainedReference
<B, A> implements
Sink<A>
ChainedReference
<C, B> implements
Sink<B>
begin(long) begin(long)
accept(a) accept(b)
end() end()
a -> b b -> c
・end()は次の処理(Sink)
のend()を呼び出す
Sinkの合成
ChainedReference
<B, A> implements
Sink<A>
ChainedReference
<C, B> implements
Sink<B>
begin(long) begin(long)
accept(a) accept(b)
end() end()
a -> b b -> c
Sinkがリンクドリストになっていること
で処理順を保持している
ChainedReference
<?, A> implements
Sink<A>
Sink<?>
begin(long) begin(long)
accept(a) accept(?)
end() end()
a -> b
ChainedReference
<?, A> implements
Sink<A>
Sink<?>
begin(long) begin(long)
accept(a) accept(?)
end() end()
a -> b
一番最後にあるSinkは何もの?
終端操作と処理開始
一番最後にあるSinkは終端操作で生成される
TerminalOp<T, R>にて生成される
TerminalSink<T, R>
シグニチャーはTerminalSink<T, R> extends
Sink<T>, Supplier<R>
終端操作と処理開始
TerminalSink<T, R>を生成
パイプラインのリンクをたどりながら各パイプラインのSink
opWrapSink(int, Sink)を呼び出してすべての処理を合成したSinkを
取得する
合成Sinkのbeginを呼び出す
すべてのソース(Spliterator)にSinkを渡してacceptを呼び出させる
ソースが全てを消費あるいは、必要な結果が得られたら合成Sinkのend
を呼び出す
終端操作と処理開始
TerminalSink<T, R>を生成
パイプラインのリンクをたどりながら各パイプラインのSink
opWrapSink(int, Sink)を呼び出してすべての処理を合成したSinkを
取得する
合成Sinkのbeginを呼び出す
すべてのソース(Spliterator)にSinkを渡してacceptを呼び出させる
ソースが全てを消費あるいは、必要な結果が得られたら合成Sinkのend
を呼び出す
終端操作呼び出しによって
パイプラインをさかのぼって処理(Sink)を構築
SpliteratorにSinkを渡して処理を実行
処理終了を処理に通知
まとめ
ストリームパイプラインは双方向リンクドリストを
形成するのみで、処理の実行は行わない
処理をリンクドリストで構築することによって処理
順序を保証
終端操作でパイプラインを って処理を合成、ソー
スを順次適用
おわり
(最後は雑にまとめた)
で検索🔎mike-neck Stream

More Related Content

What's hot

JJUG CCC 2013 Springの懇親会LT
JJUG CCC 2013 Springの懇親会LTJJUG CCC 2013 Springの懇親会LT
JJUG CCC 2013 Springの懇親会LTirof N
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門minazou67
 
Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介khisano
 
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係yy yank
 
【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーションyy yank
 
楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjug楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjugYuji Kubota
 
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶおっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶdcubeio
 
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3irof N
 
新入社員のための大規模ゲーム開発入門 サーバサイド編 2015
新入社員のための大規模ゲーム開発入門 サーバサイド編 2015新入社員のための大規模ゲーム開発入門 サーバサイド編 2015
新入社員のための大規模ゲーム開発入門 サーバサイド編 2015infinite_loop
 
Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術Kiyokuni Kawachiya
 
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpJava EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpNorito Agetsuma
 
Mackerel Day#2 チェック監視が救う!!エンジニア0カンパニー
Mackerel Day#2 チェック監視が救う!!エンジニア0カンパニーMackerel Day#2 チェック監視が救う!!エンジニア0カンパニー
Mackerel Day#2 チェック監視が救う!!エンジニア0カンパニーKiyotaka Kunihira
 
[Jjug]java small object programming
[Jjug]java small object programming[Jjug]java small object programming
[Jjug]java small object programmingYuichi Hasegawa
 
エンタープライズシステムにおけるテスト ~STE研究交流会 参加者の視点から ~
エンタープライズシステムにおけるテスト ~STE研究交流会 参加者の視点から ~エンタープライズシステムにおけるテスト ~STE研究交流会 参加者の視点から ~
エンタープライズシステムにおけるテスト ~STE研究交流会 参加者の視点から ~Kazuhiro Suzuki
 
第2回nseg slideshare
第2回nseg slideshare第2回nseg slideshare
第2回nseg slideshareko ty
 
Java Flight Recorderの紹介 at Java Day Tokyo 2015
Java Flight Recorderの紹介  at Java Day Tokyo 2015Java Flight Recorderの紹介  at Java Day Tokyo 2015
Java Flight Recorderの紹介 at Java Day Tokyo 2015Chihiro Ito
 

What's hot (20)

JJUG CCC 2013 Springの懇親会LT
JJUG CCC 2013 Springの懇親会LTJJUG CCC 2013 Springの懇親会LT
JJUG CCC 2013 Springの懇親会LT
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門
 
NDS36 Java7&Java8
NDS36 Java7&Java8NDS36 Java7&Java8
NDS36 Java7&Java8
 
Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介
 
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係
 
使ってみようPTSV
使ってみようPTSV使ってみようPTSV
使ってみようPTSV
 
【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション
 
楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjug楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjug
 
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶおっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
 
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
 
Pythonのユニットテスト
PythonのユニットテストPythonのユニットテスト
Pythonのユニットテスト
 
新入社員のための大規模ゲーム開発入門 サーバサイド編 2015
新入社員のための大規模ゲーム開発入門 サーバサイド編 2015新入社員のための大規模ゲーム開発入門 サーバサイド編 2015
新入社員のための大規模ゲーム開発入門 サーバサイド編 2015
 
Ipythonを使ってみよう
Ipythonを使ってみようIpythonを使ってみよう
Ipythonを使ってみよう
 
Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術
 
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpJava EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jp
 
Mackerel Day#2 チェック監視が救う!!エンジニア0カンパニー
Mackerel Day#2 チェック監視が救う!!エンジニア0カンパニーMackerel Day#2 チェック監視が救う!!エンジニア0カンパニー
Mackerel Day#2 チェック監視が救う!!エンジニア0カンパニー
 
[Jjug]java small object programming
[Jjug]java small object programming[Jjug]java small object programming
[Jjug]java small object programming
 
エンタープライズシステムにおけるテスト ~STE研究交流会 参加者の視点から ~
エンタープライズシステムにおけるテスト ~STE研究交流会 参加者の視点から ~エンタープライズシステムにおけるテスト ~STE研究交流会 参加者の視点から ~
エンタープライズシステムにおけるテスト ~STE研究交流会 参加者の視点から ~
 
第2回nseg slideshare
第2回nseg slideshare第2回nseg slideshare
第2回nseg slideshare
 
Java Flight Recorderの紹介 at Java Day Tokyo 2015
Java Flight Recorderの紹介  at Java Day Tokyo 2015Java Flight Recorderの紹介  at Java Day Tokyo 2015
Java Flight Recorderの紹介 at Java Day Tokyo 2015
 

Similar to On stream-lazy-computation

Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Atsushi Harada
 
20150806_IntroJAZUG
20150806_IntroJAZUG20150806_IntroJAZUG
20150806_IntroJAZUGSaori Ando
 
2007 It合宿 発表資料/佐瀬 武志
2007 It合宿 発表資料/佐瀬 武志2007 It合宿 発表資料/佐瀬 武志
2007 It合宿 発表資料/佐瀬 武志kurubushionline
 
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13智治 長沢
 
たのしいアノテーション
たのしいアノテーションたのしいアノテーション
たのしいアノテーションKazuhiro Sasao
 
師弟登壇2015 GMOペパボ @orzup
師弟登壇2015 GMOペパボ @orzup師弟登壇2015 GMOペパボ @orzup
師弟登壇2015 GMOペパボ @orzupAsami Nakano
 
Crashlyticsでクラッシュ撲滅作戦
Crashlyticsでクラッシュ撲滅作戦Crashlyticsでクラッシュ撲滅作戦
Crashlyticsでクラッシュ撲滅作戦Yoichiro Sakurai
 
サーバ擬人化ユーザ会キックオフ資料 Slideshare ver
サーバ擬人化ユーザ会キックオフ資料 Slideshare verサーバ擬人化ユーザ会キックオフ資料 Slideshare ver
サーバ擬人化ユーザ会キックオフ資料 Slideshare verSeiichiro Ishida
 
クラウド移住で地方に住むということ
クラウド移住で地方に住むということクラウド移住で地方に住むということ
クラウド移住で地方に住むということTakehito Tanabe
 
iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?Toshio Ehara
 
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Shuji Watanabe
 

Similar to On stream-lazy-computation (14)

Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
 
20150806_IntroJAZUG
20150806_IntroJAZUG20150806_IntroJAZUG
20150806_IntroJAZUG
 
2007 It合宿 発表資料/佐瀬 武志
2007 It合宿 発表資料/佐瀬 武志2007 It合宿 発表資料/佐瀬 武志
2007 It合宿 発表資料/佐瀬 武志
 
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
 
Roo
RooRoo
Roo
 
たのしいアノテーション
たのしいアノテーションたのしいアノテーション
たのしいアノテーション
 
師弟登壇2015 GMOペパボ @orzup
師弟登壇2015 GMOペパボ @orzup師弟登壇2015 GMOペパボ @orzup
師弟登壇2015 GMOペパボ @orzup
 
Crashlyticsでクラッシュ撲滅作戦
Crashlyticsでクラッシュ撲滅作戦Crashlyticsでクラッシュ撲滅作戦
Crashlyticsでクラッシュ撲滅作戦
 
Rnncamp01
Rnncamp01Rnncamp01
Rnncamp01
 
Rnncamp01
Rnncamp01Rnncamp01
Rnncamp01
 
サーバ擬人化ユーザ会キックオフ資料 Slideshare ver
サーバ擬人化ユーザ会キックオフ資料 Slideshare verサーバ擬人化ユーザ会キックオフ資料 Slideshare ver
サーバ擬人化ユーザ会キックオフ資料 Slideshare ver
 
クラウド移住で地方に住むということ
クラウド移住で地方に住むということクラウド移住で地方に住むということ
クラウド移住で地方に住むということ
 
iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?
 
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
 

More from Shinya Mochida

サーバーサイド Kotlin のテストフレームワーク事情
サーバーサイド Kotlin のテストフレームワーク事情サーバーサイド Kotlin のテストフレームワーク事情
サーバーサイド Kotlin のテストフレームワーク事情Shinya Mochida
 
IntelliJ IDEA を完全にマスターする話
IntelliJ IDEA を完全にマスターする話IntelliJ IDEA を完全にマスターする話
IntelliJ IDEA を完全にマスターする話Shinya Mochida
 
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払い
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払いクリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払い
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払いShinya Mochida
 
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1Shinya Mochida
 
swift-log について
swift-log についてswift-log について
swift-log についてShinya Mochida
 
Java プログラマーのための Swift 入門 #中央線Meetup
Java プログラマーのための Swift 入門 #中央線MeetupJava プログラマーのための Swift 入門 #中央線Meetup
Java プログラマーのための Swift 入門 #中央線MeetupShinya Mochida
 
swift-nio のアーキテクチャーと RxHttpClient
swift-nio のアーキテクチャーと RxHttpClientswift-nio のアーキテクチャーと RxHttpClient
swift-nio のアーキテクチャーと RxHttpClientShinya Mochida
 
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての NettyJJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての NettyShinya Mochida
 
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjug
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjugJJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjug
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjugShinya Mochida
 
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみた
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみたSpring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみた
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみたShinya Mochida
 
Javaモジュールシステム雑なまとめ
Javaモジュールシステム雑なまとめJavaモジュールシステム雑なまとめ
Javaモジュールシステム雑なまとめShinya Mochida
 
gradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーションgradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーションShinya Mochida
 
Java8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみるJava8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみるShinya Mochida
 
ドラクエの金銭感覚
ドラクエの金銭感覚ドラクエの金銭感覚
ドラクエの金銭感覚Shinya Mochida
 
30億のデバイスで走るjavaを支えるjavaエコシステム
30億のデバイスで走るjavaを支えるjavaエコシステム30億のデバイスで走るjavaを支えるjavaエコシステム
30億のデバイスで走るjavaを支えるjavaエコシステムShinya Mochida
 
Intelli j vs-eclipse-by-mike-neck #jbugj
Intelli j vs-eclipse-by-mike-neck #jbugjIntelli j vs-eclipse-by-mike-neck #jbugj
Intelli j vs-eclipse-by-mike-neck #jbugjShinya Mochida
 

More from Shinya Mochida (20)

サーバーサイド Kotlin のテストフレームワーク事情
サーバーサイド Kotlin のテストフレームワーク事情サーバーサイド Kotlin のテストフレームワーク事情
サーバーサイド Kotlin のテストフレームワーク事情
 
IntelliJ IDEA を完全にマスターする話
IntelliJ IDEA を完全にマスターする話IntelliJ IDEA を完全にマスターする話
IntelliJ IDEA を完全にマスターする話
 
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払い
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払いクリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払い
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払い
 
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1
 
swift-log について
swift-log についてswift-log について
swift-log について
 
Vim 入門
Vim 入門Vim 入門
Vim 入門
 
Java プログラマーのための Swift 入門 #中央線Meetup
Java プログラマーのための Swift 入門 #中央線MeetupJava プログラマーのための Swift 入門 #中央線Meetup
Java プログラマーのための Swift 入門 #中央線Meetup
 
swift-nio のアーキテクチャーと RxHttpClient
swift-nio のアーキテクチャーと RxHttpClientswift-nio のアーキテクチャーと RxHttpClient
swift-nio のアーキテクチャーと RxHttpClient
 
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての NettyJJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
 
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjug
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjugJJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjug
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjug
 
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみた
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみたSpring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみた
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみた
 
Javaモジュールシステム雑なまとめ
Javaモジュールシステム雑なまとめJavaモジュールシステム雑なまとめ
Javaモジュールシステム雑なまとめ
 
Kotlin as an AltJS
Kotlin as an AltJSKotlin as an AltJS
Kotlin as an AltJS
 
gradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーションgradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーション
 
Stream脳の作り方
Stream脳の作り方Stream脳の作り方
Stream脳の作り方
 
Java8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみるJava8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみる
 
ドラクエの金銭感覚
ドラクエの金銭感覚ドラクエの金銭感覚
ドラクエの金銭感覚
 
30億のデバイスで走るjavaを支えるjavaエコシステム
30億のデバイスで走るjavaを支えるjavaエコシステム30億のデバイスで走るjavaを支えるjavaエコシステム
30億のデバイスで走るjavaを支えるjavaエコシステム
 
Intelli j vs-eclipse-by-mike-neck #jbugj
Intelli j vs-eclipse-by-mike-neck #jbugjIntelli j vs-eclipse-by-mike-neck #jbugj
Intelli j vs-eclipse-by-mike-neck #jbugj
 
i-Phone unit-test
i-Phone unit-testi-Phone unit-test
i-Phone unit-test
 

Recently uploaded

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (12)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

On stream-lazy-computation