SlideShare a Scribd company logo
JSX 速さの秘密
〜高速なJavaScriptを書く方法〜
DeNA Co., Ltd.
Kazuho Oku

1
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
JSXをご存知ですか?
 Javaっぽいプログラミング言語です
 JavaScriptにコンパイルされます
 JavaScriptよりJSXで書いたほうが高速に動作します

JSX 速さの秘密 - 高速なJavaScriptを書く方法

2
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
Q. 高速な JavaScript を書く方法を教えてください

JSX 速さの秘密 - 高速なJavaScriptを書く方法

3
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
A. JSX を使いましょう

JSX 速さの秘密 - 高速なJavaScriptを書く方法

4
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
…

JSX 速さの秘密 - 高速なJavaScriptを書く方法

5
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
これだけでは芸がないので、JSX が行っている様々な
JavaScript 最適化技法を紹介します。

JSX 速さの秘密 - 高速なJavaScriptを書く方法

6
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
※これから説明することは、JSXを使って
いれば気にする必要のないことです
(自動で最適化されますから)

JSX 速さの秘密 - 高速なJavaScriptを書く方法

7
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
目次
 高速なJavaScriptを書くための3原則
 更なる高速化のために 〜 JSXの最適化コンパイラの仕
事

JSX 速さの秘密 - 高速なJavaScriptを書く方法

8
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
高速なJavaScriptを書くための3原則

JSX 速さの秘密 - 高速なJavaScriptを書く方法

9
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
高速なJavaScriptを書くための3原則
 オブジェクトを避ける
⁃ 例: arguments を使わない
 Hidden Classを意識したコードを書く

⁃ Inline Cache / 配列の要素の型
 組み込み関数が速いとは限らない
⁃ 遅くなることがある
•

例: Function#apply, Array#forEach

JSX 速さの秘密 - 高速なJavaScriptを書く方法

10
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
オブジェクト生成を最小限に
 オブジェクト生成を避ける理由
⁃ メモリ確保に時間がかかる
⁃ GCの原因になる

 オブジェクトが生成されるパターン
⁃ new, {...}, [...]
⁃ arguments の使用
•

使った瞬間にオブジェクトが生成されます

 オブジェクトが生成されそうで、されないパターン
⁃ ”abc”.foo()
•

foo 内での this は string? (ES5以降)

JSX 速さの秘密 - 高速なJavaScriptを書く方法

11
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
Unboxing in JSX
 オブジェクトへのアクセスを、複数のローカル変数への
アクセスに変換する最適化
 最適化前:
var pt = new Point(x, y);
…

 最適化後:
var pt$x = x;
var pt$y = y;
…

 注意点:
⁃ オブジェクトを return したり他クラスのオブジェ
クトのプロパティにセットしている場合は使えない
JSX 速さの秘密 - 高速なJavaScriptを書く方法

12
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
プロパティアクセスを最小限に
 プロパティアクセス=オブジェクトの要素へのアクセス
⁃ 変数の要素へのアクセスなので、変数へのアクセス
より遅い

 最適化前:
Foo.bar
foo.func()

 最適化後:
Foo$bar

// プロパティアクセス → 変数アクセス

Foo$func(foo) // メソッド呼出 → 関数呼出
// (呼び出されるメソッドも変換)

JSX 速さの秘密 - 高速なJavaScriptを書く方法

13
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
newの呼出を避ける
 new Type(...) より { ... } の方が高速
⁃ Safari で有効な最適化。V8 だと遅くなる
 最適化前:
var pt = new Point(x, y);

 最適化後:
var pt = { x: x, y: y };

 注意点:
⁃ メソッド呼出や instanceof が不可能になる
•

メソッド呼出については、全頁のメソッドから関数への
変換を適用

JSX 速さの秘密 - 高速なJavaScriptを書く方法

14
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
argumentsを使わない
 遅いJavaScriptの例:
Point.prototype.set = function (a1, a2) {
if (arguments.length == 1) {
this.x = a1.x;

this.y = a1.y;
} else {
this.x = a1;
this.y = a2;
}
};

 高速に書くには、Point型を引数にとる setByPoint メ
