SlideShare une entreprise Scribd logo
1  sur  110
Télécharger pour lire hors ligne
非同期したり
イベント駆動したり
∼Vert.xのちょっとした話∼
   2012/10/26 at G*ワークショップ
改め
非同期したり
 イベント駆動したり
あとは時々スケールしたり
 ∼Vert.xのちょっとした話∼
  2012/10/26 at G*ワークショップ
お前誰よ?
•名前:杉浦孝博

•@touchez_du_bois

•自称 アニメ営業 担当

•時々 他社製品営業 担当
閑話休題
前期(7∼9月)の
おススメアニメ
  と言えば
人類は
衰退しました
TARI TARI
ですが、
今期(10∼11
月)のおススメ
アニメと言えば
ジョジョの
奇妙な冒険
となりの
怪物くん
中二病でも
恋がしたい!
中二病でも
恋がしたい!
   Lite
デス!
です。
さて、
本題(営業活
動)が終わり
ましたので、
ここから40
 分弱、
余談
です。
さて、
時は西暦
2006年
C10K問題
C10K問題
• ハードウェアの性能上は問題がなくても、
 あまりにもクライアントの数が多くなると
 サーバがパンクする問題のこと。

• http://www.hyuki.com/yukiwiki/
 wiki.cgi?TheC10kProblem
C10K問題

• プロセスのfork、マルチスレッド化。
   • 生成にリソースが必要。
   • コンテキストスイッチが発生。
C10K問題

• ブロッキングI/O (同期I/O)。
   • アプリは作りやすい(素直なロジック)。
   • 入出力の完了を待つ必要がある。
C10K問題
• ネットワーク上のリクエストの増加。
   • スマートフォンの普及。
   • WebSocketsなどでクライアント/サー
   バ間を繋ぎっぱなしに。
そこで
C10K問題
• 次の方法で対応。
 • シングルスレッドモデル。
 • ノンブロッキングI/O (非同期I/O)。
 • イベント駆動。
Java界隈では
NIO
  from
J2SE 1.4
NIO.2
 from
Java 7
Netty
from
JBoss
Groovy界隈
   では
Gretty
  from
Alex Tkachman
Gretty
•次のURLを参照。
• http://uehaj.hatenablog.com/entry/
    20100819/1282168541

• http://d.hatena.ne.jp/toby55kij/
    20111223/1324568112

• http://www.ibm.com/developerworks/jp/java/
    library/j-javadev2-20/index.html
そして...
Vert.x
Vert.xとは
•非同期、スケーラブル、並列処
 理アプリケーション開発のため
 のフレームワーク。

•公式ページ:http://vertx.io/

• バージョン:1.3.0 final
Vert.xとは
•開発リーダー:Tim Fox
Vert.xの特徴
Vert.xの特徴 (1)
•JVM上で動作。多言語対応。

 • Java, Groovy, JavaScript,
  CoffeeScript, Ruby, Python
  に対応。

 •   Scala, Clojureに対応予定。
Vert.xの特徴 (2)

•
イベント駆動モデル。

 • イベントに対して、イベントを
 処理するハンドラを記述。

•   ハンドラは非同期に実行。
Vert.xの特徴 (3)
•
シンプルな並列処理モデル。

 • シングルスレッドモデルのよう
 にコードを記述。

•synchronized, volatile, 明示
 的なロックは基本的に不要。
Vert.xの特徴 (4)
•
割と楽にスケーリング。

 • メッセージパッシングや
 immutableな共有データなど
 を使用。

•   自前で頑張らなくてもよい。
Vert.xの
コンセプト
Verticle

•
Vert.xのデプロイの単位。

• メインのスクリプト、及び参照
されるスクリプトやjarやリソー
スを含む。
Verticle

•1つのVerticleのみで単独動作。

• 複数のVerticleがイベントバス
を使用して協調動作。
Verticle
インスタンス




            イベントバス

             JVM
Vert.xインスタンス

•Verticleが実行される環境。

• Vert.xインスタンス自体は、
JVM上で実行される。
Vert.xインスタンス

