IdrisでWebアプリを書く

Hideyuki Tanaka
Hideyuki TanakaPreferred Infrastracture
IdrisでWebアプリを書く
田中英行
@天下一altJS武闘会
自己紹介
• 田中英行(@tanakh)
• Haskellとかやってます
• 「すごいHaskellたのしく学ぼう」翻訳
• 「Parallel and Concurrent Programming in
Haskell」翻訳中
• Idris初心者
Idrisとは?
• http://www.idris-lang.org/
• “Fully Dependent Type” なプログラミング言語
• Cf. CoqとかAgdaとかATSとか
• 純粋関数型
• 正格評価
• 様々な言語へのバックエンド
• C言語
• LLVM
• Java
• JavaScript
処理系のインストール
• $ cabal install idris
$ idris
____ __ _
/ _/___/ /____(_)____
/ // __ / ___/ / ___/ Version 0.9.13
_/ // /_/ / / / (__ ) http://www.idris-lang.org/
/___/__,_/_/ /_/____/ Type :? for help
Idris> █
構文など
• 大体Haskell!
• 基本的な構文
• 型クラスなどなど
• リスト・モナド内包
• モナド記法などなど
Dependent Type (依存型)
• 値に依存した型
• 型のパラメータとして値が取れる
• 型と値の区別があんまりない
• 型に対して計算できる
• ・・・
• 要するにめっちゃ強い型
• 証明とかにも使える
めっちゃ強い型で何するの?
• 証明
• カリー・ハワード同型対応により、
「型の表現力=命題の表現力」
• CoqとかAgdaとかはこっちがメイン
• 安全なプログラムを書く
• 単純により多くのことを型レベルで保証したい
• 例えば、配列のアクセスが範囲を超えないなど
• システムプログラムとかによさそう
• Idrisはこっちが目標っぽい
例:長さを型に持つリスト
data Vect : Nat -> Type -> Type where
Nil : Vect Z a
(::) : a -> Vect k a -> Vect (S k) a
(++) : Vect n a -> Vect m a -> Vect (n + m) a
(++) Nil ys = ys
(++) (x :: xs) ys = x :: xs ++ ys
index : Fin n -> Vect n a -> a
index fZ (x :: xs) = x
index (fS k) (x :: xs) = index k xs
例:長さを型に持つリスト
Idris> the (Vect _ _) $ [1,2,3] ++ [4,5,6]
[1, 2, 3, 4, 5, 6] : Vect 6 Integer
Idris> Vect.index 5 $ [1,2,3] ++ [4,5,6]
6 : Integer
Idris> Vect.index 10 $ [1,2,3] ++ [4,5,6]
(input):1:15:When elaborating argument prf to
Prelude.Fin.fromInteger:
Can't unify
IsJust (Just x)
with
IsJust (integerToFin 10 (3 + 3))
DOM操作
• altJSの本懐、DOM操作
• iQuery
• https://github.com/idris-hackers/iQuery
• というのがあるのだが・・・
IdrisでWebアプリを書く
iQuery
• ものすごく機能が足りてない
• ラッパーが抽象型で生のJSオブジェクトにアク
セスできない
• → 使えない
完全に名前負け
というわけで
• 1から作るしかない
• ただのJavaScriptにコンパイルできる言語
• altJSとはなんだったのか・・・
• これだったらEmscriptenでC言語もaltJSなんでは
FFIでJavaScriptとやりとりする
• 任意のJavaScriptコードを埋め込める
• コードと引数は静的に検査される
alert : String -> IO ()
alert msg =
mkForeign (FFun "alert(%0)" [FString]
msg
%include
• JavaScriptのコードをincludeできる
(生成されるJSの先頭にくっつくだけ)
%include JavaScript "lib.js"
twice : (Int -> Int) -> Int -> IO Int
twice f x =
mkForeign (FFun "twice(%0,%1)"
[FFunction FInt FInt, FInt] FInt) f x
main : IO ()
main = alert (show !(twice (+1) 1)) -- 3
がでる
// lib.js
function twice(f, x) { return f(f(x)); }
適当なライブラリを作る
Document : Type
Document = Ptr
document : Document
document =
unsafePerformIO $ mkForeign (FFun "document" []
set : Ptr -> String -> String -> IO ()
set e mem val =
mkForeign (FFun "%0[%1]=%2" [FPtr, FString,
FString] FUnit)
e mem val
get : Ptr -> String -> IO String
get e mem =
mkForeign (FFun "%0[%1]" [FPtr, FString] FString) e
構文定義構文
• Idrisには構文を定義する構文がある!
• 例:ifの定義
boolCase : (x:Bool) -> Lazy a -> Lazy a -> a
boolCase True t e = t
boolCase False t e = e
syntax "if" [test] "then" [t] "else" [e] =
boolCase test t e
(´・_・`).oO(どういう仕組みなんだろう・・・)
使用例
syntax [object] "[" [member] "]" ":=" [value] =
set object member value
syntax [object] "[" [member] "]" =
get object member
main : IO ()
main = do
document["innerHTML"] := "(´・_・`)<つらぽよ"
TypeProvider
• F#のTypeProviderみたいなのもあるんですってよ!
デモ
• ライフゲーム
• まるばつゲーム(負けないことの証明付き)
デモ
• ライフゲーム
• まるばつゲーム(負けないことの証明付き)
Idrisのいけてないところ
• 添字アクセスO(1)の配列がない
• メモリバッファの型はあるみたいなので、それの上
に自作すれば良いのだろうか
• IORefがない
• とりあえずはJavaScriptのFFIで作れば良いか・・・
• なんだかものすごい本末転倒感
Idrisのいけてないところ
• 型検査が死ぬほど遅い
• コードの長さに対して指数的に増えていく
(ようにみえる)
• 正直コードを保存する度に苦痛なレベル
• コンパイルされたコードが遅い
• せっかく正格評価なのに、クソ遅い
• コード生成器の実装がクソ
• CのバックエンドでHaskellの10倍ぐらい遅い
• Unboxingとかインライニングとか特殊化とかたぶんこの
辺全く実装されていない
Idrisのいけてないところ
• 並行ライブラリが標準ライブラリにあるが、
JavaScriptのランタイムでは未サポート
_人人人人人人人人人人人_
> Not Yet Implemented
<
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
Idrisのいけてないところ
• (僕は)証明が書けない
• 例えば、リストの要素アクセス
• Listは型に長さを含まない
• アクセス時は、添字が長さよりも小さいという証明を与
える必要がある・・・
Idris> :doc List.index
index : (n : Nat) -> (l : List a) -> (ok : lt n (length l) =
-> a
Find a particular element of a list.
Arguments:
ok : lt n (length l) = True -- a proof that the
within
bounds
beleave_me!!
Idris> :doc believe_me
believe_me : a -> b
Subvert the type checker. This function is abstract, so it
not reduce in the type checker. Use it with care - it can
in segfaults or worse!
Idris> :doc really_believe_me
really_believe_me : a -> b
Subvert the type checker. This function will reduce in th
checker. Use it with extreme care - it can result in
or worse!
まとめ
• IdrisでWebアプリを書くのは時期尚早
• 可能性は感じる
• 分野を開拓したい人にはおすすめ!
• デファクトのWebフレームワークを作れるか
も!?
1 of 27

Recommended

F#入門 ~関数プログラミングとは何か~ by
F#入門 ~関数プログラミングとは何か~F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~Nobuhisa Koizumi
3.6K views79 slides
Javaバイトコード入門 by
Javaバイトコード入門Javaバイトコード入門
Javaバイトコード入門Kota Mizushima
10.1K views61 slides
OpenStack上の環境構築自動化に向けたTerraform/Pulumiの活用 by
OpenStack上の環境構築自動化に向けたTerraform/Pulumiの活用OpenStack上の環境構築自動化に向けたTerraform/Pulumiの活用
OpenStack上の環境構築自動化に向けたTerraform/Pulumiの活用Keiichi Hikita
1.7K views28 slides
C++ マルチスレッドプログラミング by
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングKohsuke Yuasa
107.6K views97 slides
ゲーム開発者のための C++11/C++14 by
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14Ryo Suzuki
103.6K views157 slides
オブジェクト指向の設計と実装の学び方のコツ by
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ増田 亨
95.1K views76 slides

More Related Content

What's hot

規格書で読むC++11のスレッド by
規格書で読むC++11のスレッド規格書で読むC++11のスレッド
規格書で読むC++11のスレッドKohsuke Yuasa
17.6K views94 slides
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp by
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpYahoo!デベロッパーネットワーク
6.3K views27 slides
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例 by
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例National Cheng Kung University
19.2K views46 slides
Akkaとは。アクターモデル とは。 by
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Kenjiro Kubota
7.8K views49 slides
関数型プログラミング入門 with OCaml by
関数型プログラミング入門 with OCaml関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCamlHaruka Oikawa
12.4K views105 slides
Clean Architectureで設計してRxJSを使った話 by
Clean Architectureで設計してRxJSを使った話Clean Architectureで設計してRxJSを使った話
Clean Architectureで設計してRxJSを使った話_kondei
12.7K views37 slides

What's hot(20)

規格書で読むC++11のスレッド by Kohsuke Yuasa
規格書で読むC++11のスレッド規格書で読むC++11のスレッド
規格書で読むC++11のスレッド
Kohsuke Yuasa17.6K views
Akkaとは。アクターモデル とは。 by Kenjiro Kubota
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
Kenjiro Kubota7.8K views
関数型プログラミング入門 with OCaml by Haruka Oikawa
関数型プログラミング入門 with OCaml関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
Haruka Oikawa12.4K views
Clean Architectureで設計してRxJSを使った話 by _kondei
Clean Architectureで設計してRxJSを使った話Clean Architectureで設計してRxJSを使った話
Clean Architectureで設計してRxJSを使った話
_kondei12.7K views
今から始める Lens/Prism by Naoki Aoyama
今から始める Lens/Prism今から始める Lens/Prism
今から始める Lens/Prism
Naoki Aoyama8K views
Haskell Day2012 - 参照透過性とは何だったのか by Kousuke Ruichi
Haskell Day2012 - 参照透過性とは何だったのかHaskell Day2012 - 参照透過性とは何だったのか
Haskell Day2012 - 参照透過性とは何だったのか
Kousuke Ruichi15K views
良質なコードを高速に書くコツ by Shunji Konishi
良質なコードを高速に書くコツ良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
Shunji Konishi9.3K views
CrowdStrike Falconと効果的に楽に付き合っていくために by Eiji Hoshimoto
CrowdStrike Falconと効果的に楽に付き合っていくためにCrowdStrike Falconと効果的に楽に付き合っていくために
CrowdStrike Falconと効果的に楽に付き合っていくために
Eiji Hoshimoto2.4K views
シェル芸初心者によるシェル芸入門 by icchy
シェル芸初心者によるシェル芸入門シェル芸初心者によるシェル芸入門
シェル芸初心者によるシェル芸入門
icchy37.9K views
最新C++事情 C++14-C++20 (2018年10月) by Akihiko Matuura
最新C++事情 C++14-C++20 (2018年10月)最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)
Akihiko Matuura1.7K views
不揮発メモリ(NVDIMM)とLinuxの対応動向について by Yasunori Goto
不揮発メモリ(NVDIMM)とLinuxの対応動向について不揮発メモリ(NVDIMM)とLinuxの対応動向について
不揮発メモリ(NVDIMM)とLinuxの対応動向について
Yasunori Goto21.2K views
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2 by tamtam180
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
tamtam180 8.3K views
Rust で RTOS を考える by ryuz88
Rust で RTOS を考えるRust で RTOS を考える
Rust で RTOS を考える
ryuz881.7K views
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践 by Yoshifumi Kawai
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai191.4K views
20分くらいでわかった気分になれるC++20コルーチン by yohhoy
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy13K views
Redisの特徴と活用方法について by Yuji Otani
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani101.5K views

Viewers also liked

Haskell で LINE Bot を作ってみた by
Haskell で LINE Bot を作ってみたHaskell で LINE Bot を作ってみた
Haskell で LINE Bot を作ってみたNobutada Matsubara
1.3K views18 slides
「7つの言語、7つの世界」を読む by
「7つの言語、7つの世界」を読む「7つの言語、7つの世界」を読む
「7つの言語、7つの世界」を読むNobutada Matsubara
2K views14 slides
Haskell Lecture 1 by
Haskell Lecture 1Haskell Lecture 1
Haskell Lecture 1Yusuke Matsushita
4K views79 slides
型! 型! by
型! 型!型! 型!
型! 型!真一 北原
2.1K views150 slides
Haskell Backpack 事始め by
Haskell Backpack 事始めHaskell Backpack 事始め
Haskell Backpack 事始めNobutada Matsubara
2.1K views36 slides
Elm overview by
Elm overviewElm overview
Elm overviewdsuke Takaoka
14.6K views25 slides

Viewers also liked(8)

Similar to IdrisでWebアプリを書く

やや関数型を意識した風Elixir/Phoenixご紹介 by
やや関数型を意識した風Elixir/Phoenixご紹介やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介fukuoka.ex
1.9K views35 slides
asm.js x emscripten: The foundation of the next level Web games by
asm.js x emscripten: The foundation of the next level Web gamesasm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web gamesNoritada Shimizu
2K views95 slides
第2回品川Redmine勉強会(日本語全文検索) by
第2回品川Redmine勉強会(日本語全文検索)第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)Masanori Machii
7.9K views38 slides
LastaFluteでKotlinをはじめよう by
LastaFluteでKotlinをはじめようLastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめようShinsuke Sugaya
2.1K views49 slides
Cookpad Summer Intern 2015 - Programming Paradigm by
Cookpad Summer Intern 2015 - Programming ParadigmCookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming ParadigmMinero Aoki
71.7K views70 slides
Javaセキュアコーディングセミナー東京第3回講義 by
Javaセキュアコーディングセミナー東京第3回講義Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義JPCERT Coordination Center
1.8K views84 slides

Similar to IdrisでWebアプリを書く(20)

やや関数型を意識した風Elixir/Phoenixご紹介 by fukuoka.ex
やや関数型を意識した風Elixir/Phoenixご紹介やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介
fukuoka.ex1.9K views
asm.js x emscripten: The foundation of the next level Web games by Noritada Shimizu
asm.js x emscripten: The foundation of the next level Web gamesasm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web games
Noritada Shimizu2K views
第2回品川Redmine勉強会(日本語全文検索) by Masanori Machii
第2回品川Redmine勉強会(日本語全文検索)第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)
Masanori Machii7.9K views
LastaFluteでKotlinをはじめよう by Shinsuke Sugaya
LastaFluteでKotlinをはじめようLastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめよう
Shinsuke Sugaya2.1K views
Cookpad Summer Intern 2015 - Programming Paradigm by Minero Aoki
Cookpad Summer Intern 2015 - Programming ParadigmCookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming Paradigm
Minero Aoki71.7K views
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方 by linzhixing
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing3.6K views
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~ by decode2016
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
decode201657 views
これからの「言語」の話をしよう ―― 未来を生きるためのツール by Nobuhisa Koizumi
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツール
Nobuhisa Koizumi1.3K views
中3女子が狂える本当に気持ちのいい constexpr by Genya Murakami
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
Genya Murakami30.5K views
知って得するC# by Shota Baba
知って得するC#知って得するC#
知って得するC#
Shota Baba9.7K views
Tech Fielders 2009/9/18 LT by terurou
Tech Fielders 2009/9/18 LTTech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LT
terurou1.5K views
J qmobiはjqueryから軽量化しているか by Hisashi Aruji
J qmobiはjqueryから軽量化しているかJ qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているか
Hisashi Aruji1.1K views
PHP AST 徹底解説 by do_aki
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
do_aki26.4K views
From Java To Clojure by Kent Ohashi
From Java To ClojureFrom Java To Clojure
From Java To Clojure
Kent Ohashi2.2K views
textsearch_jaで全文検索 by Akio Ishida
textsearch_jaで全文検索textsearch_jaで全文検索
textsearch_jaで全文検索
Akio Ishida3.2K views

