SlideShare a Scribd company logo
1 of 18
Download to read offline
JSX公開から1年を迎えて	
DeNA Co., Ltd.
Kazuho Oku
自己紹介	
n 名前:奥 一穂
n 経歴:	
n モバイルウェブブラウザ「Palmscape」「Xiino」の開発
(1996-2003)	
n IPA未踏スーパークリエータ (2004)	
n サイボウズ・ラボ (2005-2010)	
n Japanize, Pathtraq, Q4M, mycached, …
n ディー・エヌ・エー (2010-)
n R&Dに従事
Aug 24 2013 JSX - 公開から1年を迎えて 2
altJS とは?	
n JavaScript に変換して実行される言語	
n 背景: JavaScript の普及
n ウェブブラウザで動くのは JavaScript だけ	
n ベンダー間の競争の結果、実行速度が高速に	
n ウェブブラウザ以外でも JavaScript を使うように	
n サーバサイド: node.js
n クライアントサイド: Titanium, PhoneGap, ngCore, …
n 適用範囲が拡大した結果、不満が噴出…
Aug 24 2013 JSX - 公開から1年を迎えて 3
JSX とは?	
n DeNA でを中心に開発している altJS	
n JavaScript がベース	
n 静的型付け	
n クラスベースのオブジェクト指向	
n 最適化コンパイラ	
Aug 24 2013 JSX - 公開から1年を迎えて 4
Aug 24 2013 JSX - 公開から1年を迎えて 5
altJS の種類	
n CoffeeScript	
n JavaScript と1:1対応する文法	
n TypeScript, Dart, …
n JavaScript の上位互換	
n JSX
n JavaScript の下位互換 + 独自拡張	
n Java Web Toolkit, Haxe, Emscripten, …
n 既存のプログラミング言語を JavaScript に変換	
Aug 24 2013 JSX - 公開から1年を迎えて 6
DeNA における JavaScript	
n JavaScript による大規模開発	
n 専用内製ライブラリ/フレームワークの使用が多い	
n ngCore, ExGame, Post ExGame, …
n スマホ上での実行が多い + 一部サーバサイド
n 数万行に及ぶコードベース	
n 頻繁なコード変更
n ゲーム内イベント等	
Aug 24 2013 JSX - 公開から1年を迎えて 7
直面した問題	
n 生産性と品質担保	
n 実行するまでバグが見つからない	
n GUI やネットワークまわりはテストが難しい	
n 実行速度が遅い	
n ロード時間と使用メモリ量の増大	
n スマートフォンは PC より貧弱	
Aug 24 2013 JSX - 公開から1年を迎えて 8
解決策 = JSX の開発	
n JSX: 静的型付け必須なJavaScriptの方言
n 課題:生産性と品質担保	
→ コンパイル時にエラー検知	
n 課題:実行速度	
→ JavaScriptへの変換時に最適化コンパイル	
n 型情報を利用したインライン展開や定数畳み込みが可能	
n 課題:ロード時間と使用メモリ量	
→ 強力なminify
n 静的型付け必須だから、プロパティの安全確実なリネームが可能	
n トレードオフ	
n JavaScript の動的な性質を利用したライブラリと接続が煩雑に	
Aug 24 2013 JSX - 公開から1年を迎えて 9
なぜ静的型付けを必須としたのか	
n 型付けが Optional なら JavaScript 上位互
換なのに	
n 例: CoffeeScript, Google Closure Compiler
n オプショナルな型付けの問題	
n 型付けがないコードが混在すると、コンパイル時のエ
ラーチェックが困難に	
n 安全な最適化やminifyができない	
Aug 24 2013 JSX - 公開から1年を迎えて 10
JSX の文法	
JSX = JavaScript の式と文	
+ 型アノテーション	
+ 型推論	
+ クラスベースのオブジェクト指向	
n 単一クラス継承、複数インターフェイス継承	
n メソッドのオーバーロード可能 	
	
Aug 24 2013 JSX - 公開から1年を迎えて 11
JSX のコード例	
class Point {	
var x : number, y : number;	
function constructor(x : number, y : number) {	
this.x = x;	
this.y = y;	
}	
}	
class Matrix {	
var a11 : number, a12 : number, a13 : number	
var a21 : number, a22 : number, a23 : number;	
function constructor(a11 : number, a12 : number, (省略)) {	
this.a11 = a11;	
(省略)	
}	
function transform(pt : Point) : Point {	
return new Point(	
this.a11 * pt.x + this.a12 * pt.y + this.a13,	
this.a21 * pt.x + this.a22 * pt.y + this.a23);	
}	
}	
Aug 24 2013 JSX - 公開から1年を迎えて 12
最適化コンパイル例 – アフィン変換	
n JSX のソースコード:
new Matrix(1, 0, 0, 0, 2, 0).transform(new Point(x, y))	
n 生成される JavaScript:
{x: x + 0 * y, y: 0 * x + 2 * y}	
	