•
Vert.xインスタンスは、同じホ
スト、同じネットワークの異な
るホスト上に同時に複数存在
可。
Vert.xインスタンス

•
Vert.xインスタンスは、独自の
クラスローダでそれぞれの
Verticleを実行。

•Verticle同士は独立。
Vert.xインスタンス

•
Vert.xインスタンス同士でクラ
スタを構成、分散イベントバス
を形成して、Verticle同士が通
信できる。
Verticle
インスタンス

  Vert.x
インスタンス
            イベントバス


             JVM
多言語対応
•
好きな言語でVerticleを開発で
きる。

•
異なる言語で書かれたVerticle
同士をシームレスに連携でき
る。
イベント駆動
•
Verticle開発のほとんどは、イ
ベントハンドラの設定。

•
ノンブロッキング、マルチスレ
ッドによるコンテキストスイッ
チやスタック領域への対応。
イベントループ
•
イベントを処理し、Verticleに
ディスパッチするスレッド。

•複数イベントループを作成可。

• Verticleインスタンスは常に同
じイベントループに割り当て。
イベントループ

•
1つのイベントループに複数の
Verticleインスタンスを処理。

•マルチ・リアクター・パターン

 • イベントループが複数のため。
イベント
  ループ
 Verticle
インスタンス

  Vert.x
インスタンス
            イベントバス


             JVM
メッセージパッシング

•
同じVert.xインスタンス内、あ
るいは異なるVert.xインスタン
スで、イベンストバスを通じメ
ッセージをやり取りすることで
他のVerticleと通信が可能。
メッセージパッシング

•
あるVerticleから別の複数の
Verticleにメッセージパッシン
グすることで、マルチスレッド
的な使い方ができ。スケールも
可能。
イベント
  ループ
 Verticle
インスタンス

  Vert.x
インスタンス

            イベントバス

             JVM
共有データ

•
メッセージパッシングが常に最
良の解とは限らない。

•
ひとつのVerticleにメッセージ
が集中してしまう場合。
共有データ

•
不変なデータのみ、Verticle間
で共有が可能。

•
共有マップと共有セットが利用
可能。
ワーカーVerticle
•
Verticleインスタンスはイベン
トループに割り当てられ実行(デ
ィスパッチ)。

•
Verticleインスタンスは処理を
ブロックすべきではない。
ワーカーVerticle

•
でも、どうしてもブロックする
ケースが出てくる。

•例えば、JDBC API。
ワーカーVerticle
•
ワーカーVerticleとは、イベン
トループに割り当てられていな
いVerticle。

•
バックグラウンドのスレッドプ
ールで実行。
ワーカーVerticle
•いくつか制限がある。

• 複数のスレッドで同時に実行さ
れることはない。

•
TCP/HTTPのクライント/サー
バでは使用できない。
コアサービス
•
Verticleから直接呼び出し可能
なサービス(API)。

•
サーバやクライアント作成に必
要そうなものはひととおり揃え
てある。
コアサービス
•   TCP/SSLのサーバ/クライアント

•   HTTP/HTTPSのサーバ/クライアント

•   WebSocketsのサーバ/クライアント

•   分散イベントバスへのアクセス

•   定期的かつ単発のタイマー

•   バッファ

•   フロー制御

•   ファイルシステム上のファイルアクセス

•   共有マップ、共有セット

•   ロギング

•   SockJSサーバ構築

•   Verticleのデプロイ/アンデプロイ
モジュール

•
アプリケーションや再利用可能
なリソースをパッケージ化した
もの。

•どの言語でも記述できる。
モジュール

•
イベントバス上でJSONメッセ
ージを送受信することで
Verticleインスタンスや他のモ
ジュールから通信が可能。
モジュール
• https://github.com/vert-x/vertx-mods
 • Webサーバ
 • キュー
 • mongodbアクセス
 • メール送信
 • 認証
 • ファイルアップロード
ライブラリ
•
次のオープンソースライブラリ
を使用。

•   Netty : ネットワークI/O

• Hazelcast : クラスタリング
    各言語の実行エンジン
Demo
Hello,World
 的なもの
