SlideShare a Scribd company logo
1 of 65
Server Side Kotlin
Kotlin Webフレームワークの現状
第3回 かわいいKotlin勉強会 #jkug
@yy_yank
自己紹介
こいつです
・vimmerなのに
サクラエディタアイコン
・小物SIer
・JavaとKotlinが好き
ヤンク(@yy_yank)
・関西Kotlin勉強会参加(2014/09)
・Kotlinアドベントカレンダー2014とか書いた
・逆引きKotlinというサイトを作った
・twitterでKotlinで検索して巡回(毎日)
僕のKotlin活動
What is Server Side?
・Client Side <-> Server Side
・Http (Get,Post,Put,Delete...)
・MVC 2.0
・Component
・REST
・Servlet
・Apache Stru…
What is Server Side?
Web Frameworkの話
をしよう
・KotlinのWebフレームワーク
・JavaのWebフレームワークとかも考える
・まとめ
Agenda
KotlinのWebフレーム
ワーク、いくつ知って
ますか?
・Kara
・wasabi
・Node.kt
・Kool
・vertx-kotlin
Kotlin製のWebフレームワーク
・Kara
・wasabi
・Node.kt
・Kool
・vertx-kotlin
Kotlin製のWebフレームワーク
・Kara
・wasabi
・Node.kt 6 months ago
・Kool 3 years ago
・vertx-kotlin 3 years ago
Kotlin製のWebフレームワーク
誰も保守しない
オレオレフレーム
ワークやない
か!!!
・GitHubでKotlinを検索すると、
3 years agoとか2 years agoが多い
・我々は今を生きている
Kotlin製のWebフレームワーク
・Kara
・wasabi
・Node.kt
実質はこの3つ
・Kara
・wasabi
・Node.kt
Kotlin製のWebフレームワーク①
・名前通りNode.jsの模倣的なもの
・ベースはNetty
・Node.ktは割とActiveな方だが
大体wasabiで同等の機能が網羅されている
・独自にベーシック認証や暗号化復号化機能を
持っているぐらい
Node.ktは正直微妙
何が微妙かってソース
が汚い
Node.ktは正直微妙
fun listen(port: Int? = null) {
var aPort = port;
if (aPort == null) {
aPort = get("port") as Int
}
if (aPort == null) {
throw IllegalStateException("hogehoge")
Node.ktは正直微妙
fun listen(port: Int? = null) {
var aPort = port;
if (aPort == null) {
aPort = get("port") as Int
}
if (aPort == null) {
throw IllegalStateException("hogehoge")
デフォルト値
がnull
2回目のnull
チェック
変数使いまわ
して代入
しぶい
せめてこうとか…
fun listen(port: Int?) {
var aPort = port ?: get("port")?.toInt()
if (aPort == null)
throw IllegalStateException("hogehoge")
}
・Kara
・wasabi
・Node.kt
Kotlin製のWebフレームワーク②
・JetBrainsのHadi Haririのプロジェクト
・Http FrameWork(らしい)
・ベースはNetty
・Interceptorが優秀
・ModelやViewは含まれず、かなり軽量
・WebSocketにも対応したっぽい?
wasabi
・Nettyのアップ/ダウンストリームに合わせ
てライフ・サイクルが形成されている
PreRequest
PreExecusion
PostExecusion
PostRequest
Error
wasabi
server.get("/", {
val log = Log()
log.info("URI requested is${request.uri}")
next()
},{ response.send("Hello World!") }
)
wasabi
server.get("/", {
val log = Log()
log.info("URI requested is${request.uri}")
next()
},{ response.send("Hello World!") }
)
wasabi
ルーティング
server.get("/", {
val log = Log()
log.info("URI requested is${request.uri}")
next()
},{ response.send("Hello World!") }
)
wasabi
Requestの
処理
server.get("/", {
val log = Log()
log.info("URI requested is${request.uri}")
next()
},{ response.send("Hello World!") }
)
wasabi
Response
の処理
・逆引きKotlinをwasabiで作ってみました(宣
伝)
Html + bootstrap + wasabiという感じ
https://github.com/yyYank/kotlin-rev-
solution-wasabi
wasabi
・Kara
・wasabi
・Node.kt
Kotlin製のWebフレームワーク③
・TinyMissionというアメリカのミネソタ州の
Webサービスとモバイル系の会社が開発開始
・(M)VCフレームワーク
・全てが.ktになる(htmlもcssもロジックも)
・Jetty + kootstrap(bootstrapのKotlin版) +
Kotlin製Htmlテンプレートエンジン
Kara
( ˘⊖˘) 。o(ん、待てよ
…?)
JetBrains
JetBrains
JetBrains
JetBrains
JetBrains
TinyMission
_人人人人人人人人人人_
> ほとんどJetBrains <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
‘’Currently, it is actively developed by JetBrains,
the company behind Kotlin.‘’
Kara
・現在Karaを引っ張っているのは
JetBrains
( ˘⊖˘) 。o(あんしん)
Get("/test")
class Test() : Request({
TextResult("This is a test action, yo")
})
Get("/crash")
class Crash() : Request({
error("This resource crashes")
})
Karaのルーティング
Get("/test")
class Test() : Request({
TextResult("This is a test action, yo")
})
Get("/crash")
class Crash() : Request({
error("This resource crashes")
})
Karaのルーティング
ルーティング
Get("/test")
class Test() : Request({
TextResult("This is a test action, yo")
})
Get("/crash")
class Crash() : Request({
error("This resource crashes")
})
Karaのルーティング
Response
の処理
Get("/test")
class Test() : Request({
TextResult("This is a test action, yo")
})
Get("/crash")
class Crash() : Request({
error("This resource crashes")
})
Karaのルーティング
Viewのクラス
table {
setClass(fields)
tr {
td {
setClass(cLabel)
labelFor("title")
}
td {
submitButton("Submit")
}
}
}
}
KaraのView
table {
setClass(fields)
tr {
td {
setClass(cLabel)
labelFor("title")
}
td {
submitButton("Submit")
}
}
}
}
KaraのViewのメリット
・タグの対応が簡単
・もちろん静的型付け
→書き間違いなし!!
table {
setClass(fields)
tr {
td {
setClass(cLabel)
labelFor("title")
}
td {
submitButton("Submit")
}
}
}
}
KaraのViewのデメリット
デザイナーさんとの分
業とかだとちょっと覚
えてもらう必要がある
…。
table(fields) {
td {
padding = box(6.px, 3.px)
}
td.c(cLabel) {
textAlign = TextAlign.right
}
td(cLabel, top) {
verticalAlign = VerticalAlign.top
}
KaraのCSS
なぜ、Kotlinライブラ
リとして、vert.xや
node.jsライクにやろ
うとするのか
・ルーティング処理などの関数の引数として関
数渡しをするようなシグネチャが作りやすい
->必然的にnode.jsのような書き方になる
関数リテラルと相性が良い
inline fun HtmlBodyTag.table(contents:
TABLE.() -> Unit) = contentTag(TABLE(this),
contents)
大体こういう感じ
inline fun HtmlBodyTag.table(contents:
TABLE.() -> Unit) = contentTag(TABLE(this),
contents)
大体こういう感じ
・ライブラリ実装
TABLE.() -> Unit
・使う側
table {
}
大体こういう感じ
その他も考える
・Spring Boot
・JAX-RS(JSR339)
・MVC 1.0(JSR371)
JavaのWebフレームワーク
・Spring Boot
・JAX-RS(JSR339)
・MVC 1.0(JSR371)
JavaのWebフレームワーク①
・やってみた
【Kotlin】KotlinでもJava EE 8 の
MVC1.0(Ozark)は動くよ
・結構辛さあった
MVC1.0(JSR371)
・Spring Boot
・JAX-RS(JSR339)
・MVC 1.0(JSR371)
JavaのWebフレームワーク②
・うらがみ(backpaper0)さんがやってた
KotlinでJAX-RS + おまけ
・あんまりJavaと変わらなかった
JAX-RS(JSR339)
・Spring Boot
・JAX-RS(JSR339)
・MVC 1.0(JSR371)
JavaのWebフレームワーク③
・しおしお(@_siosio_)さんがやってた
KotlinでSpring Bootしてみた
・Hadi Haririもやってた
Creating a RESTful Web Service with Spring
Boot
・地味に辛さあるけどまあまあ
Spring Boot
・Java EEはJavaで使ったほうが良い
・使うとしたらSpring Bootかも知れない
JavaのWebFW with Kotlin?
・Karaの低レイヤな部分が参考になりやすいの
でそれをベースに作ってみるのも良いかも
-> HttpServletを継承してその上にApplication
クラスを上乗せするような形
情報の受け渡しはApplicationContextがやって
いる様子
自分でつくるから安心!負担は増える!
オレオレWebフレームワーク
・一番手厚くて今後見込みありそうなのはKara
・wasabiもすでに完成形なので使えるけどフル
スタックというよりは軽量なもの
・Spring Bootもまあまあアリ
・更なるKotlinらしさを求めるならプルリクか
自作だ
まとめ
Server Side Kotlin

More Related Content

Similar to Server Side Kotlin

React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LTHeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LTYuji Kubota
 
Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4Koji SHIMADA
 
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会Yukihiro Kitazawa
 
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷JavaTomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷JavaNorito Agetsuma
 
歌舞伎座.tech 1 LT - ScalikeJDBC Async & Skinny Framework #kbkz_tech
歌舞伎座.tech 1 LT - ScalikeJDBC Async & Skinny Framework #kbkz_tech歌舞伎座.tech 1 LT - ScalikeJDBC Async & Skinny Framework #kbkz_tech
歌舞伎座.tech 1 LT - ScalikeJDBC Async & Skinny Framework #kbkz_techKazuhiro Sera
 
Async Enhancement
Async EnhancementAsync Enhancement
Async Enhancementkamiyam .
 
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)Uehara Junji
 
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fallこれからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fallなおき きしだ
 
R5 3 type annotation
R5 3 type annotationR5 3 type annotation
R5 3 type annotationEIICHI KIMURA
 
Railsのフロントエンド開発を考える
Railsのフロントエンド開発を考えるRailsのフロントエンド開発を考える
Railsのフロントエンド開発を考えるHirata Tomoko
 
NoSQL and JavaScript 2013-02-09
NoSQL and JavaScript 2013-02-09NoSQL and JavaScript 2013-02-09
NoSQL and JavaScript 2013-02-09WakandaJA
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷JavaToshiaki Maki
 
Functional Testing in #YAPCASIA
Functional Testing in #YAPCASIAFunctional Testing in #YAPCASIA
Functional Testing in #YAPCASIAkyon mm
 
サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)
サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)
サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)Ken Muryoi
 
