SlideShare a Scribd company logo
1 of 81
Download to read offline
Pony
concurrency built
into the type system
@matsu_chara
2016/3/20 kbkz_tech#9
スライドが81ページあるので
爆速でやります。
今日のスライド
https://www.slideshare.net/matsu_chara/pony-
concurrency-built-into-the-type-system-59778750
タイトルはパクリ
ツイート: https://twitter.com/debasishg/status/701675442793615360
元ブログ(別の人): http://blog.acolyer.org/2016/02/17/deny-capabilities/
自己紹介
• @matsu_chara
• ドワンゴ一年目
• 好きな言語:PHP
• ブログ: http://matsu-chara.hatenablog.com/
今日は
最強言語PHPの話
ではなく
超高速で型安全な
アクターモデル言語Ponyの話をします
Ponyとは
• 2015年4月に0.1がリリースされた言語
• Causalityというロンドンの会社が開発。
• 元はImperial Collegeで研究されていた。
• 論文 A String of Ponies Transparent Distributed Programming with Actors
s.blessing 2013
商用サポートあり
http://www.causality.io/
気合入ってる
で、一体どんな言語なんだ・・・
Ponyとは
• アクターモデルに特化
• 速さと(型による)安全性を追求
• pony philosophy
• capability-secure
さらに
distributed pony
http://www.doc.ic.ac.uk/teaching/distinguished-projects/2013/s.blessing.pdf論文での提案手法リスト
• 真の狙いは並行処理ではなく分散システムの構築にある
• まだ実装は未公開(論文はある)
まだ出てないので今日は
concurrent ponyの話に限定
Ponyとは
• アクターモデルに特化
• 速さと(型による)安全性を追求
• pony philosophy
• capability-secure
Pony哲学(抜粋) https://github.com/ponylang/ponyc/wiki/Philosophy
• Fully type safe. There is no "trust me, I know what I'm doing"
coercion.
• 型安全!
• Fully memory safe. There is no "this random number is really a
pointer, honest.”
• 危険なポインタ操作とかは無し!
• No crashes. A program that compiles should never crash (although it
may hang or do something unintended).
• コンパイル通ったらクラッシュもハングもしない!
コンパイルが通ったら絶対に
クラッシュさせないという
熱い気持ち
Ponyとは(再掲)
• アクターモデルに特化
• 速さと(型による)安全性を追求
• pony philosophy
• capability-secure
capability secureの前に
アクターモデルについて
アクターモデル(かなり省略版)
Actor
Actor ActorActor
Actorを用意
各アクターにメッセージを配信
Actor
Actor ActorActor
各アクターにメッセージを配信
Actor
Actor ActorActor
各アクターにメッセージを配信
Actor
Actor ActorActor
メッセージを処理
Actor
Actor ActorActor
一つのアクターはシングルスレッドで
メッセージを1つずつ処理
メッセージドリブン
Actor
Actor ActorActor
Actor
処理が終わったらまた別のアクターに
メッセージを投げる
メッセージドリブン
Actor
Actor ActorActor
Actor
処理が終わったらまた別のアクターに
メッセージを投げる
メッセージドリブン
Actor
Actor ActorActor
Actor
処理が終わったらまた別のアクターに
メッセージを投げる
shared nothing is 神
• 各アクターでデータを共有しないからデータ競合
しない!
• ロックも必要ないからデッドロックのリスクもない!
アクターモデルで書ける言語
• 色々ある
• Erlang/Elixir, Scala, C++,…
• Erlangは神
• 軽量スレッドに最適化されたVM
• ノンブロッキングな標準ライブラリ群
一方で
shared nothing の課題
• Erlangなどの言語ではメッセージをコピーして渡す必
要がある。間違いでした(※1, ※2)
• コピーしなくても良い物も含まれるので当然オーバー
ヘッドがある。
• ※1: 特定Byte数以上のBinaryは参照とのことです。 https://twitter.com/
voluntas/status/711486384406552576
• ※2: http://www.ponylang.org/papers/fast-cheap.pdf のintroductionを
読んで書いたのですが”全部”のデータがコピーされるわけではないようです。
• Scala/akkaではアクターで書きつつshared
memoryっぽくデータを共有できる
• しかしデータを共有したが最後、データ競合・デッ
ドロックのリスクが発生してしまう
• アクターモデルとは何だったのか・・・
shared nothing の課題
全部コンパイル時に保証して欲しい・・・
• 「shared memory方式の効率の良さ」と「shared
nothingの安全性」を両立したい。
• data-raceとdead-lockが二大天敵
• shared memoryなんだけどコンパイル時にdata-
raceとdead-lockが無いことを保証してくれる言
語があればできそう・・・
というわけで
Ponyの話に戻ります
Ponyとは(再掲)
• アクターモデルに特化
• 速さと(型による)安全性を追求
• pony philosophy
• capability-secure
capabilities-secure
以下の要素を満たす(という定義)http://tutorial.ponylang.org/
• 型安全
• メモリー安全
• 例外安全
• デッドロックなし
• データ競合なし
capabilities-secure
以下の要素を満たす(という定義)http://tutorial.ponylang.org/
• 型安全
• メモリー安全
• 例外安全
• デッドロックなし
• データ競合なし ←コンパイル時に保障
データ競合させないための
型修飾子
object capabilities
• オブジェクトへのアクセス権を細かく分割して型で
表現
• 全6種
• 例)複数アクターから同時にWriteできる参照が
あったらコンパイルエラー
論文 http://www.ponylang.org/papers/fast-cheap.pdf
Main Worker
例
object capabilities
Main Worker
状態を初期化
例
object capabilities
Main Worker
状態を初期化
初期化した状態を送信
例
object capabilities
object capabilities
文字サイズが小さいので拡大
object capabilities
new iso createという
メソッド定義により
作成されたインスタンスに
isoという型修飾子が
ついて返ってくる
isoについては後述
object capabilities
fun refとすると
状態を変更するメソッドが
定義できる
object capabilities
refを忘れて
状態を変更すると
コンパイルエラー
object capabilities
iso: read/writeユニークな参照
iso: read/writeユニークな参照
isoを受け取るメソッド
(正確にはbehavior)
iso: read/writeユニークな参照
• 他の参照が無いので自由に書き換え可能
• 参照を破棄することで、他アクターに安全にread/
write権限を渡すことが出来る
iso: read/writeユニークな参照
iso: read/writeユニークな参照
isoな参照
型は推論されるので
書かなくてもOK
iso: read/writeユニークな参照
consumeで参照を破棄
&
他アクターに渡す
iso: read/writeユニークな参照
isoな参照を
増やそうとすると
コンパイルエラー
iso: read/writeユニークな参照
consume後の
参照は
コンパイルエラー
trn: writeユニーク
• 他アクターからはreadできない
• 自アクターからはreadできる
• 権限を破棄すると、writeがもう存在しなくなるこ
とを保証できる。=> (readする参照が別にあっても)他
アクターに安全に渡せる
trn: writeユニーク
trn: writeユニーク
new isoからnew trn
に書き換えただけなので略
trn: writeユニーク
trn: writeユニーク
trnな変数
trn: writeユニーク
参照を放棄
writeできる参照が
なくなる
trn: writeユニーク
trn: writeユニーク
val(定数)になる。
• read専用(not ユニーク)
• 自分のアクターでtrnが書き換えるかも
• 他のアクター内にある定数かも
• とりあえず値が読めれば気にしない
box: read参照
box: read参照
box: read参照
trnと全く同じなので略
box: read参照
trnを参照して
読み取りしてOK
box: read参照
trn参照の末路を
気にせず読み取ってOK
val, ref, tag (説明略)
• val: immutable
• ref: mutable
• tag: 参照が同じかどうかの比較しかできない。
(read/writeどちらもNG)
型システムがアクターを前提とするメリット
• data-race freeをコンパイル時に保障できるようになる
• writeするなら他アクターはreadしちゃダメ。自アクターからはread OK
• writeしないなら他アクターもreadしてOK。もちろん自分もread OK
• write uniqueなら書き換え件を放棄したら他のアクターに定数として渡してOK
• read/write uniqueなら権限放棄しつつ他アクターに渡せば、そっちでまたwriteできる
• 別のアクターに渡す・自分のアクター内で処理するなど
の情報が型システムで扱える。
型システムがアクターを前提とするメリット
• zero-copyなので大きいデータをメッセージとして
やり取りしてもオーバーヘットがない
• 標準ライブラリがこの機能をガンガン使っているこ
とによる恩恵も受けられる
• 処理系がデータ競合のケアをしなくて良くなる。 GC
での性能改善などに寄与している(らしい) https://
www.youtube.com/watch?v=KvLjy8w1G_U
コンパイルが通ったら絶対に
クラッシュさせないという
熱い気持ち安全な型システム
パフォーマンス (付録)
https://github.com/ponylang/ponylang.github.io/blob/master/benchmarks_all.pdf
• それなりに速そう
• スケジューラーとキュー
も工夫あり
pony
GCもすごい (付録)
• Pony-ORCA (Ownership and Reference Counting based gc for
Actor?)
• stop-the-world lessな並行GC
• one Actor GC/cross Actor GC/Actor GC
• data-race freeを前提に出来る強さ。
• 詳しくは論文(https://github.com/ponylang/ponylang.github.io/blob/master/papers/OGC.pdf)
他の言語との比較 (付録)
Ponyお役立ち資料集 (付録)
• とりあえず公式Tutorial & 発表
• http://tutorial.ponylang.org/
• https://www.youtube.com/watch?v=KvLjy8w1G_U
• 論文
• http://www.doc.ic.ac.uk/teaching/distinguished-projects/2013/s.blessing.pdf
• https://github.com/ponylang/ponylang.github.io/tree/master/papers
まとめ
• shared nothingとshared memoryを統合して高速化を図りつつ
安全に並行処理を記述できる
• アクターを前提にした言語&処理系のメリット
• zero-copy & data-race free & dead-lock free
• Pony-ORCA GC
• 完全な研究用ではなく実用を目指している。
• 真の狙いは分散システムにある。(distributed ponyに期待)

More Related Content

What's hot

ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
Takayuki Shimizukawa
 
pythonでオフィス快適化計画
pythonでオフィス快適化計画pythonでオフィス快適化計画
pythonでオフィス快適化計画
Kazufumi Ohkawa
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
moai kids
 

What's hot (20)

elasticsearchソースコードを読みはじめてみた
elasticsearchソースコードを読みはじめてみたelasticsearchソースコードを読みはじめてみた
elasticsearchソースコードを読みはじめてみた
 
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
 
Sphinx customization for OGP support at SphinxCon JP 2018
Sphinx customization for OGP support at SphinxCon JP 2018Sphinx customization for OGP support at SphinxCon JP 2018
Sphinx customization for OGP support at SphinxCon JP 2018
 
ElasticsearchとTasteプラグインで作るレコメンドシステム
ElasticsearchとTasteプラグインで作るレコメンドシステムElasticsearchとTasteプラグインで作るレコメンドシステム
ElasticsearchとTasteプラグインで作るレコメンドシステム
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
Sphinx GO!!
Sphinx GO!!Sphinx GO!!
Sphinx GO!!
 
Sphinxの使い方事例
Sphinxの使い方事例Sphinxの使い方事例
Sphinxの使い方事例
 
ウェブから情報をあつめる
ウェブから情報をあつめるウェブから情報をあつめる
ウェブから情報をあつめる
 
Elasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバElasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバ
 
Sphinx で手軽に作るドキュメント
Sphinx で手軽に作るドキュメントSphinx で手軽に作るドキュメント
Sphinx で手軽に作るドキュメント
 
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
 
Case study to use MongoDB in middle-class SIer / (中規模) SIerだってMongoDBできたよ!
Case study to use MongoDB in middle-class SIer / (中規模) SIerだってMongoDBできたよ!Case study to use MongoDB in middle-class SIer / (中規模) SIerだってMongoDBできたよ!
Case study to use MongoDB in middle-class SIer / (中規模) SIerだってMongoDBできたよ!
 
pythonでオフィス快適化計画
pythonでオフィス快適化計画pythonでオフィス快適化計画
pythonでオフィス快適化計画
 
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた
 
Webアプリ開発者のためのHTML5セキュリティ入門
Webアプリ開発者のためのHTML5セキュリティ入門Webアプリ開発者のためのHTML5セキュリティ入門
Webアプリ開発者のためのHTML5セキュリティ入門
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Introduce for sphinx-users-jp
Introduce for sphinx-users-jpIntroduce for sphinx-users-jp
Introduce for sphinx-users-jp
 
ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01
 

Viewers also liked

Scala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.jsScala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.js
takezoe
 
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
Keigo Suda
 

Viewers also liked (13)

Elixirについて私が知ってる二、三の事柄
Elixirについて私が知ってる二、三の事柄Elixirについて私が知ってる二、三の事柄
Elixirについて私が知ってる二、三の事柄
 
Elixirと他言語の比較的紹介 ver.2
Elixirと他言語の比較的紹介ver.2Elixirと他言語の比較的紹介ver.2
Elixirと他言語の比較的紹介 ver.2
 
Visulan intro
Visulan introVisulan intro
Visulan intro
 
Regular expressions à la carte
Regular expressions à la carteRegular expressions à la carte
Regular expressions à la carte
 
統計をとって高速化する
Scala開発
統計をとって高速化する
Scala開発統計をとって高速化する
Scala開発
統計をとって高速化する
Scala開発
 
すごい Frege たのしく学ぼう!
すごい Frege たのしく学ぼう!すごい Frege たのしく学ぼう!
すごい Frege たのしく学ぼう!
 
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
 
Project Frankenstein: A multitenant, horizontally scalable Prometheus as a se...
Project Frankenstein: A multitenant, horizontally scalable Prometheus as a se...Project Frankenstein: A multitenant, horizontally scalable Prometheus as a se...
Project Frankenstein: A multitenant, horizontally scalable Prometheus as a se...
 
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
Swift : クラス継承とプロトコル拡張を比べてみる #yidevSwift : クラス継承とプロトコル拡張を比べてみる #yidev
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
 
明日から業務で使うScala
明日から業務で使うScala明日から業務で使うScala
明日から業務で使うScala
 
Scala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.jsScala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.js
 
ディープラーニングとは
ディープラーニングとはディープラーニングとは
ディープラーニングとは
 
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
 

Similar to Pony concurrency built into the type system

徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
Hiroshi Tokumaru
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
Yusuke Wada
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
 
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawlerRubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
Takuro Sasaki
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
Takeshi Arabiki
 
Plone talk 201308_terada
Plone talk 201308_teradaPlone talk 201308_terada
Plone talk 201308_terada
Manabu Terada
 
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
ericsagnes
 

Similar to Pony concurrency built into the type system (20)

徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
 
20141101 handson
20141101 handson20141101 handson
20141101 handson
 
Pbox on softlayer
Pbox on softlayerPbox on softlayer
Pbox on softlayer
 
Hatena blogdevelopmentflow
Hatena blogdevelopmentflowHatena blogdevelopmentflow
Hatena blogdevelopmentflow
 
WordBench Saitama vol.6
WordBench Saitama vol.6WordBench Saitama vol.6
WordBench Saitama vol.6
 
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
 
「お手軽な機械学習サービス」で、ルーティンワークに立ち向かおう!
「お手軽な機械学習サービス」で、ルーティンワークに立ち向かおう!「お手軽な機械学習サービス」で、ルーティンワークに立ち向かおう!
「お手軽な機械学習サービス」で、ルーティンワークに立ち向かおう!
 
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawlerRubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
 
20141206 handson
20141206 handson20141206 handson
20141206 handson
 
全文検索入門
全文検索入門全文検索入門
全文検索入門
 
20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn Seminar20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn Seminar
 
勉強会 Cvml python基礎
勉強会 Cvml python基礎勉強会 Cvml python基礎
勉強会 Cvml python基礎
 
Elasticsearch 変わり種プラグインの作り方
Elasticsearch 変わり種プラグインの作り方Elasticsearch 変わり種プラグインの作り方
Elasticsearch 変わり種プラグインの作り方
 
Plone talk 201308_terada
Plone talk 201308_teradaPlone talk 201308_terada
Plone talk 201308_terada
 
マークアップ講座 01b HTML
マークアップ講座 01b HTMLマークアップ講座 01b HTML
マークアップ講座 01b HTML
 
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
 
ローカルストレージでの永続化キューの方式を本気で比較してみた
ローカルストレージでの永続化キューの方式を本気で比較してみたローカルストレージでの永続化キューの方式を本気で比較してみた
ローカルストレージでの永続化キューの方式を本気で比較してみた
 

Recently uploaded

Recently uploaded (12)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

Pony concurrency built into the type system