SlideShare a Scribd company logo
1 of 55
Download to read offline
HOW
AMP WORKS?
TaiHoon Kim(NAVER)
kishu@navercorp.com
about me
TaiHoon Kim kishu@navercorp.com
NAVER Front-End Platform
SADI HTML5 invited professor

NHN NEXT WebUI Basic adjunct professor
Project Management Professional(PMP)
Front-End Development Group Sysop
http://facebook.com/groups/webfrontend
AMP?
Bench-marking
How AMP works?
AMP Inside
AGENDA
AMP?
ACCELLERATED MOBILE PAGES by Google
ウェブページをもっと早くレンダリングするための技術

パフォーマンス向上のためのグーグルの経験に基づいたベストプラクティス
AMPs are just Web Pages!
AMP HTML
拡張可能な HTML : AMP 拡張タグとプロパーティ
AMP 拡張タグを使って<amp-carousel> などのコンポーネント利
⽤AMP 拡張タグはカスタムエレメント基盤のウェブコンポーネント
パフォーマンスのための制約 : <img> は <amp-img> を使うなど
amp.js
AMP ページとリソースのライフサイクル及びレンダリングタイム制御
AMP カスタムエレメント実装コード
ウェブページのパフォーマンス向上のため
のベストプラクティス
AMP は外部の JS を許可してない。
カスタム JS は sandbox iframe で使える。
AMP STYLE = CSS
外部のスタイル、インラインスタイルは許可しない
ドキュメントに注⼊する形のインラインスタイルは使⽤可能
最⼤ 50KB まで許可
例
Naver モバイルメインページ - 合計 2つのファイルで約 100KB
Naver モバイルニュースホーム - 合計 2つのファイルで約 67KB
Naver モバイルニュースエンド - 合計 8つのファイルで約 50KB
<style amp-custom>
/* any custom style goes here */
body {
background-color: white;
}
amp-img {
background-color: gray;
border: 1px solid black;
}
</style>
AMP コンポーネントを使って HTML を作成し
AMP JS をロードすることで
ウェブページの⾼速レンダリングを保証
+ グーグル検索結果で即時ロード
+ グーグル CDN キャッシュ
HELLO AMP!!!
<!doctype html>
<html amp lang="en">
<head>
<meta charset="utf-8">
<title>Hello, AMPs</title>
<link rel="canonical" href="http://example.ampproject.org/article-metadata.html" />
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<style amp-boilerplate>body{ ... }</style>
<script async src="https://cdn.ampproject.org/v0.js"></script>
</head>
<body>
<h1>Welcome to the mobile web</h1>
</body>
</html>
AMP COMPONENTS
/* AMP 基本コンポーネント - イメージ */
<amp-img src="welcome.jpg" alt="Welcome" height="400" width="800"></amp-img>
/*AMP 基本コンポーネント - 動画 */
<amp-video width=400 height=300 src="https://yourhost.com/videos/myvideo.mp4"
poster="myvideo-poster.jpg">
</amp-video>
amp-ad amp-embed amp-img
amp-pixel amp-video
AMP EXTENDED COMPONENT
... 35 more
AMP-CAROUSEL
/* AMP 拡張コンポーネント - カルーセル */
<amp-carousel width=300 height=400>
<amp-img src="my-img1.png" width=300 height=400></amp-img>
<amp-img src="my-img2.png" width=300 height=400></amp-img>
<amp-img src="my-img3.png" width=300 height=400></amp-img>
</amp-carousel>
<script async custom-element="amp-carousel"
src="https://cdn.ampproject.org/v0/amp-carousel-0.1.js"></script>
AMP EXTENDED COMPONENT
/* AMP コンポーネント - lightbox */
<amp-image-lightbox id="lightbox1"
layout="nodisplay">
</amp-image-lightbox>
AMP EXTENDED COMPONENT
/* AMP コンポーネント - サイドバー */
<amp-sidebar id='sidebar'
layout="nodisplay"
side="right"> ...
AMP ベンチマーク
NAVAR TV芸能
AMP プロトタイピング
AMP ベンチマークイシュー
動画
動作する。ただし URL は https
placeholder ⽤のイメージが必要
JS
カスタム JS は使えない。コメントと TOP ボタンが動作しない
sandbox iframe で実装しようともしたが、セキュリティ問題など発⽣
nClick は amp-analytics で対応できるかリサーチが必要
外部 CSS ロードを許可しない
HTML ヘッダーにスタイル注⼊ 4KB
HTML エレメントにインラインスタイルは許可しない
AMP ベンチマーク TIMELINE
localhost で