Note: 0 * n cannot be folded since it is equiv. to: isNaN(n) ? NaN : 0
Aug 24 2013 JSX - 公開から1年を迎えて 13
Performance Benchmarks	
n Box2D	
n convert box2d.js to JSX and measure the fps	
n iOS 5.0 – 12% speed-up
n Android 2.3 – 29% speed-up
n  AOBench
n  from http://spheresofa.net/blog/?p=757	
Aug 24 2013 JSX - 公開から1年を迎えて
0 0.5 1 1.5 2
JavaScript
JSX
TypeScript
Haxe
処理速度	
iOS
Android
14
Minify	
Aug 24 2013 JSX - 公開から1年を迎えて
n Minify is safe and more effective thanks
to the type information	
0" 0.2" 0.4" 0.6" 0.8" 1" 1.2"
Total"
ngCore"HTML5"
JSX"
v8bench.jsx"
byte%size%of%generated%code(ra2o)%
Impact%of%Minifica2on
jsx"AArelease"
jsx"AArelease"|"uglifyjs"
jsx"AArelease"|"esmangle"
jsx"AArelease"AAminify"
15
リリース後の進化	
n セルフホスティング	
n JSX のコンパイラを JSX へ移植	
n 型推論の強化	
n var a = [1,2,3].map((x) -> 3 * x)
n a の型は number[]
n オプティマイザの強化	
n メソッドの関数への変換、末尾再帰のループ展開等	
n JavaScript との互換性の強化	
n export 属性、バインディングのインライン定義	
Aug 24 2013 JSX - 公開から1年を迎えて 16
JSX の今後	
n バグフィックス、最適化の改善	
n 社内外のプロジェクトのサポート	
n node.js 対応の強化	
n W3C 策定のブラウザAPIは、ほぼすべて対応済	
n TypedArray とか WebGL も	
n async 属性	
n 通常の関数同様に書かれたコードを、非同期ベース
の JavaScript にコンパイル	
Aug 24 2013 JSX - 公開から1年を迎えて 17
まとめ	
n JSX は得失のはっきりした altJS
n メリット:
n 強力なエラー検出機能	
n 実行速度とサイズの両面における最適化	
n デメリット:
n JavaScript で書かれた既存との接続が煩雑	
n 既存ライブラリに依存しない新規プロジェク
トにオススメ	
n 例: HTML 5 Canvas を使うゲームを大量に作ったり
とか…	
Aug 24 2013 JSX - 公開から1年を迎えて 18

More Related Content

What's hot

Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGUehara Junji
 
Node.js で Web アプリ開発
Node.js で Web アプリ開発Node.js で Web アプリ開発
Node.js で Web アプリ開発Tatsumi Naganuma
 
C# でブロックチェーン実装
C# でブロックチェーン実装C# でブロックチェーン実装
C# でブロックチェーン実装Yuto Takei
 
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechconYosaku Toyama
 
NSHashTableでDelegatesパターン
NSHashTableでDelegatesパターンNSHashTableでDelegatesパターン
NSHashTableでDelegatesパターンMasaki Oshikawa
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテストYoichiro Sakurai
 
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovyJava開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovyYasuharu Nakano
 
20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料Daisuke Ando
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiTomohiro Kumagai
 

What's hot (11)

Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
 
Node.js で Web アプリ開発
Node.js で Web アプリ開発Node.js で Web アプリ開発
Node.js で Web アプリ開発
 
C# でブロックチェーン実装
C# でブロックチェーン実装C# でブロックチェーン実装
C# でブロックチェーン実装
 
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
 
NSHashTableでDelegatesパターン
NSHashTableでDelegatesパターンNSHashTableでDelegatesパターン
NSHashTableでDelegatesパターン
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
 
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovyJava開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
 
20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料
 
JSX
JSXJSX
JSX
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
 
Elasticsearch 5.2とJava Clientで戯れる #elasticsearchjp
Elasticsearch 5.2とJava Clientで戯れる #elasticsearchjpElasticsearch 5.2とJava Clientで戯れる #elasticsearchjp
Elasticsearch 5.2とJava Clientで戯れる #elasticsearchjp
 

