SlideShare una empresa de Scribd logo
1 de 73
Descargar para leer sin conexión
めんどくさくない Scala
#kwkni_scala
@seratch
Kazuhiro Sera

1
自己紹介的な
・Kazuhiro Sera @seratch
・最近は 2 歳児の子育てが忙しい
・JUnit Helper という Eclipse プラグイン
・Skinny Framework、ScalikeJDBC
・Ruby では Gistub とか Ruby Kaigi 2013 LT とか
・Scala Conference in Japan 2013 スタッフ
・Akasaka.scala #akskscala を運営(していた)

2
まず、あなたと Scala の出会いを
思い出してみてください。

3
引用しますね...
Team Geek ―Googleのギークたちは
いかにしてチームを作るのか
[単行本(ソフトカバー)]
Brian W. Fitzpatrick (著), Ben CollinsSussman (著), 角 征典 (翻訳)
出版社: オライリージャパン (2013/7/20)
ISBN-10: 4873116309
ISBN-13: 978–4873116303
発売日: 2013/7/20

4
“初心者にとってソフトウェアとは
どのようなものだろうか?”
“ソフトウェアはユーザーのことを
歓迎しているだろうか?”

Team Geek 「6.1.1 第一印象に注目する」より引用

5
“使ってもらいやすくなっているだろうか?”
“熟練者にとって使いやすそうで
実用的なものになっているだろうか?”

Team Geek 「6.1.1 第一印象に注目する」より引用

6
“すぐに生産性の向上を
アピールできるだろうか?”
“それとも学習曲線が急で
何度も涙が出るようなものだろうか?”

Team Geek 「6.1.1 第一印象に注目する」より引用

7
“もっと具体的に言うと、
最初の 30 秒間のユーザーエクスペリエンス
はどのようなものだろうか?”
“ここでは感情的な答えが聞きたい。
1 分後にどのように感じるだろうか?”
Team Geek 「6.1.1 第一印象に注目する」より引用

8
ここで質問。

9
初めて Scala でコードを書いてみたとき
どうだったか覚えていますか?
とりあえず Hello World を print した後
次に何をやったっけ?何を調べたっけ?

10
フレームワーク、ライブラリ、ツール・・
どれもすんなりと扱えて、すごく便利で
「これは

るwww」と思いましたか?

それとも Try & Error で 頑張りましたか?

11
自分がまだ不勉強なせいなのか
それとも ”それ” が不親切だからなのか
初心者には区別がつかない。
入口は、極力ハマりポイントをなくして
すぐに試せる親切な手順が書いてあって
“ゆとり仕様” くらいでちょうどいい。
12
そこを補完する Scala 逆引きレシピは
すばらしいですね!今すぐ買いましょう!!
Scala逆引きレシピ (PROGRAMMER’S RECiPE)
[単行本(ソフトカバー)]
竹添 直樹 (著), 島本 多可子 (著)
出版社: 翔泳社 (2012/7/3)
言語 日本語
ISBN-10: 4798125415
ISBN-13: 978–4798125411
発売日: 2012/7/3

13
で、ここからが本題。

14
“「Scala は

る!」を根付かせたい”

Scala は書いていて楽しいし、一番好きな言語だけど
いくつか面倒なことや残念なことがあります。
そのめんどくさいことを減らすための提案と
それを意識して私がつくっているものを
少し紹介したいと思います。

15
一般論としてのめんどくささ

16
めんどくさいのはダメ
・めんどくさいものを頑張って使うのは有害である
・本題に集中できず、他のミスを誘発しやすい
・奥が深い症候群に陥りやすい
・今まで投資した時間を正当化するために固執しがち
・たいがいそのノウハウのポータビリティは低い
・そもそも楽しくない(人生は短い)

 結果、確実に生産性が低下する(自明)
17
Scala でめんどくさいこと?