network throttling 4Mb↓, 3Mb↑, 20ms RTT に設定
AMP ベンチマーク NETWORK
AMP 未適応
AMP ベンチマーク NETWORK
AMP 適応
画⾯に表⽰されるリソースを先にダウンロード
スクロースの外側のリソースは順次に遅延ロード
HOW AMP
SPEEDS UP
PERFORMANCE
How AMP Speeds Up Performance
⾮同期スクリプトのみ許可
ページのレンダリングを遮断する JS 防⽌
AMP JS 以外の他の JS も許可しない
全てのリソースのサイズ指定
リソースをダウンロードせずにサイズと位置を計算してレイアウトしておく
拡張コンポーネントをレンダリングを遮断せずに実⾏可能
追加で HTTP リクエストはあるかもしれないが、ページのレイアウトとレ
ンダリングは遮断しない
How AMP Speeds Up Performance
3rd Party JS をクリティカルパースから除外
3rd Party JS は sandbox iframe の内部だけ許可
親ページの実⾏を遮断しなくて性能に影響しない
CSS は HTML 内部スタイルシートのみ許可しサイズを制限
HTML ページの内部に style タグを⼊れて使⽤
スタイルシートのサイズは 50KB までに制限
Web フォントを効率的にダウンロード
ブラウザを遮断する HTTP リクエストが発⽣いないように Web フォントをダウン
ロード
How AMP Speeds Up Performance
スタイル再計算の最⼩化
不必要なレイアウト防⽌のため、先に測定をして変更を後に処理
フレーム毎スタイルので⼀度だけ再計算できるように保証
GPU 加速アニメーションのみ実⾏
ページのレイアウトが発⽣しない CSS アニメーションのみ使⽤
transform, opacity
How AMP Speeds Up Performance
リソーツのロード順番を制御
ダウンロードするリソースの優先順位を計算
重要なリソースからダウンロード
ページの即時ロード
preconnect API
取得するページをビューポート分だけインポート
INSIDE OF AMP
AMP: CUSTOM ELEMENTS
export function registerElement(win, name, implementationClass) {
knownElements[name] = implementationClass;
win.document.registerElement(name, {
prototype: createAmpElementProto(win, name),
});
}
src/custom-element.js
export function installImg(win) {
registerElement(win, 'amp-img', AmpImg);
}
builtins/amp-img.js
AMP: CUSTOM ELEMENTS
Custom Element
BaseElement HTMLElement.prototype
AmpImg ElementProto
this.implementation_ = 

new AmpImg();
AMP Components = HTML Custom Elements
新しい HTML タイプを定義し