ソッドと、座標の組を引数にとる setByXY メソッドを
別個に用意すべき
JSX 速さの秘密 - 高速なJavaScriptを書く方法

15
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
argumentsを使わない – JSXの場合
 そもそも arguments がない
 関数のオーバーロードが可能
⁃ コンパイル時に別名になる
// コンパイル後の名前: set$Lpoint
function set(pt : Point) : void {
this.x = pt.x;
this.y = pt.y;

}
// コンパイル後の名前: set$NN
function set(x : number, y : number) : void {
this.x = x;
this.y = y;
}

JSX 速さの秘密 - 高速なJavaScriptを書く方法

16
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
コンストラクタのオーバーロード
 通常の関数は名前を変えることでオーバーロード可能
 Q. コンストラクタの場合、どうするか?
 A. こんなコードを書く (JSXの内部実装より抜粋)
function $__jsx_extend(derivations, base) {
var ctor = function () {};
ctor.prototype = base.prototype;
var proto = new ctor();
for (var i in derivations)
derivations[i].prototype = proto;
}
function Point1(pt) { this.x = pt.x; this.y = pt.y; }
function Point2(x, y) { this.x = x; this.y = y; }
// new Point1 しても new Point2 しても同じ型のオブジェクトが生成するおまじない
$__jsx_extend([ Point1, Point2 ], Object);

JSX 速さの秘密 - 高速なJavaScriptを書く方法

17
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
Hidden Classを意識したコードを書く

http://v8-io12.appspot.com/

JSX 速さの秘密 - 高速なJavaScriptを書く方法

18
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
Hidden Classを意識したコードを書く (2)
 プロパティのセット順を一意に
⁃ JSXではプロパティ初期化時は条件分岐不可能
•

→ セット順が一意になる

•

Java と同様

 配列の要素型を一定に
⁃ JSXでは要素型毎に配列型を用意
•

number[], string[], Object[], Point[], …

 配列の要素をdeleteしない
⁃ JSXでは禁止
•

nullを代入することで対処(こちらのほうが高速)

JSX 速さの秘密 - 高速なJavaScriptを書く方法

19
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
Hidden Classを意識したコードを書く (3)
 未初期化の要素にアクセスしない
⁃ JSXでは未初期化の要素にアクセスするとエラー
•

注: デバッグビルドのみ
⁃ リリースビルドではエラーチェック省略

 Polymorphicなコードを書かない
⁃ JSXではpolymorphicなコードは書けない
•

クラスベースの型指定が「必須」な処理系だから

•

テンプレートを使った場合は、引数の型ごとに個別にコ
ード生成

JSX 速さの秘密 - 高速なJavaScriptを書く方法

20
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
組み込み関数が速いとは限らない
 JavaScript VMの仕事
⁃ JavaScriptを機械語にJust-In-Time compile
•

使われるテクニック:
⁃ Inline Caching
⁃ インライン展開

 JavaScriptからC++コードを呼ぶのは遅い(逆も同様)

⁃ C++側で様々なチェックが必要
•

引数の数や型の確認等

•

言語をまたいだInline Cachingやインライン展開は無理

⁃ C++コードは静的にコンパイルされているため

JSX 速さの秘密 - 高速なJavaScriptを書く方法

21
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
組み込み関数が速いとは限らない (2)
 汎用的なAPIとして定義されているため遅いケースも
⁃ 数十倍遅いケースも
 避けるべき組み込み関数の代表例:

⁃ Function.prototype.call
⁃ Function.prototype.apply
⁃ Function.prototype.bind

⁃ Array.prototype.forEach
 ベンチマーク:

⁃ http://jsperf.com/f-p-bind-vs-closure
⁃ http://d.hatena.ne.jp/kazuhooku/20120612/133948
9758
JSX 速さの秘密 - 高速なJavaScriptを書く方法

22
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
組み込み関数が速いとは限らない (3)
 JSXの場合:
⁃ Function.prototype 系は存在しない
⁃ クロージャがthisを引き継げるような言語仕様
•

→ bindの必要性が低い

•

JSXのソースコード:
var f = function () : void {
this.n++;
};