HelloWorld.groovy
vertx.createHttpServer().requestHandler
{ request ->
  request.response.end(“””
<html>
  <body>
     <h1>Hello, World!</h1>
  </body>
</html>
“””)
}.listen(8080, 'localhost')
$ vertx run HelloWorld.groovy
課題
課題
•エラーが意味不明。

 • 1.3.0でサンプルが動かなくな
 った...orz

•どこで落ちたかがわからな
 い...orz
auxo:demo02 rhapsody$ vertx run App.groovy
Exception in Groovy verticle
java.lang.NullPointerException
!   at org.vertx.java.deploy.impl.VerticleManager$1.handle(VerticleManager.java:169)
!   at org.vertx.java.deploy.impl.VerticleManager$1.handle(VerticleManager.java:166)
!   at org.vertx.java.core.impl.BlockingAction$1$1.run(BlockingAction.java:60)
!   at org.vertx.java.core.impl.Context$2.run(Context.java:122)
!   at
org.jboss.netty.channel.socket.nio.AbstractNioWorker.processEventQueue(AbstractNioWorker.jav
a:453)
!   at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:330)
!   at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
!   at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
!   at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
!   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
!   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
!   at java.lang.Thread.run(Thread.java:722)
Demo 2
ちょっと
凝ったもの
落ち穂拾い
ドキュメント
•
ドキュメントは割と充実。

 • メインマニュアル

 • 言語ごとにコアマニュアルと
 APIドキュメント
 モジュール用マニュアル
チュートリアル
•
Webアプリケーションを作る。

 • Webサーバ用モジュール、
 MongoDBを使った永続化、イ
 ベントバスを使った通信な
 ど。
サンプル
•
コアサービスの使い方がだいた
い分かるサンプル。
• TCP/SSL, HTTP/HTTPS
• イベントバス
• WebSockets, SockJS
• ファイルアップロード、など
Grailsから使う
•GrailsからSockJSを使う例

 • https://gist.github.com/
  2652835

 •BootStrapでSockJSServer
  インスタンスを生成し起動。
import org.vertx.groovy.core.Vertx

class BootStrap {

    def init = { servletContext ->
        def vertx = Vertx.newVertx()
        def httpServer = vertx.createHttpServer()
        def server = vertx.createSockJSServer(httpServer)
        server = installApp(prefix: '/events') { sock ->
            sock.dataHandler { buff ->
                sock << buff
            }
        }

        httpServer.listen(8585)
    }

    def destroy = {
    }
}
   var sock = new SockJS('http://localhost:8585/events');
   sock.onopen = function() {
       console.log('open');
   };
   sock.onmessage = function(e) {
       console.log('message', e.data);
       alert('received message echoed from server: ' + e.data);
   };
   sock.onclose = function() {
       console.log('close');
   };

   function send(message) {

     if (sock.readyState == WebSocket.OPEN) {
        console.log("sending message")
        sock.send(message);
     } else {
        console.log("The socket is not open.");
     }
   }
まとめ
まとめ (副業)
•
Vert.xは非同期でスケーラブル
な並列処理アプリケーションを
開発するためのフレームワーク
•
リクエストをせっせと捌くよう
な用途に使用することを検討し
てみてはいかがでしょうか。
まとめ (本業)

•
円盤(Blu-ray/DVD)買ってね♡
 • ジョジョの奇妙な冒険
 • となりの怪物くん
 • 中二病でも恋がしたい!
おまけ
先程の
ドキュメント
•
ドキュメントは割と充実。

 • メインマニュアル

 • 言語ごとにコアマニュアルと
 APIドキュメント
 モジュール用マニュアル
ですが、
株式会社
ニューキャスト
  さんの
Mybetabook
http://mybetabook.com/
で
絶賛翻訳中
 です。
ということで、
ご清聴ありがとう
ございました。

Contenu connexe

En vedette

Closures and methodMissing are real
Closures and methodMissing are realClosures and methodMissing are real
Closures and methodMissing are realTakahiro Sugiura
 
ジャパネットQB GPars
ジャパネットQB GParsジャパネットQB GPars
ジャパネットQB GParsTakahiro Sugiura
 