ライフサイクルを制御
createdCallback カスタムエレメントの登録する時に発⽣
attachedCallback カスタムエレメントを DOM に追加する時に発⽣
detachedCallback カスタムエレメントを DOM から削除する時に発⽣
attributeChangedCallback カスタムエレメントの属性を追加、修正、削除する時に発⽣
AMP: CUSTOM ELEMENT
Lifecycle Callbacks
firstAttachedCallback カスタムエレメントの最初の DOM に追加する時に発⽣
buildCallback カスタムエレメントと⼦エレメントが使⽤可能になった時に発⽣
layoutCallback AMP がカスタムエレメントをレンダリングする時に発⽣
viewportCallback カスタムエレメントがビューポートに⼊る時と出る時に発⽣
documentInactiveCallback ドキュメントをアンロードする前に発⽣
AMP: CUSTOM ELEMENT
AMP's Extended Lifecycle Callbacks
AMP: FSM(Finite-State Machine)
AMPはコンポーネントの条件によって⼀つの状態をもつ
条件が変わると別の状態に変わる
状態が変わるとそれに伴うアクションを実⾏する
OFF ON
turn on
turn off
AMP: FSM(Finite-State Machine)
prerender
paused
inactive
doPass
unload
resume
doPass
doPass
doPass
doPass
doPassdoPass
doPass
doPass
doPass
paused
paused
unload
unload
doPass
doPassvisible
hidden
AMP: FSM(Finite-State Machine)
doPass = discoverWork + work
applySizesAndMediaQuery
discoverWork
measure
scheduleLayoutOrPreload
setInViewport
calcTaskScore
peek
startLayout
work
AMP: FSM(Finite-State Machine)
applySizesAndMediaQuery
メディアクエリを適応して AMP サイズ関連の属性をパース
measure
リソースのサイズと位置を測定。リソースは READY_FOR_LAYOUT 状態になる
scheduleLayoutOrPreload
ビューポートを拡張した特定領域内のリソースをレイアウトするための Job スケジューリング
setInViewport
リソースがビューポートの内にあるのか外にあるのかを計算し viewportCallback を実⾏
discoverWork
AMP: FSM(Finite-State Machine)
calcTaskScore
スケジューリングした Job の優先順位を計算
1) どの AMP カスタムエレメントなのか? 2) どんな作業なのか? 3) ビューポートはどれくらい近いのか?
peek
優先順位が最も⾼い Job を選択
startLayout
選択した Job の対象リソースを LAYOUT_SCHEDULED 状態に変更しレイアウトを開始
例えば、リソースが amp-img だとすると src 属性にイメージを指定することでレイアウト可能
work
AMP: SINGLE PASS PROCESS
class Pass {
constructor(win, handler, opt_defaultDelay) {
this.handler_;
this.defaultDelay_;
this.scheduled_;
this.nextTime;
this.running_;
}
isPending();
schedule(opt_delay);
cancel();
}
// 実⾏する Job を Pass に登録
new Pass(this.win, () => this.doPass_());
// Job Queue の最後の実⾏時間を元に次の実⾏時間を計算
let nextPassDelay = (now - this.exec_.getLastDequeueTime()) * 2;
nextPassDelay = Math.max(Math.min(30000, nextPassDelay), 5000);
AMP: PROMISE
initialize src
call layoutComplete
AMP: OPTIMIZATION REFLOW
Reflow
Width と Height などエレメントの幾何学的構造に影響する属性を変更すると
該当エレメントのサイズを位置をまた計算
エレメントの変更が影響する他のエレメントのサイズと位置もまた計算
Reflow は Repaint を発⽣させるので
できるだけ Reflow と Repaint を少なくする⽅がいい
AMP: OPTIMIZATION REFLOW
枠の厚さを変更し⾼さを変更する場合
厚さ変更 → Reflow → Repaint→ ⾼さ変更→ Reflow → Repaint
厚さ変更 Job を保存 → ⾼さ変更 Job 保存 → 保存された Job 実⾏ → Reflow → Repaint
ブラウザは変更作業を集めて必要な時に実⾏
AMP: OPTIMIZATION REFLOW
エレメントのサイズ、位置、スクロールに関連した
スタイル属性をリクエストすると?
ブラウザはリクエストしたスタイルの属性を値を正確に計算するために
保存されていた変更作業を実⾏し Reflow、Repaint する
スタイル属性をリクエストする時には不必要な Reflow が発⽣しないように
AMP: OPTIMIZATION REFLOW
// measure - (保存された Job があると) Reflow 発生
var h1 = element1.clientHeight;
// mutate - 変更 Job 保存
element1.style.height = (h1 * 2) + 'px';
// measure - Reflow 発生
var h2 = element2.clientHeight;
// mutate - 変更 Job 保存
element2.style.height = (h2 * 2) + 'px';
// measure - Reflow 発生
var h3 = element3.clientHeight;
// mutate - 変更 Job 保存
element3.style.height = (h3 * 2) + 'px';
AMP: OPTIMIZATION REFLOW
// measure
var h1 = element1.clientHeight; // (保存された Job があると) 発生
var h2 = element2.clientHeight; // 保存された Job なし
var h3 = element3.clientHeight; // 保存された Job なし
// mutate
element1.style.height = (h1 * 2) + 'px'; // 変更Job 保存
element2.style.height = (h2 * 2) + 'px'; // 変更Job 保存
element3.style.height = (h3 * 2) + 'px'; // 変更Job 保存
NO batching DOM read/write operations
batching DOM read/write operations
AMP: OPTIMIZATION REFLOW
class Vsync {
..
..
mutate(mutator) { ... }
measure(measurer) { ... }
run(task, opt_state) { ... }
..
..
}
AMP: OPTIMIZATION REFLOW
for (let i = 0; i < tasks.length; i++) {
if (tasks[i].measure) {
tasks[i].measure(states[i]);
}
}
for (let i = 0; i < tasks.length; i++) {
if (tasks[i].mutate) {
tasks[i].mutate(states[i]);
}
}
AMP: OPTIMIZATION REFLOW
THANK YOU