•

コンパイル結果 (JavaScript):
var $this = this;

var f = function (){
$this.n++;
};

JSX 速さの秘密 - 高速なJavaScriptを書く方法

23
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
組み込み関数が速いとは限らない (4)
 JSXの場合:
⁃ Array#forEachは独自に実装
⁃ 言語仕様が硬い分、JavaScriptよりも処理が単純に

⁃ 参照:
http://d.hatena.ne.jp/kazuhooku/20120612/133948
9758

JSX 速さの秘密 - 高速なJavaScriptを書く方法

24
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
更なる高速化のために 〜 JSXの最適化コンパイラの仕事

JSX 速さの秘密 - 高速なJavaScriptを書く方法

25
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
インライン展開
 JavaScript VMは、インライン展開を行う
⁃ だが、最速ではない
•

理由: 毎回、呼び出される関数が差し替えられていない
か確認する必要があるため

⁃ JSXの場合:
•

コンパイル後に関数の差し替え不可能

•

最適化コンパイル時に、あらかじめインライン展開され
たJavaScriptを生成
⁃ → JavaScript VMによるインライン展開より高速
⁃ → 他の最適化も適用可能に

JSX 速さの秘密 - 高速なJavaScriptを書く方法

26
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
事前計算
 定数畳み込み
⁃ JSXのソースコード:
const name = ”John”;
…
console.log(”Hello, ” + N);

⁃ コンパイル結果 (JavaScript):
console.log(”Hello, John”);

JSX 速さの秘密 - 高速なJavaScriptを書く方法

27
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
事前計算 (その2)
 Dead-code Elimination
⁃ JSXのソースコード:
const DEBUG = 0;
…
if (DEBUG) console.log(”in debug mode”);

⁃ コンパイル結果 (JavaScript):
// からっぽ

JSX 速さの秘密 - 高速なJavaScriptを書く方法

28
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
LTO (リンク時最適化)
 以下のコードで、mの型は何?
function transform(m: Matrix, pt : Point) : Point {
return m.rotate(pt);
}

 mの型はMatrix型かもしれないし、Matrixの派生型かも
⁃ これでは、rotateの実装を特定できない
•

→ rotateをインライン展開できない

 そこでLTO!
⁃ LTO: プログラムが使用する全てのコードに関する情
報を使って(つまり、リンク時に)最適化
⁃ Matrixを継承した型がなければ、mの型はMatrix型

JSX 速さの秘密 - 高速なJavaScriptを書く方法

29
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
アフィン変換 (クラス定義)
class Matrix {

var m11 : number; var m21 : number; var m31 : number;
var m12 : number; var m22 : number; var m32 : number;
...
function transform(pt : Point): Point {

return new Point(
this.m11 * pt.x + this.m21 * pt.y + this.m31,
this.m12 * pt.x + this.m22 * pt.y + this.m32);
}

}
class Point {
var x : number; var y : number;
function constructor(x : number, y : number) {

this.x = x;
this.y = y;
}
...
JSX 速さの秘密 - 高速なJavaScriptを書く方法

30
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
アフィン変換 (コンパイル例)
 JSXのソースコード:
var pt = new Matrix(1, 0, 0, 0, 2, 0).transform(new Point(x, y));
x = pt.x;
y = pt.y;

 最適化コンパイル後 (JavaScript):
var pt$x = x + 0 * y;
y = 0 * x + 2 * y;
x = pt$x;

 適用された最適化手法:
⁃ LTO (transformの実装を確定)
⁃ インライン展開
⁃ Unboxing
⁃ 定数畳み込みとDCE
JSX 速さの秘密 - 高速なJavaScriptを書く方法

31
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
まとめ

JSX 速さの秘密 - 高速なJavaScriptを書く方法

32
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
高速なJavaScriptを書ける自信はありますか?
 JavaScriptには速度が遅くなる罠が色々
⁃ 速くできるところが速くなった結果、罠に落ちた時
の速度の落ち込みが大きくなった