Javaと小道具
Javaと小道具Javaと小道具
Javaと小道具Sho Ito
 
はじめよう Backbone.js
はじめよう Backbone.jsはじめよう Backbone.js
はじめよう Backbone.jsHiroki Toyokawa
 

Similar to Server Side Kotlin (20)

React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LTHeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LT
 
Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4
 
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会
 
Haikara
HaikaraHaikara
Haikara
 
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷JavaTomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
 
歌舞伎座.tech 1 LT - ScalikeJDBC Async & Skinny Framework #kbkz_tech
歌舞伎座.tech 1 LT - ScalikeJDBC Async & Skinny Framework #kbkz_tech歌舞伎座.tech 1 LT - ScalikeJDBC Async & Skinny Framework #kbkz_tech
歌舞伎座.tech 1 LT - ScalikeJDBC Async & Skinny Framework #kbkz_tech
 
Rx java x retrofit
Rx java x retrofitRx java x retrofit
Rx java x retrofit
 
Async Enhancement
Async EnhancementAsync Enhancement
Async Enhancement
 
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
 
Leiningen超速入門
Leiningen超速入門Leiningen超速入門
Leiningen超速入門
 
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fallこれからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
 
R5 3 type annotation
R5 3 type annotationR5 3 type annotation
R5 3 type annotation
 