More Related Content

What's hot

CakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がりCakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がりDaisuke Abe
 
WCAN 2014summer CSSフレームワークとCMSプロトタイプを使ったワークフローの効率化
WCAN 2014summer CSSフレームワークとCMSプロトタイプを使ったワークフローの効率化WCAN 2014summer CSSフレームワークとCMSプロトタイプを使ったワークフローの効率化
WCAN 2014summer CSSフレームワークとCMSプロトタイプを使ったワークフローの効率化onigiri764
 
WP-CLI (WordBench Sendai 20140628)
WP-CLI (WordBench Sendai 20140628)WP-CLI (WordBench Sendai 20140628)
WP-CLI (WordBench Sendai 20140628)Kazue Igarashi
 
a-blog cms 2.0 を活用した新しいWeb制作のワークフロー
a-blog cms 2.0 を活用した新しいWeb制作のワークフローa-blog cms 2.0 を活用した新しいWeb制作のワークフロー
a-blog cms 2.0 を活用した新しいWeb制作のワークフローKazumich YAMAMOTO
 
CloudFront構築事例 ハートビーツ 20121025
CloudFront構築事例 ハートビーツ 20121025CloudFront構築事例 ハートビーツ 20121025
CloudFront構築事例 ハートビーツ 20121025Toshiaki Baba
 
え?まだMAMPで消耗してんの?
え?まだMAMPで消耗してんの?え?まだMAMPで消耗してんの?
え?まだMAMPで消耗してんの?Takayuki Miyauchi
 

What's hot (6)

CakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がりCakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がり
 
WCAN 2014summer CSSフレームワークとCMSプロトタイプを使ったワークフローの効率化
WCAN 2014summer CSSフレームワークとCMSプロトタイプを使ったワークフローの効率化WCAN 2014summer CSSフレームワークとCMSプロトタイプを使ったワークフローの効率化
WCAN 2014summer CSSフレームワークとCMSプロトタイプを使ったワークフローの効率化
 
WP-CLI (WordBench Sendai 20140628)
WP-CLI (WordBench Sendai 20140628)WP-CLI (WordBench Sendai 20140628)
WP-CLI (WordBench Sendai 20140628)
 
a-blog cms 2.0 を活用した新しいWeb制作のワークフロー
a-blog cms 2.0 を活用した新しいWeb制作のワークフローa-blog cms 2.0 を活用した新しいWeb制作のワークフロー
a-blog cms 2.0 を活用した新しいWeb制作のワークフロー
 
CloudFront構築事例 ハートビーツ 20121025
CloudFront構築事例 ハートビーツ 20121025CloudFront構築事例 ハートビーツ 20121025
CloudFront構築事例 ハートビーツ 20121025
 
え?まだMAMPで消耗してんの?
え?まだMAMPで消耗してんの?え?まだMAMPで消耗してんの?
え?まだMAMPで消耗してんの?
 

Similar to How AMP Work?

比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)gree_tech
 
Web Site Optimization for Beginners
Web Site Optimization for BeginnersWeb Site Optimization for Beginners
Web Site Optimization for Beginnersmasaaki komori
 
Ruby on Rails の規約
Ruby on Rails の規約Ruby on Rails の規約
Ruby on Rails の規約Shuhei Iitsuka
 
イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱Fumio SAGAWA
 
20190122 AWS Black Belt Online Seminar Amazon Redshift Update
20190122 AWS Black Belt Online Seminar Amazon Redshift Update20190122 AWS Black Belt Online Seminar Amazon Redshift Update
20190122 AWS Black Belt Online Seminar Amazon Redshift UpdateAmazon Web Services Japan
 