Viewers also liked

Persuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناع
Persuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناعPersuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناع
Persuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناعHani Al-Menaii
 
HTTP/2の課題と将来
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来Kazuho Oku
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向Kazuho Oku
 
H2O - making HTTP better
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP betterKazuho Oku
 
The Art of Reconstruction
The Art of ReconstructionThe Art of Reconstruction
The Art of ReconstructionJoss Winn
 
Understanding Open Source
Understanding Open SourceUnderstanding Open Source
Understanding Open SourceKinshuk Sunil
 
A Long Walk to Water: Lesson4 unit2
A Long Walk to Water: Lesson4 unit2A Long Walk to Water: Lesson4 unit2
A Long Walk to Water: Lesson4 unit2Terri Weiss
 
Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...
Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...
Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...Hendrik Drachsler
 
Introduction Presentation for LinkedUp kickoff meeting
Introduction Presentation for LinkedUp kickoff meetingIntroduction Presentation for LinkedUp kickoff meeting
Introduction Presentation for LinkedUp kickoff meetingHendrik Drachsler
 
From research student to academic: thinking about and preparing for academic ...
From research student to academic: thinking about and preparing for academic ...From research student to academic: thinking about and preparing for academic ...
From research student to academic: thinking about and preparing for academic ...Joss Winn
 
Stato dell’arte IFLA sul prestito digitale
Stato dell’arte IFLA sul prestito digitale Stato dell’arte IFLA sul prestito digitale
Stato dell’arte IFLA sul prestito digitale stefanogambari
 
Unit 1.2 Introduction to Programming
Unit 1.2 Introduction to Programming Unit 1.2 Introduction to Programming
Unit 1.2 Introduction to Programming Intan Jameel
 
UNIT 2.2 Web Programming HTML Basics - Benchmark standard
UNIT 2.2 Web Programming HTML Basics - Benchmark standardUNIT 2.2 Web Programming HTML Basics - Benchmark standard
UNIT 2.2 Web Programming HTML Basics - Benchmark standardIntan Jameel
 
#WhatsTheDifference?
#WhatsTheDifference?#WhatsTheDifference?
#WhatsTheDifference?Martin Rehm
 
Our school in winter
Our school in winterOur school in winter
Our school in winterGavranica
 
Lyddie: Unit3 lesson5
Lyddie: Unit3 lesson5Lyddie: Unit3 lesson5
Lyddie: Unit3 lesson5Terri Weiss
 
Designit in Barcelona: an introduction to Generative Design
Designit in Barcelona: an introduction to Generative DesignDesignit in Barcelona: an introduction to Generative Design
Designit in Barcelona: an introduction to Generative DesignGuy Haviv
 

Viewers also liked (20)

Persuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناع
Persuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناعPersuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناع
Persuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناع
 
HTTP/2の課題と将来
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向
 
H2O - making HTTP better
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP better
 
The Art of Reconstruction
The Art of ReconstructionThe Art of Reconstruction
The Art of Reconstruction
 
Understanding Open Source
Understanding Open SourceUnderstanding Open Source
Understanding Open Source
 
A Long Walk to Water: Lesson4 unit2
A Long Walk to Water: Lesson4 unit2A Long Walk to Water: Lesson4 unit2
A Long Walk to Water: Lesson4 unit2
 
Online presentatie MvdV
Online presentatie MvdVOnline presentatie MvdV
Online presentatie MvdV
 
Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...
Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...
Standardisierte Medizinische Übergaben - Wie lernen, lehren und implementiere...
 
Introduction Presentation for LinkedUp kickoff meeting
Introduction Presentation for LinkedUp kickoff meetingIntroduction Presentation for LinkedUp kickoff meeting
Introduction Presentation for LinkedUp kickoff meeting
 
From research student to academic: thinking about and preparing for academic ...
From research student to academic: thinking about and preparing for academic ...From research student to academic: thinking about and preparing for academic ...
From research student to academic: thinking about and preparing for academic ...
 
Stato dell’arte IFLA sul prestito digitale
Stato dell’arte IFLA sul prestito digitale Stato dell’arte IFLA sul prestito digitale
Stato dell’arte IFLA sul prestito digitale
 
Unit 1.2 Introduction to Programming
Unit 1.2 Introduction to Programming Unit 1.2 Introduction to Programming
Unit 1.2 Introduction to Programming
 