Groovyしたり RPしなかったり あとは時々布教活動したり
Groovyしたり RPしなかったり あとは時々布教活動したりGroovyしたり RPしなかったり あとは時々布教活動したり
Groovyしたり RPしなかったり あとは時々布教活動したりTakahiro Sugiura
 

En vedette (7)

Closures and methodMissing are real
Closures and methodMissing are realClosures and methodMissing are real
Closures and methodMissing are real
 
ジャパネットQB GPars
ジャパネットQB GParsジャパネットQB GPars
ジャパネットQB GPars
 
GContractsの基礎
GContractsの基礎GContractsの基礎
GContractsの基礎
 
Introduction to Spock
Introduction to SpockIntroduction to Spock
Introduction to Spock
 
Goos 001
Goos 001Goos 001
Goos 001
 
Groovyしたり RPしなかったり あとは時々布教活動したり
Groovyしたり RPしなかったり あとは時々布教活動したりGroovyしたり RPしなかったり あとは時々布教活動したり
Groovyしたり RPしなかったり あとは時々布教活動したり
 
GroovyからAnime
GroovyからAnimeGroovyからAnime
GroovyからAnime
 

Similaire à Vert.x.tari.tari

PHP7をDockerで動かしたという話
PHP7をDockerで動かしたという話PHP7をDockerで動かしたという話
PHP7をDockerで動かしたという話侑弥 濱田
 
Node.js で Web アプリ開発
Node.js で Web アプリ開発Node.js で Web アプリ開発
Node.js で Web アプリ開発Tatsumi Naganuma
 
Java scriptでslideを作ってみた
Java scriptでslideを作ってみたJava scriptでslideを作ってみた
Java scriptでslideを作ってみたKatsuhito Yonao
 
スマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブルスマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブルHiroaki Wakamatsu
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由Yusuke Naka
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGUehara Junji
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうKoichi Sakata
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよNaruto TAKAHASHI
 
作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話Tsuyoshi Torii
 
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】Yasuhito Yabe
 
WordBench Kobe jQueryどうでしょう
WordBench Kobe jQueryどうでしょうWordBench Kobe jQueryどうでしょう
WordBench Kobe jQueryどうでしょうHishikawa Takuro
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Tokuhiro Matsuno
 
ななめ45°から見たJavaOne
ななめ45°から見たJavaOneななめ45°から見たJavaOne
ななめ45°から見たJavaOneAdvancedTechNight
 
Dockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しようDockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しようTakashi Makino
 
初心者が伝えるDocker超入門
初心者が伝えるDocker超入門初心者が伝えるDocker超入門
初心者が伝えるDocker超入門chichi1091
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編Asami Abe
 
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集Wataru NOGUCHI
 

Similaire à Vert.x.tari.tari (20)

Pronama 0707 wf4
Pronama 0707 wf4Pronama 0707 wf4
Pronama 0707 wf4
 
20140803 docker
20140803 docker20140803 docker
20140803 docker
 
PHP7をDockerで動かしたという話
PHP7をDockerで動かしたという話PHP7をDockerで動かしたという話
PHP7をDockerで動かしたという話
 
Node.js で Web アプリ開発
Node.js で Web アプリ開発Node.js で Web アプリ開発
Node.js で Web アプリ開発
 
Java scriptでslideを作ってみた
Java scriptでslideを作ってみたJava scriptでslideを作ってみた
Java scriptでslideを作ってみた
 
スマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブルスマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブル
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよ
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
 
作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話
 
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】
 
WordBench Kobe jQueryどうでしょう
WordBench Kobe jQueryどうでしょうWordBench Kobe jQueryどうでしょう
WordBench Kobe jQueryどうでしょう
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
ななめ45°から見たJavaOne
ななめ45°から見たJavaOneななめ45°から見たJavaOne
ななめ45°から見たJavaOne
 
Dockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しようDockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しよう
 
初心者が伝えるDocker超入門
初心者が伝えるDocker超入門初心者が伝えるDocker超入門
初心者が伝えるDocker超入門
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編
 
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
 

Dernier

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~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...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Dernier (9)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~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...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

Vert.x.tari.tari