[AWSマイスターシリーズ] AWS CloudFormation
[AWSマイスターシリーズ] AWS CloudFormation[AWSマイスターシリーズ] AWS CloudFormation
[AWSマイスターシリーズ] AWS CloudFormationAmazon Web Services Japan
 
CloudFormation Getting Started with YAML
CloudFormation Getting Started with YAMLCloudFormation Getting Started with YAML
CloudFormation Getting Started with YAMLYukitaka Ohmura
 
Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】dcubeio
 
2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osaka
2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osaka2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osaka
2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osakatama200x Kobayashi
 
AWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザAWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザNoritaka Sekiyama
 
[AWSマイスターシリーズ]Amazon Simple Workflow Service (SWF)
[AWSマイスターシリーズ]Amazon Simple Workflow Service (SWF)[AWSマイスターシリーズ]Amazon Simple Workflow Service (SWF)
[AWSマイスターシリーズ]Amazon Simple Workflow Service (SWF)Amazon Web Services Japan
 
最近話題になってる Amp と instant articles について調べてみた
最近話題になってる Amp と instant articles について調べてみた最近話題になってる Amp と instant articles について調べてみた
最近話題になってる Amp と instant articles について調べてみたShoko Matsuo
 
Best Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWSBest Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWSAmazon Web Services Japan
 
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-Amazon Web Services Japan
 
フロントエンド実装者から見た PowerCMS X
フロントエンド実装者から見た PowerCMS Xフロントエンド実装者から見た PowerCMS X
フロントエンド実装者から見た PowerCMS XHideki Abe
 
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014はじめてのアマゾンウェブサービス @ JAWS DAYS 2014
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014Yasuhiro Horiuchi
 

Similar to How AMP Work? (20)

AMP & PWA
AMP & PWAAMP & PWA
AMP & PWA
 
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
 
Web Site Optimization for Beginners
Web Site Optimization for BeginnersWeb Site Optimization for Beginners
Web Site Optimization for Beginners
 
Ruby on Rails の規約
Ruby on Rails の規約Ruby on Rails の規約
Ruby on Rails の規約
 
イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱
 
DevOps with Database on AWS
DevOps with Database on AWSDevOps with Database on AWS
DevOps with Database on AWS
 
20190122 AWS Black Belt Online Seminar Amazon Redshift Update
20190122 AWS Black Belt Online Seminar Amazon Redshift Update20190122 AWS Black Belt Online Seminar Amazon Redshift Update
20190122 AWS Black Belt Online Seminar Amazon Redshift Update
 
[AWSマイスターシリーズ] AWS CloudFormation
[AWSマイスターシリーズ] AWS CloudFormation[AWSマイスターシリーズ] AWS CloudFormation
[AWSマイスターシリーズ] AWS CloudFormation
 
CloudFormation Getting Started with YAML
CloudFormation Getting Started with YAMLCloudFormation Getting Started with YAML
CloudFormation Getting Started with YAML
 
Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】
 
2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osaka
2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osaka2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osaka
2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osaka
 
AWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザAWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザ
 
Wordvolcano
WordvolcanoWordvolcano
Wordvolcano
 
[AWSマイスターシリーズ]Amazon Simple Workflow Service (SWF)
[AWSマイスターシリーズ]Amazon Simple Workflow Service (SWF)[AWSマイスターシリーズ]Amazon Simple Workflow Service (SWF)
[AWSマイスターシリーズ]Amazon Simple Workflow Service (SWF)
 
web server
web serverweb server
web server
 
最近話題になってる Amp と instant articles について調べてみた
最近話題になってる Amp と instant articles について調べてみた最近話題になってる Amp と instant articles について調べてみた
最近話題になってる Amp と instant articles について調べてみた
 
Best Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWSBest Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWS
 
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
 
フロントエンド実装者から見た PowerCMS X
フロントエンド実装者から見た PowerCMS Xフロントエンド実装者から見た PowerCMS X
フロントエンド実装者から見た PowerCMS X
 
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014はじめてのアマゾンウェブサービス @ JAWS DAYS 2014
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014
 

Recently uploaded

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

Recently uploaded (9)

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

How AMP Work?