Selce 2013
Selce 2013Selce 2013
Selce 2013
 
UNIT 2.2 Web Programming HTML Basics - Benchmark standard
UNIT 2.2 Web Programming HTML Basics - Benchmark standardUNIT 2.2 Web Programming HTML Basics - Benchmark standard
UNIT 2.2 Web Programming HTML Basics - Benchmark standard
 
Android workshop
Android workshopAndroid workshop
Android workshop
 
#WhatsTheDifference?
#WhatsTheDifference?#WhatsTheDifference?
#WhatsTheDifference?
 
Our school in winter
Our school in winterOur school in winter
Our school in winter
 
Lyddie: Unit3 lesson5
Lyddie: Unit3 lesson5Lyddie: Unit3 lesson5
Lyddie: Unit3 lesson5
 
Designit in Barcelona: an introduction to Generative Design
Designit in Barcelona: an introduction to Generative DesignDesignit in Barcelona: an introduction to Generative Design
Designit in Barcelona: an introduction to Generative Design
 

More from Kazuho Oku

HTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときKazuho Oku
 
QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7Kazuho Oku
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話Kazuho Oku
 
Reorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondReorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondKazuho Oku
 
Recent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyRecent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyKazuho Oku
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsivenessKazuho Oku
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsivenessKazuho Oku
 
Developing the fastest HTTP/2 server
Developing the fastest HTTP/2 serverDeveloping the fastest HTTP/2 server
Developing the fastest HTTP/2 serverKazuho Oku
 
TLS & LURK @ IETF 95
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95Kazuho Oku
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先Kazuho Oku
 
Cache aware-server-push in H2O version 1.5
Cache aware-server-push in H2O version 1.5Cache aware-server-push in H2O version 1.5
Cache aware-server-push in H2O version 1.5Kazuho Oku
 
HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計Kazuho Oku
 
H2O - making the Web faster
H2O - making the Web fasterH2O - making the Web faster
H2O - making the Web fasterKazuho Oku
 
H2O - the optimized HTTP server
H2O - the optimized HTTP serverH2O - the optimized HTTP server
H2O - the optimized HTTP serverKazuho Oku
 
JSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons LearnedJSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons LearnedKazuho Oku
 
Using the Power to Prove
Using the Power to ProveUsing the Power to Prove
Using the Power to ProveKazuho Oku
 
JSX - developing a statically-typed programming language for the Web
JSX - developing a statically-typed programming language for the WebJSX - developing a statically-typed programming language for the Web
JSX - developing a statically-typed programming language for the WebKazuho Oku
 
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜Kazuho Oku
 
JSX Design Overview (日本語)
JSX Design Overview (日本語)JSX Design Overview (日本語)
JSX Design Overview (日本語)Kazuho Oku
 

More from Kazuho Oku (20)

HTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないとき
 
QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
 
Reorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondReorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and Beyond
 
Recent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyRecent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using ruby
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsiveness
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsiveness
 
Developing the fastest HTTP/2 server
Developing the fastest HTTP/2 serverDeveloping the fastest HTTP/2 server
Developing the fastest HTTP/2 server
 
TLS & LURK @ IETF 95
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
 
Cache aware-server-push in H2O version 1.5
Cache aware-server-push in H2O version 1.5Cache aware-server-push in H2O version 1.5
Cache aware-server-push in H2O version 1.5
 
HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計
 
H2O - making the Web faster
H2O - making the Web fasterH2O - making the Web faster
H2O - making the Web faster
 
H2O - the optimized HTTP server
H2O - the optimized HTTP serverH2O - the optimized HTTP server
H2O - the optimized HTTP server
 
JSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons LearnedJSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons Learned
 
Using the Power to Prove
Using the Power to ProveUsing the Power to Prove
Using the Power to Prove
 
JSX - developing a statically-typed programming language for the Web
JSX - developing a statically-typed programming language for the WebJSX - developing a statically-typed programming language for the Web
JSX - developing a statically-typed programming language for the Web
 
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
 
JSX Optimizer
JSX OptimizerJSX Optimizer
JSX Optimizer
 
JSX Design Overview (日本語)
JSX Design Overview (日本語)JSX Design Overview (日本語)
JSX Design Overview (日本語)
 

Recently uploaded

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
論文紹介: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...Toru Tamaki
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
論文紹介: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 UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: 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 Gamesatsushi061452
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 

Recently uploaded (12)

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: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...
 
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
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: 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
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 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
 

JSX - 公開から1年を迎えて