More from Hideyuki Tanaka

ESPM2 2018 - Automatic Generation of High-Order Finite-Difference Code with T... by
ESPM2 2018 - Automatic Generation of High-Order Finite-Difference Code with T...ESPM2 2018 - Automatic Generation of High-Order Finite-Difference Code with T...
ESPM2 2018 - Automatic Generation of High-Order Finite-Difference Code with T...Hideyuki Tanaka
1.9K views29 slides
Xpath in-lens by
Xpath in-lensXpath in-lens
Xpath in-lensHideyuki Tanaka
5.7K views22 slides
手書きスライド by
手書きスライド手書きスライド
手書きスライドHideyuki Tanaka
4.2K views15 slides
Monad tutorial by
Monad tutorialMonad tutorial
Monad tutorialHideyuki Tanaka
13.3K views79 slides
Yesod勉強会 by
Yesod勉強会Yesod勉強会
Yesod勉強会Hideyuki Tanaka
9.5K views66 slides
C++コミュニティーの中心でC++をDISる by
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるHideyuki Tanaka
12.4K views66 slides

More from Hideyuki Tanaka(8)

ESPM2 2018 - Automatic Generation of High-Order Finite-Difference Code with T... by Hideyuki Tanaka
ESPM2 2018 - Automatic Generation of High-Order Finite-Difference Code with T...ESPM2 2018 - Automatic Generation of High-Order Finite-Difference Code with T...
ESPM2 2018 - Automatic Generation of High-Order Finite-Difference Code with T...
Hideyuki Tanaka1.9K views
C++コミュニティーの中心でC++をDISる by Hideyuki Tanaka
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
Hideyuki Tanaka12.4K views
関数プログラミング入門 by Hideyuki Tanaka
関数プログラミング入門関数プログラミング入門
関数プログラミング入門
Hideyuki Tanaka21.8K views