 モジュールをまたぐ最適化で高速になるケースも
⁃ 例: アフィン変換
 高速かつメンテナンスが容易なJavaScriptコードを書く
のは難しすぎる
⁃ グループ開発では教育コストが大きくなりすぎる
⁃ 問題が顕在化してから対処するのでは間に合わない

JSX 速さの秘密 - 高速なJavaScriptを書く方法

33
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
JSXを使えば問題解決するよ!!!

JSX 速さの秘密 - 高速なJavaScriptを書く方法

34
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.

More Related Content

What's hot (20)

WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup sample
mganeko
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
 
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったことPHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったこと
ksimoji
 
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜	【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
虎の穴 開発室
 
Session管理とRailsのcookie store
Session管理とRailsのcookie storeSession管理とRailsのcookie store
Session管理とRailsのcookie store
Kamimura Taichi
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Web Services Japan
 
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話JWTを使った簡易SSOで徐々にシステムをリニューアルしている話
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話
Kazuyoshi Tsuchiya
 
CCSRを実現するRDRA活用法
CCSRを実現するRDRA活用法CCSRを実現するRDRA活用法
CCSRを実現するRDRA活用法
Zenji Kanzaki
 
Ooc 2020
Ooc 2020Ooc 2020
Ooc 2020
Zenji Kanzaki
 
Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜
Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜
Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜
MicroAd, Inc.(Engineer)
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
 
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
Yusuke Naka
 
メトリクスによる「見える化」のススメ: エッセンシャル・リーン
メトリクスによる「見える化」のススメ: エッセンシャル・リーンメトリクスによる「見える化」のススメ: エッセンシャル・リーン
メトリクスによる「見える化」のススメ: エッセンシャル・リーン
Hiroyuki Ito
 
게임사를 위한 Amazon GameLift 세션 - 이정훈, AWS 솔루션즈 아키텍트
게임사를 위한 Amazon GameLift 세션 - 이정훈, AWS 솔루션즈 아키텍트게임사를 위한 Amazon GameLift 세션 - 이정훈, AWS 솔루션즈 아키텍트
게임사를 위한 Amazon GameLift 세션 - 이정훈, AWS 솔루션즈 아키텍트
Amazon Web Services Korea
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
 
アジャイルジャーニー
アジャイルジャーニーアジャイルジャーニー
アジャイルジャーニー
toshihiro ichitani
 
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법
Chris Ohk
 
知っておいて損はない AWS法務関連
知っておいて損はない AWS法務関連知っておいて損はない AWS法務関連
知っておいて損はない AWS法務関連
Kieko Sakurai
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
Amazon Web Services Japan
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup sample
mganeko
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
 
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったことPHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったこと
ksimoji
 
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜	【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
虎の穴 開発室
 
Session管理とRailsのcookie store
Session管理とRailsのcookie storeSession管理とRailsのcookie store
Session管理とRailsのcookie store
Kamimura Taichi
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Web Services Japan
 
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話JWTを使った簡易SSOで徐々にシステムをリニューアルしている話
JWTを使った簡易SSOで徐々にシステムをリニューアルしている話
Kazuyoshi Tsuchiya
 
CCSRを実現するRDRA活用法
CCSRを実現するRDRA活用法CCSRを実現するRDRA活用法
CCSRを実現するRDRA活用法
Zenji Kanzaki
 
Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜
Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜
Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜
MicroAd, Inc.(Engineer)
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
 
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
Yusuke Naka
 
メトリクスによる「見える化」のススメ: エッセンシャル・リーン
メトリクスによる「見える化」のススメ: エッセンシャル・リーンメトリクスによる「見える化」のススメ: エッセンシャル・リーン
メトリクスによる「見える化」のススメ: エッセンシャル・リーン
Hiroyuki Ito
 
게임사를 위한 Amazon GameLift 세션 - 이정훈, AWS 솔루션즈 아키텍트
게임사를 위한 Amazon GameLift 세션 - 이정훈, AWS 솔루션즈 아키텍트게임사를 위한 Amazon GameLift 세션 - 이정훈, AWS 솔루션즈 아키텍트
게임사를 위한 Amazon GameLift 세션 - 이정훈, AWS 솔루션즈 아키텍트
Amazon Web Services Korea
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
 
アジャイルジャーニー
アジャイルジャーニーアジャイルジャーニー
アジャイルジャーニー
toshihiro ichitani
 
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법
Chris Ohk
 
知っておいて損はない AWS法務関連
知っておいて損はない AWS法務関連知っておいて損はない AWS法務関連
知っておいて損はない AWS法務関連
Kieko Sakurai
 

Viewers also liked (20)

HTTP/2の課題と将来
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来
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 Beyond
Kazuho Oku
 
H2O - making HTTP better
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP better
Kazuho Oku
 
Developing the fastest HTTP/2 server
Developing the fastest HTTP/2 serverDeveloping the fastest HTTP/2 server
Developing the fastest HTTP/2 server
Kazuho Oku
 
H2O - the optimized HTTP server
H2O - the optimized HTTP serverH2O - the optimized HTTP server
H2O - the optimized HTTP server
Kazuho Oku
 
Unix Programming with Perl
Unix Programming with PerlUnix Programming with Perl
Unix Programming with Perl
Kazuho Oku
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向
Kazuho Oku
 
illumos day 2014 SMB2
illumos day 2014 SMB2illumos day 2014 SMB2
illumos day 2014 SMB2
gordonross
 
Mobile deviceperfoptimization jtpa_release
Mobile deviceperfoptimization jtpa_releaseMobile deviceperfoptimization jtpa_release
Mobile deviceperfoptimization jtpa_release
Hakuro Matsuda
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
Yuji Nojima
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
 
Story Telling By Eddie Choi
Story Telling By Eddie ChoiStory Telling By Eddie Choi
Story Telling By Eddie Choi
Eddie Choi
 
Phoenix Habitat For Humanity Leed Presentation
Phoenix   Habitat For Humanity Leed  PresentationPhoenix   Habitat For Humanity Leed  Presentation
Phoenix Habitat For Humanity Leed Presentation
ICF_HCD
 
Raccoon by Charles
Raccoon by CharlesRaccoon by Charles
Raccoon by Charles
vebrya
 
Unmanned Eyes In The Commercial Skies Presentation
Unmanned Eyes In The Commercial Skies PresentationUnmanned Eyes In The Commercial Skies Presentation
Unmanned Eyes In The Commercial Skies Presentation
mseraj
 
How Stupid Can We Get
How Stupid Can We GetHow Stupid Can We Get
How Stupid Can We Get
guest7cdf23
 
Not A Spy
Not A SpyNot A Spy
Not A Spy
guest17b8af
 
Persuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناع
Persuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناعPersuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناع
Persuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناع
Hani Al-Menaii
 
M02 un05 p01
M02 un05 p01M02 un05 p01
M02 un05 p01
Intan Jameel
 
Language learning and teaching through social media
Language learning and teaching through social mediaLanguage learning and teaching through social media
Language learning and teaching through social media
Lis Parcell
 
HTTP/2の課題と将来
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来
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 Beyond
Kazuho Oku
 
H2O - making HTTP better
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP better
Kazuho Oku
 
Developing the fastest HTTP/2 server
Developing the fastest HTTP/2 serverDeveloping the fastest HTTP/2 server
Developing the fastest HTTP/2 server
Kazuho Oku
 
H2O - the optimized HTTP server
H2O - the optimized HTTP serverH2O - the optimized HTTP server
H2O - the optimized HTTP server
Kazuho Oku
 
Unix Programming with Perl
Unix Programming with PerlUnix Programming with Perl
Unix Programming with Perl
Kazuho Oku
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向
Kazuho Oku
 
illumos day 2014 SMB2
illumos day 2014 SMB2illumos day 2014 SMB2
illumos day 2014 SMB2
gordonross
 
Mobile deviceperfoptimization jtpa_release
Mobile deviceperfoptimization jtpa_releaseMobile deviceperfoptimization jtpa_release
Mobile deviceperfoptimization jtpa_release
Hakuro Matsuda
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
Yuji Nojima
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
 
Story Telling By Eddie Choi
Story Telling By Eddie ChoiStory Telling By Eddie Choi
Story Telling By Eddie Choi
Eddie Choi
 
Phoenix Habitat For Humanity Leed Presentation
Phoenix   Habitat For Humanity Leed  PresentationPhoenix   Habitat For Humanity Leed  Presentation
Phoenix Habitat For Humanity Leed Presentation
ICF_HCD
 
Raccoon by Charles
Raccoon by CharlesRaccoon by Charles
Raccoon by Charles
vebrya
 
Unmanned Eyes In The Commercial Skies Presentation
Unmanned Eyes In The Commercial Skies PresentationUnmanned Eyes In The Commercial Skies Presentation
Unmanned Eyes In The Commercial Skies Presentation
mseraj
 
How Stupid Can We Get
How Stupid Can We GetHow Stupid Can We Get
How Stupid Can We Get
guest7cdf23
 
Persuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناع
Persuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناعPersuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناع
Persuasion Engineering - Training handout المادة التدريبية لدورة هندسة الإقناع
Hani Al-Menaii
 
Language learning and teaching through social media
Language learning and teaching through social mediaLanguage learning and teaching through social media
Language learning and teaching through social media
Lis Parcell
 

Similar to JSX 速さの秘密 - 高速なJavaScriptを書く方法 (20)

大規模なギョームシステムにHaxeを採用してみた話
大規模なギョームシステムにHaxeを採用してみた話大規模なギョームシステムにHaxeを採用してみた話
大規模なギョームシステムにHaxeを採用してみた話
terurou
 
Java8から17へ
Java8から17へJava8から17へ
Java8から17へ
onozaty
 
JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013
Kazuho Oku
 
第3回 JavaScriptから始めるプログラミング2016
第3回 JavaScriptから始めるプログラミング2016第3回 JavaScriptから始めるプログラミング2016
第3回 JavaScriptから始めるプログラミング2016
kyoto university
 
TypeScript0.9
TypeScript0.9TypeScript0.9
TypeScript0.9
ukayare
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成
Akineko Shimizu
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Akira Inoue
 
マーブル図で怖くないRxJS
マーブル図で怖くないRxJSマーブル図で怖くないRxJS
マーブル図で怖くないRxJS
bitbank, Inc. Tokyo, Japan
 
2008-07-12 / WCAN 2008 Summer Ligntning Talks #2
2008-07-12 / WCAN 2008 Summer Ligntning Talks #22008-07-12 / WCAN 2008 Summer Ligntning Talks #2
2008-07-12 / WCAN 2008 Summer Ligntning Talks #2
IWATA Susumu
 
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
 
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
mitim
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
 
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based languageKink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
Taku Miyakawa
 
20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public
Kazuaki Ishizaki
 
TypeScript + Express
TypeScript + ExpressTypeScript + Express
TypeScript + Express
kamiyam .
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
Itaru Kitagawa
 
ななめ45°から見たJavaOne
ななめ45°から見たJavaOneななめ45°から見たJavaOne
ななめ45°から見たJavaOne
AdvancedTechNight
 
大規模なギョームシステムにHaxeを採用してみた話
大規模なギョームシステムにHaxeを採用してみた話大規模なギョームシステムにHaxeを採用してみた話
大規模なギョームシステムにHaxeを採用してみた話
terurou
 
Java8から17へ
Java8から17へJava8から17へ
Java8から17へ
onozaty
 
JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013
Kazuho Oku
 
第3回 JavaScriptから始めるプログラミング2016
第3回 JavaScriptから始めるプログラミング2016第3回 JavaScriptから始めるプログラミング2016
第3回 JavaScriptから始めるプログラミング2016
kyoto university
 
TypeScript0.9
TypeScript0.9TypeScript0.9
TypeScript0.9
ukayare
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成
Akineko Shimizu
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Akira Inoue
 
2008-07-12 / WCAN 2008 Summer Ligntning Talks #2
2008-07-12 / WCAN 2008 Summer Ligntning Talks #22008-07-12 / WCAN 2008 Summer Ligntning Talks #2
2008-07-12 / WCAN 2008 Summer Ligntning Talks #2
IWATA Susumu
 
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
 
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
mitim
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
 
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based languageKink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
Taku Miyakawa
 
20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public
Kazuaki Ishizaki
 
TypeScript + Express
TypeScript + ExpressTypeScript + Express
TypeScript + Express
kamiyam .
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
Itaru Kitagawa
 
ななめ45°から見たJavaOne
ななめ45°から見たJavaOneななめ45°から見たJavaOne
ななめ45°から見たJavaOne
AdvancedTechNight
 

More from Kazuho Oku (20)

HTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないとき
Kazuho Oku
 
QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7
Kazuho Oku
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho 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 ruby
Kazuho Oku
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsiveness
Kazuho Oku
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsiveness
Kazuho Oku
 
TLS & LURK @ IETF 95
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95
Kazuho 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.5
Kazuho 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 faster
Kazuho 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 Learned
Kazuho Oku
 
Using the Power to Prove
Using the Power to ProveUsing the Power to Prove
Using the Power to Prove
Kazuho Oku
 
JSX - 公開から1年を迎えて
JSX - 公開から1年を迎えてJSX - 公開から1年を迎えて
JSX - 公開から1年を迎えて
Kazuho 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 Web
Kazuho Oku
 
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
Kazuho Oku
 
JSX Optimizer
JSX OptimizerJSX Optimizer
JSX Optimizer
Kazuho Oku
 
JSX Design Overview (日本語)
JSX Design Overview (日本語)JSX Design Overview (日本語)
JSX Design Overview (日本語)
Kazuho Oku
 
JSX
JSXJSX
JSX
Kazuho Oku
 
HTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないとき
Kazuho Oku
 
QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7
Kazuho Oku
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho 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 ruby
Kazuho Oku
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsiveness
Kazuho Oku
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsiveness
Kazuho Oku
 
TLS & LURK @ IETF 95
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95
Kazuho 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.5
Kazuho 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 faster
Kazuho 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 Learned
Kazuho Oku
 
Using the Power to Prove
Using the Power to ProveUsing the Power to Prove
Using the Power to Prove
Kazuho Oku
 
JSX - 公開から1年を迎えて
JSX - 公開から1年を迎えてJSX - 公開から1年を迎えて
JSX - 公開から1年を迎えて
Kazuho 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 Web
Kazuho Oku
 
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
Kazuho Oku
 
JSX Design Overview (日本語)
JSX Design Overview (日本語)JSX Design Overview (日本語)
JSX Design Overview (日本語)
Kazuho Oku
 

Recently uploaded (6)

【開発者向けMCP徹底解説】PythonによるMCPサーバー実装からVRChat連携まで:AI (Gemini) との対話で直面する"嘘"や落とし穴、その...
【開発者向けMCP徹底解説】PythonによるMCPサーバー実装からVRChat連携まで:AI (Gemini) との対話で直面する"嘘"や落とし穴、その...【開発者向けMCP徹底解説】PythonによるMCPサーバー実装からVRChat連携まで:AI (Gemini) との対話で直面する"嘘"や落とし穴、その...
【開発者向けMCP徹底解説】PythonによるMCPサーバー実装からVRChat連携まで:AI (Gemini) との対話で直面する"嘘"や落とし穴、その...
Kuretan VR
 
20250416_MLOps_LT_Event_Driven_AI_Agent__PM_Agent
20250416_MLOps_LT_Event_Driven_AI_Agent__PM_Agent20250416_MLOps_LT_Event_Driven_AI_Agent__PM_Agent
20250416_MLOps_LT_Event_Driven_AI_Agent__PM_Agent
gura105
 
LT_小江戸273A.ppt - Raspberry Pi 4 へのツール各種 (^^;;;; インストール
LT_小江戸273A.ppt - Raspberry Pi 4 へのツール各種 (^^;;;; インストールLT_小江戸273A.ppt - Raspberry Pi 4 へのツール各種 (^^;;;; インストール
LT_小江戸273A.ppt - Raspberry Pi 4 へのツール各種 (^^;;;; インストール
Kazuo Kubota
 
【Gensparkで作成】ChatGPT無料プランと有料プランを比較してみた!!
【Gensparkで作成】ChatGPT無料プランと有料プランを比較してみた!!【Gensparkで作成】ChatGPT無料プランと有料プランを比較してみた!!
【Gensparkで作成】ChatGPT無料プランと有料プランを比較してみた!!
kazumat53
 
LT_小江戸273B.ppt - USB 記憶装置が使えない PC で SD カードへ読書可能にしてみた
LT_小江戸273B.ppt - USB 記憶装置が使えない PC で SD カードへ読書可能にしてみたLT_小江戸273B.ppt - USB 記憶装置が使えない PC で SD カードへ読書可能にしてみた
LT_小江戸273B.ppt - USB 記憶装置が使えない PC で SD カードへ読書可能にしてみた
Kazuo Kubota
 
【Gensparkで作成】画像生成AIの基盤モデルから実際のツールまで歴史を紐解いてみた
【Gensparkで作成】画像生成AIの基盤モデルから実際のツールまで歴史を紐解いてみた【Gensparkで作成】画像生成AIの基盤モデルから実際のツールまで歴史を紐解いてみた
【Gensparkで作成】画像生成AIの基盤モデルから実際のツールまで歴史を紐解いてみた
kazumat53
 
【開発者向けMCP徹底解説】PythonによるMCPサーバー実装からVRChat連携まで:AI (Gemini) との対話で直面する"嘘"や落とし穴、その...
【開発者向けMCP徹底解説】PythonによるMCPサーバー実装からVRChat連携まで:AI (Gemini) との対話で直面する"嘘"や落とし穴、その...【開発者向けMCP徹底解説】PythonによるMCPサーバー実装からVRChat連携まで:AI (Gemini) との対話で直面する"嘘"や落とし穴、その...
【開発者向けMCP徹底解説】PythonによるMCPサーバー実装からVRChat連携まで:AI (Gemini) との対話で直面する"嘘"や落とし穴、その...
Kuretan VR
 
20250416_MLOps_LT_Event_Driven_AI_Agent__PM_Agent
20250416_MLOps_LT_Event_Driven_AI_Agent__PM_Agent20250416_MLOps_LT_Event_Driven_AI_Agent__PM_Agent
20250416_MLOps_LT_Event_Driven_AI_Agent__PM_Agent
gura105
 
LT_小江戸273A.ppt - Raspberry Pi 4 へのツール各種 (^^;;;; インストール
LT_小江戸273A.ppt - Raspberry Pi 4 へのツール各種 (^^;;;; インストールLT_小江戸273A.ppt - Raspberry Pi 4 へのツール各種 (^^;;;; インストール
LT_小江戸273A.ppt - Raspberry Pi 4 へのツール各種 (^^;;;; インストール
Kazuo Kubota
 
【Gensparkで作成】ChatGPT無料プランと有料プランを比較してみた!!
【Gensparkで作成】ChatGPT無料プランと有料プランを比較してみた!!【Gensparkで作成】ChatGPT無料プランと有料プランを比較してみた!!
【Gensparkで作成】ChatGPT無料プランと有料プランを比較してみた!!
kazumat53
 
LT_小江戸273B.ppt - USB 記憶装置が使えない PC で SD カードへ読書可能にしてみた
LT_小江戸273B.ppt - USB 記憶装置が使えない PC で SD カードへ読書可能にしてみたLT_小江戸273B.ppt - USB 記憶装置が使えない PC で SD カードへ読書可能にしてみた
LT_小江戸273B.ppt - USB 記憶装置が使えない PC で SD カードへ読書可能にしてみた
Kazuo Kubota
 
【Gensparkで作成】画像生成AIの基盤モデルから実際のツールまで歴史を紐解いてみた
【Gensparkで作成】画像生成AIの基盤モデルから実際のツールまで歴史を紐解いてみた【Gensparkで作成】画像生成AIの基盤モデルから実際のツールまで歴史を紐解いてみた
【Gensparkで作成】画像生成AIの基盤モデルから実際のツールまで歴史を紐解いてみた
kazumat53
 

JSX 速さの秘密 - 高速なJavaScriptを書く方法