18
すぐに思いつくこと...
・コンパイルが遅すぎる
・Scala、sbt バージョン非互換
・言語仕様の学習が大変そう
・スタイルが統一されなさそう
・そもそも JVM な時点でちょっと(ry

19
Compile! Compile! Compile!

20
コンパイルが遅すぎる
・良いマシンを...(震え声)
・sbt の ~;compile とか ~;test でごまかす
・コンパイルが遅くなる言語機能を避ける...
・何でもかんでもコンパイルしない(個人の意見です)
「何でもかんでもコンパイルしない」について Skinny
Framework のデモをして説明します

21
デモ:Yeoman って知ってますか?
Node.js で動く Rails generator 的なもの。
Windows でも Node と Ruby 入れれば使えるはず。
brew install nodejs
npm install -g yo
npm install -g generator-skinny
mkdir hello-skinny
cd hello-skinny
yo skinny
./skinny run

22
もう重たくない Scala 開発
・Controller、Model は Jetty 起動なしでテスト可能
・DB 連携は実行せずに正しさを確認できないので、お決
まりな CRUD は(ある程度)動的でもよい
・View の調整が圧倒的に多いので、いちいちコンパイル
せず実行時エラーで確認(& Controller のテストを CI)
・CoffeeScript なども開発 mode は実行時変換(予定)
・production だけ Scalate precompile も可能
・サンプルはこちらにあります
23
24
Scala、sbt の非互換
・今使っているものは足かせにならないか?
・ライブラリ、sbt プラグインは厳選した方がよい
・ワーストケースで移行が容易な実装・テストにしておく
・ ほとんどいじらない共通部分はあえて Java で書いてメ
ンテコストを抑える(Scala 側でラップは必要)
・フリーライダーで乗り切るのは多分無理(GitHub 時代
の言語、自ら貢献する姿勢で)

25
26
言語仕様の学習が大変そう
・最低限必要なレベルまではそれほど大変ではないはず
・コップ本の前にもっとライトな本を流してもよい
・”Scala for the impatient” あたりがオススメ
・scalatutorials.com で手を動かすとか
・困ったら scalajp の ML で質問(怖くない)

27
TMTOWTDI?
“There’s more than one way to do it”

28
スタイルが統一されなさそう
・書き方は基本的に Scala Style Guide に従う
・scalariform は問答無用で適用する
・汎用コーディング規約は存在しないので、チームの中で
の共通認識をすりあわせていく
・理解度の一番低い人に合わせすぎない
・何かに感染している人を周りは生暖かく見守る
・歩み寄る 、ストレスを溜めない

29
30
そもそも JVM な時点で(ry
・LL だったらもっと簡単なのに... と思われたら負け
・sbt 初回起動... 巨大な依存ライブラリは極力減らす
・cs や g8 は好きだけど sbt だけで済まないのは微妙...
・ライブラリを作るなら REPL で簡単に試せることは重視
する(import はなるべく少なく)
・今日から Scala を始めたとしてどう思うか?

31
あなたの “Scala ではこれが普通” は
ただ慣れてしまっただけかもしれない...
一度、見直してみると...

32
ここからは宣伝。

33
RDB とのやり取り

34
 No More SQL? Really?
・「SQL ならもう分かってるけど、このライブラリでどう
書けばいいか分からん... ドキュメントにないな... サンプル
探すか... ない... ソース読むか...」(時間の無駄)
・Anorm のコンセプト “You don’t need another DSL
to access relational databases.” 自体には共感する
・RDB 使ってて SQL と手を切れるなんて幻想ですよね

35
ScalikeJDBC
・SQL 書きたいときは sql”select name from
companies where id = ${id}” のように書く
・SQLInterpolation では必ずバインド変数になるので
SQL インジェクション脆弱性がないと断言できる
・1.6 から select.from(Company as c).where.eq(c.id,
123) のように SQL から乖離しない DSL をサポート
・QueryDSL は IDE での補完にも強い(Dynamic +
macros に時代が追いついてないけど)
36
SQLInterpolation
val ids = Seq(1, 2, 3)
case class Member(id: Long, name: Option[String])
DB readOnly { implicit s =>
sql”select id, name from members where id in (${ids})”
.map { rs => Member(rs.long(“id”), rs.stringOpt(“name”)) }
.list.apply()
}
object Member extends SQLSyntaxSupport[Member]
val m = Member.syntax(“m”)
DB readOnly { implicit s =>
sql”select ${m.result.*} from ${Member as m} where ${m.id} in (${ids})”
.map { rs => Member(rs.long(“id”), rs.stringOpt(“name”)) }
.list.apply()
}

37
QueryDSL
val ids = Seq(1, 2, 3)
case class Member(id: Long, name: Option[String])
object Member extends SQLSyntaxSupport[Member]
val m = Member.syntax(“m”)
DB readOnly { implicit s =>
withSQL { select.from(Members as m).where.in(m.id, ids) }
.map { rs => Member(
id = rs.long(m.resultName.id),
name = rs.stringOpt(m.resultName.name)) }
.list.apply()
}

38
「あれ?わかりやすい!」
「めんどくさくなさそう!」
(心の声)

39
いろんな SQL を...
// Squeryl
join(Student, Club.leftOuter)((s, c) =>
where(c.map(_.id) isNull)
select(s)
on(s.clubId === c.map(_.id)))

select * from students s
left join clubs c on s.club_id = s.id
where c.id is null

// Slick
for {
(s, c) <- Student leftJoin Club.map(_.??) on (_.clubId === _._1) if c._1.isNull
} yield (s, c)
// ScalikeJDBC
val (s, c) = (Student.syntax(“s”), Club.syntax(“c”))
select.from(Student as s).leftJoin(Club as c).on(s.clubId, c.id).where.isNull(c.id)

40
 one-to-x API
・one-to-x API が実は結構便利
・sql”...”.one(..).toMany(...).list.apply() のようにして
複数のテーブルを join してもきれいに取ってこれる
・one-to-one は無制限だが one-to-manies は現状だと
最大 5 個のテーブルまで結合可能という制限がある(実装
依存なので必要なら要望ください)

41
one-to-x 例
val pg: Option[Programmer] = withSQL {
select.from(Programmer as p)
.leftJoin(Company as c).on(p.companyId, c.id)
.leftJoin(ProgrammerSkill as ps).on(ps.programmerId, p.id)
.leftJoin(Skill as s).on(sqls.eq(ps.skillId, s.id).and.isNull(s.deletedAt))
.where.eq(p.id, id).and.isNull(p.deletedAt)
}.one(Programmer(p, c))
.toMany(Skill.opt(s))
.map { (pg, skills) => pg.copy(skills = skills) }
.single.apply()
// one(...).toOne(...)
// one(...).toManies(...)

42
Debugging & Testing
・ソースコードを自動生成する sbt プラグインもある
(sbt “scalikejdbc-gen [table-name]”)
・ActiveRecord のようなクエリログ出力、ログ出力だけ
でなく Fluentd など外部に送ったりもできる
・テスト重視、AutoRollback と Fixture を ScalaTest、
spec2 に提供している

43
クエリログ
・遅いクエリの内容だけでなく、そのクエリがコードのど
こで発行されたかまで分かる
[debug] s.StatementExecutor$$anon$1 - SQL execution completed
[Executed SQL]
select * from users where email = 'guillaume@sample.com'; (2 ms)
[Stack Trace]
...
models.User$.findByEmail(User.scala:26)
controllers.Projects$$anonfun$index$1$$anonfun$apply$1$$anonfun$apply$2.apply(Projects.scala:20)
controllers.Projects$$anonfun$index$1$$anonfun$apply$1$$anonfun$apply$2.apply(Projects.scala:19)
controllers.Secured$$anonfun$IsAuthenticated$3$$anonfun$apply$3.apply(Application.scala:88)
controllers.Secured$$anonfun$IsAuthenticated$3$$anonfun$apply$3.apply(Application.scala:88)
play.api.mvc.Action$$anon$1.apply(Action.scala:170)

44
ScalaTest 例
・fixture パッケージの Spec であれば AutoRollback
trait を mixin して fixture と auto rollback が可能
class MemberSpec extends fixture.FlatSpec with AutoRollback {
// fixture loading before each test
override def fixture(implicit session: DBSession) {
sql”insert into members values (1, ‘Alice’)”.update.apply()
}
it should “work” in { implicit session =>
// do something and will be rolled back
}
}

45
specs2 例
・unit は以下の通り、acceptance スタイルもサポート
(ただし case class xxx() というちょっと変態的な...)
object MemberSpec extends Specification {
trait AutoRollbackWithFixture extends AutoRollback {
// fixture loading before each test
override def fixture(implicit session: DBSession) {
sql”insert into members values (1, ‘Alice’)”.update.apply()
}
}
“it should work” in new AutoRollbackWithFixture {
// do something and will be rolled back
}

46
 Play2 サポート
・Play2 との連携も標準でサポートしている
・migration は evolution ではなく flyway 併用を推奨
・model 層は完全に Play2 非依存にできる(FakeApp 不
要、共通化してバッチや他アプリに流用も可能)
・Typesafe Activator で Play2 サンプルを試せる

47
 ドキュメント
・公式ドキュメントは英語の Wiki ですが、私のブログに
かなり日本語情報があります
・ Kindle Direct Publishing で Cookbook(日本語)発
売中(GitHub でも読めるので 200 円は投げ銭です)
・Google Group の ML あります
・日本語 ML もあります

48
Go Reactive!
・non-blocking な ScalikeJDBC-Async もあるよ
・@mauricio の postgresql/mysql-async
・直接使うと結構めんどうなのを頑張って吸収している
・トランザクションも map/for 式 で表現可能
・JDBC ほど枯れてないので、ガチで使うなら人柱覚悟で

49
スター乞食

気に入ったら今すぐに
http://git.io/scalikejdbc へ行って
star を押してください!!!

50
普通の Web アプリ開発

51
Play2 で管理画面?
・正直、いろいろ無理あるよね...
・Servlet 捨てなくていいとき多いよね...
・Play2 は C10K 問題を克服するための次世代の Web フ
レームワークを目指してわざわざリライトされたことを思
い出そう(Play の ML で宣言)
・個人的には Play2 は JSON API サーバなどが最も適して
いると思っている

52
なら Scalatra で

・Sinatra よりは機能が豊富とはいえ、同じジレンマ
・色々やり方決めたり、他のものと組み合わせたり・・
・管理画面みたいなお決まりのものなら、色々考えたり、
決めごとつくったり、検証したりせずに済ませたい
・でもフレームワークによる制限があると困る

53
Go Skinny!
・”Scala on Rails” を目指している Web フレームワーク
(成り立ちはどちらかというと Padrino 的)
・Scalatra + ScalikeJDBC を土台とし、それらをスムーズ
に連携させる glue code でできている
・ View Template の Precompile を否定、コンパイル待
ちを減らしてサクサク開発できることを重視
・テスタビリティを重視(session の mock もサポート)

54
 Rails 的 Controller
・Controller は ScalatraFilter の拡張、Rails のアレがだ
いたいある(まだないものもこれから随時対応)
・Validation は Command ではなく独自
・Controller にルーティング設定を埋め込まず、メソッド
定義するだけにするスタイルを推奨
・SkinnyResource という Rails の ActiveResource 相当
もあって ROA なアプリならこれが楽、Rails scaffold 互換
で XML、JSON レスポンスの URL まで自動生成
55
Controller & Routing
class MembersController extends SkinnyController {
def index = {
set(“members”, Member.findAll()) // set in the request scope
render(“/members/index”) // expects /views/members/index.html.ssp
}
}
val members = new MembersController with Routes {
get(“/members/?”)(index).as(‘index) // ‘index: action name
}
class ScalatraBootstrap extends SkinnyLifeCycle {
override def initSkinnyApp(ctx: ServletContext) {
ctx.mount(members, “/*”)
}
}

56
View
// WEB-INF/views/members/index.html.ssp
<%@val members: Seq[Member] %>
<ul>
#for (member <- members)
<li>${member.name}</li>
#end
</ul>
// WEB-INF/views/members/index.html.scaml
-@val members: Seq[Member]
%ul
- for (member <- members)
%li #{member.name}

57
before/afterAction
class MembersController extends SkinnyController {
protectFromForgery()
beforeAction(only = Seq(‘index)) {
set(“members”, Member.findAll())
}
def index = {
render(“/members/index”)
}
}
val members = new MembersController with Routes {
get(“/members/?”)(index).as(‘index)
}

58
Form/Validation
class MembersController extends SkinnyController {
def createForm = validation(
paramKey(“name”) is required,
paramKey(“companyId”) is required & numeric)
def create = {
if (createForm.validate()) {
val id = Member.createWithPermittedAttributes(params.permit(
“name” -> ParamType.String, “companyId” -> ParamType.Long))
flash += “notice” -> “Created!”
redirect(s”/members/${id}”)
} else {
render(“/members/new”)
}
}
}
59
「あれ?わかりやすい!」
「めんどくさくなさそう!」
(心の声)

60
SkinnyResource
object MembersController extends SkinnyResource {
protectFromForgery()
override def model = Member
override def resourcesName = “members”
override def resourceName = “member”
override def createForm = validation(paramKey(“name”) is required)
override def createFormStrongParameters = Seq(“name” -> ParamType.String)
override def updateForm = validation(paramKey(“name”) is required)
override def updateFormStrongParameters = Seq(“name” -> ParamType.String)
}
class ScalatraBootstrap extends SkinnyLifeCycle {
override def initSkinnyApp(ctx: ServletContext) {
ctx.mount(MembersController, “/*”)
}
}
61
SkinnyResource URIs
GET /members
GET /members/
GET /members.xml
GET /members.json
GET /members/{id}
GET /members/{id}.xml
GET /members/{id}.json
GET /members/new
POST /members
POST /members/
GET /members/{id}/edit
POST /members/{id}
PUT /members/{id}
PATCH /members/{id}
DELETE /members/{id}

62
SkinnyResource Views
・SkinnyResource の場合は、以下のような命名規約で
ssp/scaml/jade などのファイルを置く

src/main/webapp/WEB-INF
layouts/default.ssp
views/members/index.html.ssp
views/members/new.html.ssp
views/members/edit.html.ssp
views/members/show.html.ssp

63
「クソ便利すぎワロタwww」
「めんどくさくなさそう!」
(心の声)

64
65
 Skinny ORM
・ActiveRecord 的な簡便さを追求
・単体でも利用可能(Play2 でも使える)
・裏側は ScalikeJDBC、その機能もフルで使える
・var なしで entity を定義できる
・Association はなるべく join でとってくる思想
・Eager loading、ネストした Association は未対応
・FactoryGirl(DB テストデータ作成サポート)
・DBSeeds でお手軽 migration、ちゃんとしたのも予定
66
Model
case class Member(id: Long, name: Option[String])
object Member extends SkinnyCRUDMapper[Member] {
def extract(rs: WrappedResultSet, m: ResultName[Member]) = new Member(
id = rs.long(m.id), name = rs.stringOpt(m.name)
)
}
Member.createWithAttribute(‘name -> “Alice”)
Member.findAllBy(sqls”name is not null”)
Member.where(‘name -> “Alice”).limit(10).offset(0)
val member = Member.findById(123)
member.map(_.copy(name = “Bob”).save())
Member.updateById(123).withAttributes(‘name -> “Bob”)
Member.deleteById(234)

67
FactoryGirl
・factory_pal は instance をつくるだけ、こっちは DB に
データ投入もしてくれる(本来の #create)
// src/test/resources/factories.conf
member {
name=”Anonymous”
}
// XXXSpec.scala
val anon: Member = FactoryGirl(Member).create()
val chris: Member = FactoryGirl(Member).create(‘name -> “Chris”)
val factory = FactoryGirl(Member).withValues(
‘createdAt -> new DateTime(2011, 6, 22, 13, 46))
val eric: Member = factory.create(‘name -> “Eric”)
68
Associations
case class Member(id: Long, name: Option[String],
companyId: Option[Long], company: Option[Company] = None,
skills: Seq[Skill] = Nil)
object Member extends SkinnyCRUDMapper[Member] {
belongsTo[Company](Company, (m, c) => m.copy(company = c)).byDefault
val skills = hasManyThough[Skill](MemberSkill, Skill, (m, ss) => m.copy(skills ss))
def extract(rs: WrappedResultSet, m: ResultName[Member]) = new Member(
rs.long(m.id), rs.stringOpt(m.name), rs.longOpt(m.companyId)
)
}
Member.findById(123) // with company
Member.joins(Member.skills).findById(123) // with company, skills

69
 Skinny の今後
・C10K クリアしないとまずいなら Typesafe Platform で
・Scala に Rails 必要?Rails と同じくらい楽に実装でき
て、かつ型があれば相当嬉しいはずと思っている
・認証 API デザインとか手伝ってくれる人募集中
・私が仕事に投入したら API を fix して 1.0 にする予定
(おそらく遅くとも今年度中)
・Better Java としての Scala にはまだまだ可能性ある

70
スター乞食

気に入ったら今すぐに
http://git.io/skinny へ行って
star を押してください!!!

71
宣伝のまとめ
・ScalikeJDBC は現在 1.6.10、業務利用実績多数で十分
に stable、production ready です
・ScalikeJDBC-Async は現在 0.2.8、まだ α version で本
番実績は少ない、人柱上等な人が使ってください
・Skinny Framework は 0.9.4、おおまかなアーキテクチ
ャはほぼ固まったが、内部 API 改善と機能追加の真っ最
中、2013 4Q までには 1.0 を出したいと思ってます

72
ぼっちはイヤだ!!!
一緒に

る Scala をつくりましょう!

73

Más contenido relacionado

La actualidad más candente

What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015Mikiya Okuno
 
Androidで使えるJSON-Javaライブラリ
Androidで使えるJSON-JavaライブラリAndroidで使えるJSON-Javaライブラリ
Androidで使えるJSON-JavaライブラリYukiya Nakagawa
 
Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編takeuchi-tk
 
Springでdao 20070413
Springでdao 20070413Springでdao 20070413
Springでdao 20070413Funato Takashi
 
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)Koichi Sakata
 
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜JustSystems Corporation
 
5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめ5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめKohei Kadowaki
 
Scala EE 7 Essentials
Scala EE 7 EssentialsScala EE 7 Essentials
Scala EE 7 Essentialstnoda
 
backbone.jsの使用例 その1
backbone.jsの使用例 その1backbone.jsの使用例 その1
backbone.jsの使用例 その1Makoto Haruyama
 
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅Takuya Kawabe
 
SQL+NoSQL!? それならMySQL Clusterでしょ。
SQL+NoSQL!? それならMySQL Clusterでしょ。SQL+NoSQL!? それならMySQL Clusterでしょ。
SQL+NoSQL!? それならMySQL Clusterでしょ。yoyamasaki
 
20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)Daisuke Yamazaki
 
Kawaz的jQuery入門
Kawaz的jQuery入門Kawaz的jQuery入門
Kawaz的jQuery入門Kohki Miki
 
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
覚醒JavaScript  -ES6で作るIsomophicアプリケーション-覚醒JavaScript  -ES6で作るIsomophicアプリケーション-
覚醒JavaScript -ES6で作るIsomophicアプリケーション-Oonishi Keitarou
 
Scc2014 :jQueryの仕組みを完璧に理解する
Scc2014 :jQueryの仕組みを完璧に理解するScc2014 :jQueryの仕組みを完璧に理解する
Scc2014 :jQueryの仕組みを完璧に理解するJun Futakawa
 
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)Shinya Sugiyama
 

La actualidad más candente (20)

What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
 
Androidで使えるJSON-Javaライブラリ
Androidで使えるJSON-JavaライブラリAndroidで使えるJSON-Javaライブラリ
Androidで使えるJSON-Javaライブラリ
 
Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編
 
Springでdao 20070413
Springでdao 20070413Springでdao 20070413
Springでdao 20070413
 
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
 
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
 
5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめ5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめ
 
Backbone.js入門
Backbone.js入門Backbone.js入門
Backbone.js入門
 
Scala EE 7 Essentials
Scala EE 7 EssentialsScala EE 7 Essentials
Scala EE 7 Essentials
 
backbone.jsの使用例 その1
backbone.jsの使用例 その1backbone.jsの使用例 その1
backbone.jsの使用例 その1
 
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
 
Groovyコンファレンス
GroovyコンファレンスGroovyコンファレンス
Groovyコンファレンス
 
SQL+NoSQL!? それならMySQL Clusterでしょ。
SQL+NoSQL!? それならMySQL Clusterでしょ。SQL+NoSQL!? それならMySQL Clusterでしょ。
SQL+NoSQL!? それならMySQL Clusterでしょ。
 
20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)
 
Kawaz的jQuery入門
Kawaz的jQuery入門Kawaz的jQuery入門
Kawaz的jQuery入門
 
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
覚醒JavaScript  -ES6で作るIsomophicアプリケーション-覚醒JavaScript  -ES6で作るIsomophicアプリケーション-
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
 
2時間で学ぶjQuery
2時間で学ぶjQuery2時間で学ぶjQuery
2時間で学ぶjQuery
 
Scc2014 :jQueryの仕組みを完璧に理解する
Scc2014 :jQueryの仕組みを完璧に理解するScc2014 :jQueryの仕組みを完璧に理解する
Scc2014 :jQueryの仕組みを完璧に理解する
 
Rpscala18th
Rpscala18thRpscala18th
Rpscala18th
 
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
 

Destacado

15分でざっくり分かるScala入門
15分でざっくり分かるScala入門15分でざっくり分かるScala入門
15分でざっくり分かるScala入門SatoYu1ro
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発papamitra
 
Scala初心者がPlay/ScalaでロックなWebアプリを作ったお話
Scala初心者がPlay/ScalaでロックなWebアプリを作ったお話Scala初心者がPlay/ScalaでロックなWebアプリを作ったお話
Scala初心者がPlay/ScalaでロックなWebアプリを作ったお話omi end
 
Scalaで学ぶ関数型言語超入門
Scalaで学ぶ関数型言語超入門Scalaで学ぶ関数型言語超入門
Scalaで学ぶ関数型言語超入門yujiro_t
 
Scala@SmartNews_20150221
Scala@SmartNews_20150221Scala@SmartNews_20150221
Scala@SmartNews_20150221Shigekazu Takei
 
Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話Keiji Muraishi
 
Pythonistaデビュー #PyNyumon 2016/5/31
Pythonistaデビュー #PyNyumon 2016/5/31Pythonistaデビュー #PyNyumon 2016/5/31
Pythonistaデビュー #PyNyumon 2016/5/31Shinichi Nakagawa
 
サイボウズの開発を支えるKAIZEN文化
サイボウズの開発を支えるKAIZEN文化サイボウズの開発を支えるKAIZEN文化
サイボウズの開発を支えるKAIZEN文化Teppei Sato
 
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014  「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」Developers Summit 2014  「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」Yoshimura Soichiro
 
OSS についてあれこれ
OSS についてあれこれOSS についてあれこれ
OSS についてあれこれTakuto Wada
 
Play frameworkをエヴァンジェる
Play frameworkをエヴァンジェるPlay frameworkをエヴァンジェる
Play frameworkをエヴァンジェるke-m kamekoopa
 
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミングOuka Yuka
 
Jbossとtomcatの性能を比べてみた
Jbossとtomcatの性能を比べてみたJbossとtomcatの性能を比べてみた
Jbossとtomcatの性能を比べてみたYuki Obara
 
言語アップデート -Scala編-
言語アップデート -Scala編-言語アップデート -Scala編-
言語アップデート -Scala編-Kota Mizushima
 
Wrapping a C++ library with Cython
Wrapping a C++ library with CythonWrapping a C++ library with Cython
Wrapping a C++ library with Cythonfuzzysphere
 
[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!	[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化! ichigotake .
 
2016 Android × Scala @ScalaMatsuri2016
2016 Android × Scala @ScalaMatsuri20162016 Android × Scala @ScalaMatsuri2016
2016 Android × Scala @ScalaMatsuri2016Yasuyuki Sugitani
 
No te comas la coma
No te comas la comaNo te comas la coma
No te comas la comaPablo Rico
 
ストレスフリーなスーパーガールになる
ストレスフリーなスーパーガールになるストレスフリーなスーパーガールになる
ストレスフリーなスーパーガールになるNaho Inuyama
 

Destacado (20)

15分でざっくり分かるScala入門
15分でざっくり分かるScala入門15分でざっくり分かるScala入門
15分でざっくり分かるScala入門
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発
 
Scala初心者がPlay/ScalaでロックなWebアプリを作ったお話
Scala初心者がPlay/ScalaでロックなWebアプリを作ったお話Scala初心者がPlay/ScalaでロックなWebアプリを作ったお話
Scala初心者がPlay/ScalaでロックなWebアプリを作ったお話
 
Scalaで学ぶ関数型言語超入門
Scalaで学ぶ関数型言語超入門Scalaで学ぶ関数型言語超入門
Scalaで学ぶ関数型言語超入門
 
Scala@SmartNews_20150221
Scala@SmartNews_20150221Scala@SmartNews_20150221
Scala@SmartNews_20150221
 
Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話
 
Pythonistaデビュー #PyNyumon 2016/5/31
Pythonistaデビュー #PyNyumon 2016/5/31Pythonistaデビュー #PyNyumon 2016/5/31
Pythonistaデビュー #PyNyumon 2016/5/31
 
サイボウズの開発を支えるKAIZEN文化
サイボウズの開発を支えるKAIZEN文化サイボウズの開発を支えるKAIZEN文化
サイボウズの開発を支えるKAIZEN文化
 
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014  「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」Developers Summit 2014  「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
 
OSS についてあれこれ
OSS についてあれこれOSS についてあれこれ
OSS についてあれこれ
 
Play frameworkをエヴァンジェる
Play frameworkをエヴァンジェるPlay frameworkをエヴァンジェる
Play frameworkをエヴァンジェる
 
Scala導入あれこれ
Scala導入あれこれScala導入あれこれ
Scala導入あれこれ
 
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
 
Jbossとtomcatの性能を比べてみた
Jbossとtomcatの性能を比べてみたJbossとtomcatの性能を比べてみた
Jbossとtomcatの性能を比べてみた
 
言語アップデート -Scala編-
言語アップデート -Scala編-言語アップデート -Scala編-
言語アップデート -Scala編-
 
Wrapping a C++ library with Cython
Wrapping a C++ library with CythonWrapping a C++ library with Cython
Wrapping a C++ library with Cython
 
[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!	[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!
 
2016 Android × Scala @ScalaMatsuri2016
2016 Android × Scala @ScalaMatsuri20162016 Android × Scala @ScalaMatsuri2016
2016 Android × Scala @ScalaMatsuri2016
 
No te comas la coma
No te comas la comaNo te comas la coma
No te comas la coma
 
ストレスフリーなスーパーガールになる
ストレスフリーなスーパーガールになるストレスフリーなスーパーガールになる
ストレスフリーなスーパーガールになる
 

Similar a めんどくさくない Scala #kwkni_scala

Reladomo in Scala #scala_ks
Reladomo in Scala #scala_ks Reladomo in Scala #scala_ks
Reladomo in Scala #scala_ks Hiroshi Ito
 
Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1Kosuke Kida
 
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]Ra Zon
 
Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...Shotaro Suzuki
 
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]Ra Zon
 
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...Shotaro Suzuki
 
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2Nishida Kansuke
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようAkira Shimosako
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"Kentaro Yoshida
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesKazushi Kamegawa
 
Play2 scalaを2年やって学んだこと
Play2 scalaを2年やって学んだことPlay2 scalaを2年やって学んだこと
Play2 scalaを2年やって学んだことdcubeio
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略takezoe
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 
Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術Naoki Aoyama
 

Similar a めんどくさくない Scala #kwkni_scala (20)

Reladomo in Scala #scala_ks
Reladomo in Scala #scala_ks Reladomo in Scala #scala_ks
Reladomo in Scala #scala_ks
 
Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
 
Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 
Rpscala2011 0601
Rpscala2011 0601Rpscala2011 0601
Rpscala2011 0601
 
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
 
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
 
Chugokudb18_2
Chugokudb18_2Chugokudb18_2
Chugokudb18_2
 
Trait in scala
Trait in scalaTrait in scala
Trait in scala
 
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure Pipelines
 
Play2 scalaを2年やって学んだこと
Play2 scalaを2年やって学んだことPlay2 scalaを2年やって学んだこと
Play2 scalaを2年やって学んだこと
 
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話 Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術
 

Más de Kazuhiro Sera

All I learned while working on a Scala OSS project for over six years #ScalaM...
All I learned while working on a Scala OSS project for over six years #ScalaM...All I learned while working on a Scala OSS project for over six years #ScalaM...
All I learned while working on a Scala OSS project for over six years #ScalaM...Kazuhiro Sera
 
Contributing to Scala OSS from East Asia #ScalaMatsuri
 Contributing to Scala OSS from East Asia #ScalaMatsuri Contributing to Scala OSS from East Asia #ScalaMatsuri
Contributing to Scala OSS from East Asia #ScalaMatsuriKazuhiro Sera
 
Skinny Meetup Tokyo 2 日本語スライド
Skinny Meetup Tokyo 2 日本語スライドSkinny Meetup Tokyo 2 日本語スライド
Skinny Meetup Tokyo 2 日本語スライドKazuhiro Sera
 
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarconSeasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarconKazuhiro Sera
 
Future on Servlet #scala_ks
Future on Servlet #scala_ksFuture on Servlet #scala_ks
Future on Servlet #scala_ksKazuhiro Sera
 
Servlet と Future の関わり方 #scala_ks
Servlet と Future の関わり方 #scala_ksServlet と Future の関わり方 #scala_ks
Servlet と Future の関わり方 #scala_ksKazuhiro Sera
 
マイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devマイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devKazuhiro Sera
 
Scala が支える医療系ウェブサービス #jissenscala
Scala が支える医療系ウェブサービス #jissenscalaScala が支える医療系ウェブサービス #jissenscala
Scala が支える医療系ウェブサービス #jissenscalaKazuhiro Sera
 
Scala on Rails #rakutentech
Scala on Rails #rakutentechScala on Rails #rakutentech
Scala on Rails #rakutentechKazuhiro Sera
 
Solid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaSolid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaKazuhiro Sera
 
Beginning Scala with Skinny Framework #jjug_ccc
Beginning Scala with Skinny Framework #jjug_cccBeginning Scala with Skinny Framework #jjug_ccc
Beginning Scala with Skinny Framework #jjug_cccKazuhiro Sera
 
Skinny Framework 1.0.0
Skinny Framework 1.0.0Skinny Framework 1.0.0
Skinny Framework 1.0.0Kazuhiro Sera
 
Skinny Framework Progress Situation
Skinny Framework Progress SituationSkinny Framework Progress Situation
Skinny Framework Progress SituationKazuhiro Sera
 
Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scalaSkinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scalaKazuhiro Sera
 
テストの運用について #m3dev
テストの運用について #m3devテストの運用について #m3dev
テストの運用について #m3devKazuhiro Sera
 
歌舞伎座.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
 
Kabukiza.tech 1 LT - ScalikeJDBC-Async & Skinny Framework #kbkz_tech
Kabukiza.tech 1 LT - ScalikeJDBC-Async & Skinny Framework #kbkz_techKabukiza.tech 1 LT - ScalikeJDBC-Async & Skinny Framework #kbkz_tech
Kabukiza.tech 1 LT - ScalikeJDBC-Async & Skinny Framework #kbkz_techKazuhiro Sera
 
テストを書くのが嫌いな君へ #m3dev
テストを書くのが嫌いな君へ #m3devテストを書くのが嫌いな君へ #m3dev
テストを書くのが嫌いな君へ #m3devKazuhiro Sera
 
Skinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsSkinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsKazuhiro Sera
 

Más de Kazuhiro Sera (20)

All I learned while working on a Scala OSS project for over six years #ScalaM...
All I learned while working on a Scala OSS project for over six years #ScalaM...All I learned while working on a Scala OSS project for over six years #ScalaM...
All I learned while working on a Scala OSS project for over six years #ScalaM...
 
Contributing to Scala OSS from East Asia #ScalaMatsuri
 Contributing to Scala OSS from East Asia #ScalaMatsuri Contributing to Scala OSS from East Asia #ScalaMatsuri
Contributing to Scala OSS from East Asia #ScalaMatsuri
 
Skinny Meetup Tokyo 2 日本語スライド
Skinny Meetup Tokyo 2 日本語スライドSkinny Meetup Tokyo 2 日本語スライド
Skinny Meetup Tokyo 2 日本語スライド
 
Skinny 2 Update
Skinny 2 UpdateSkinny 2 Update
Skinny 2 Update
 
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarconSeasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
 
Future on Servlet #scala_ks
Future on Servlet #scala_ksFuture on Servlet #scala_ks
Future on Servlet #scala_ks
 
Servlet と Future の関わり方 #scala_ks
Servlet と Future の関わり方 #scala_ksServlet と Future の関わり方 #scala_ks
Servlet と Future の関わり方 #scala_ks
 
マイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devマイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3dev
 
Scala が支える医療系ウェブサービス #jissenscala
Scala が支える医療系ウェブサービス #jissenscalaScala が支える医療系ウェブサービス #jissenscala
Scala が支える医療系ウェブサービス #jissenscala
 
Scala on Rails #rakutentech
Scala on Rails #rakutentechScala on Rails #rakutentech
Scala on Rails #rakutentech
 
Solid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaSolid And Sustainable Development in Scala
Solid And Sustainable Development in Scala
 
Beginning Scala with Skinny Framework #jjug_ccc
Beginning Scala with Skinny Framework #jjug_cccBeginning Scala with Skinny Framework #jjug_ccc
Beginning Scala with Skinny Framework #jjug_ccc
 
Skinny Framework 1.0.0
Skinny Framework 1.0.0Skinny Framework 1.0.0
Skinny Framework 1.0.0
 
Skinny Framework Progress Situation
Skinny Framework Progress SituationSkinny Framework Progress Situation
Skinny Framework Progress Situation
 
Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scalaSkinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
 
テストの運用について #m3dev
テストの運用について #m3devテストの運用について #m3dev
テストの運用について #m3dev
 
歌舞伎座.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
 
Kabukiza.tech 1 LT - ScalikeJDBC-Async & Skinny Framework #kbkz_tech
Kabukiza.tech 1 LT - ScalikeJDBC-Async & Skinny Framework #kbkz_techKabukiza.tech 1 LT - ScalikeJDBC-Async & Skinny Framework #kbkz_tech
Kabukiza.tech 1 LT - ScalikeJDBC-Async & Skinny Framework #kbkz_tech
 
テストを書くのが嫌いな君へ #m3dev
テストを書くのが嫌いな君へ #m3devテストを書くのが嫌いな君へ #m3dev
テストを書くのが嫌いな君へ #m3dev
 
Skinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsSkinny Controllers, Skinny Models
Skinny Controllers, Skinny Models
 

Último

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

Último (9)

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

めんどくさくない Scala #kwkni_scala