Recently uploaded

Web3 Career_クレデン資料 .pdf by
Web3 Career_クレデン資料 .pdfWeb3 Career_クレデン資料 .pdf
Web3 Career_クレデン資料 .pdfnanamatsuo
14 views9 slides
さくらのひやおろし2023 by
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023法林浩之
91 views58 slides
JJUG CCC.pptx by
JJUG CCC.pptxJJUG CCC.pptx
JJUG CCC.pptxKanta Sasaki
6 views14 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! 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
13 views38 slides
01Booster Studio ご紹介資料 by
01Booster Studio ご紹介資料01Booster Studio ご紹介資料
01Booster Studio ご紹介資料ssusere7a2172
300 views19 slides
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development siteAtomu Hidaka
71 views41 slides

Recently uploaded(11)

Web3 Career_クレデン資料 .pdf by nanamatsuo
Web3 Career_クレデン資料 .pdfWeb3 Career_クレデン資料 .pdf
Web3 Career_クレデン資料 .pdf
nanamatsuo14 views
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023
法林浩之91 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by 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 発表資料)
01Booster Studio ご紹介資料 by ssusere7a2172
01Booster Studio ご紹介資料01Booster Studio ご紹介資料
01Booster Studio ご紹介資料
ssusere7a2172300 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka71 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.41 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4172 views
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by Knowledge & Experience
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda175 views

IdrisでWebアプリを書く