Railsのフロントエンド開発を考える
Railsのフロントエンド開発を考えるRailsのフロントエンド開発を考える
Railsのフロントエンド開発を考える
 
NoSQL and JavaScript 2013-02-09
NoSQL and JavaScript 2013-02-09NoSQL and JavaScript 2013-02-09
NoSQL and JavaScript 2013-02-09
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
 
Functional Testing in #YAPCASIA
Functional Testing in #YAPCASIAFunctional Testing in #YAPCASIA
Functional Testing in #YAPCASIA
 
サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)
サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)
サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)
 
Javaと小道具
Javaと小道具Javaと小道具
Javaと小道具
 
はじめよう Backbone.js
はじめよう Backbone.jsはじめよう Backbone.js
はじめよう Backbone.js
 

More from yy yank

Javaプログラマのための頑張らないGo入門
Javaプログラマのための頑張らないGo入門Javaプログラマのための頑張らないGo入門
Javaプログラマのための頑張らないGo入門yy yank
 
VMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VMVMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VMyy yank
 
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係yy yank
 
Kotlinソースコード探訪
Kotlinソースコード探訪Kotlinソースコード探訪
Kotlinソースコード探訪yy yank
 
Javaで最強のfizz buzz
Javaで最強のfizz buzzJavaで最強のfizz buzz
Javaで最強のfizz buzzyy yank
 
KuromojiをKotlinで動かす
KuromojiをKotlinで動かすKuromojiをKotlinで動かす
KuromojiをKotlinで動かすyy yank
 
Doma2 with Kotlin
Doma2 with KotlinDoma2 with Kotlin
Doma2 with Kotlinyy yank
 
絶対にぬるぽを出さない
絶対にぬるぽを出さない絶対にぬるぽを出さない
絶対にぬるぽを出さないyy yank
 
Kotlinこんなん出ましたけど
Kotlinこんなん出ましたけどKotlinこんなん出ましたけど
Kotlinこんなん出ましたけどyy yank
 
Kotlinあるある言いたい
Kotlinあるある言いたいKotlinあるある言いたい
Kotlinあるある言いたいyy yank
 
【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーションyy yank
 
Kotlinメジャーver リリースを前に
Kotlinメジャーver リリースを前にKotlinメジャーver リリースを前に
Kotlinメジャーver リリースを前にyy yank
 

More from yy yank (12)

Javaプログラマのための頑張らないGo入門
Javaプログラマのための頑張らないGo入門Javaプログラマのための頑張らないGo入門
Javaプログラマのための頑張らないGo入門
 
VMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VMVMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VM
 
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係
 
Kotlinソースコード探訪
Kotlinソースコード探訪Kotlinソースコード探訪
Kotlinソースコード探訪
 
Javaで最強のfizz buzz
Javaで最強のfizz buzzJavaで最強のfizz buzz
Javaで最強のfizz buzz
 
KuromojiをKotlinで動かす
KuromojiをKotlinで動かすKuromojiをKotlinで動かす
KuromojiをKotlinで動かす
 
Doma2 with Kotlin
Doma2 with KotlinDoma2 with Kotlin
Doma2 with Kotlin
 
絶対にぬるぽを出さない
絶対にぬるぽを出さない絶対にぬるぽを出さない
絶対にぬるぽを出さない
 
Kotlinこんなん出ましたけど
Kotlinこんなん出ましたけどKotlinこんなん出ましたけど
Kotlinこんなん出ましたけど
 
Kotlinあるある言いたい
Kotlinあるある言いたいKotlinあるある言いたい
Kotlinあるある言いたい
 
【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション
 
Kotlinメジャーver リリースを前に
Kotlinメジャーver リリースを前にKotlinメジャーver リリースを前に
Kotlinメジャーver リリースを前に
 

Recently uploaded

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 

Recently uploaded (9)

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 

Server Side Kotlin