SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
InputMethodKit超⼊門
                 Cocoa勉強会�#39�/�2010.02.11�(祝)�/�⽊村渡




Powered by Rabbit 0.6.4 and COZMIXNG
Input�Method
✓ 効率の良い⼊⼒
✓ さまざまなアプリケーションとコ
  ミュニケート
InputMethodKitは、
後者を⽀援するフレームワーク
InputMethodKit
✓ かな漢字変換などの⼊⼒プログラム
  をつくるためのフレームワーク
✓ アプリとして⼊⼒プログラムを作成
✓ Cocoa
✓ Leopardで導⼊された
さまざまな⽇本語⼊⼒プログラム
✓ ことえり
✓ かわせみ
✓ AquaSKK
✓ Google⽇本語⼊⼒
        などなど
InputMethodKitの構成
 +----------+    +------------------------+
 |=user app=|    | =input method app=     |
 | Client <------->(Server)<-> Controller |
 +----------+    +------------------------+
IMK�Classes
IMKServer
   ユーザ操作と⼊⼒操作を仲介
IMKInputController
   ⼊⼒プログラムの処理本体
IMKCandidates
   選択候補のユーザインターフェイスを制御
IMK�Protocols
IMKServerInput
   ⼊⼒プログラムのインターフェイス
IMKTextInput
   ⼊⼒プログラムとやりとりするアプリのイ
   ンターフェイス
IMKStateSetting
IMKMouseHandling
3つの実装手段
IMKServerInputプロトコル
✓ キーバインディング
✓ ⼊⼒⽂字+修飾キーを解釈
✓ TSMのイベントを利用
キーバインディング
inputText:client:
    ⼊⼒された⽂字を受け取る
didCommandBySelector:client:
    キーバインディングで定義されたコマンド
    を受け取る
"apple"が⼊⼒された
"moveForward:"コマンドが指⽰され
た
キーバインディング
キー(の組み合わせ)をObjective-C
メッセージに割り当て
StandardKeyBinding.dictを参照

 <key>^f</key>
 <string>moveForward:</string>
⼊⼒⽂字+修飾キーを解釈
inputText:key:modifiers:client:
   ⼊⼒された⽂字と修飾キーを受け取る
"apple"が⼊⼒された
"f"とCtrlキーが⼊⼒された
TSMのイベントを利用
handleEvent:client:
よくわからん。
たぶん従来のコンポーネントからの移
⾏しやすいんじゃないかな。
3つの実装手段
IMKServerInputプロトコル
✓ キーバインディング
✓ ⼊⼒⽂字+修飾キーを解釈
✓ TSMのイベントを利用
上のふたつのどちらか
つくってみよう
偉大なるお手本
AppleのサンプルNumberInput
NumberInput作成の手順
1.�⼊⼒メニューに表⽰
2.�ユーザ操作から⼊⼒⽂字を決定
3.�複数の変換モード
4.�変換候補の表⽰
5.�環境設定のUI
今回のサンプル
単純のため次のように
✓ 英数字のみ扱う
✓ 英単語を候補から選択できる
✓ (できれば)⼊⼒中のテキストから候
  補を抽出する
実装手順
1.�最⼩限。⼊⼒プログラムとして選
   択できる
2.�試験的な変換⼊⼒
3.�目的の変換処理、変換候補の選択
最⼩限の実装
✓ Info.plistに記述
✓ main()でIMKServerを⽣成
✓ IMKServerControllerのサブクラス
Info.plist
LSBackgroundOnly
InputMethodConnectionName
InputMethodServerControllerClas
s
tsInputMethodIconFileKey
tsInputMethodCharacterRepertoir
eKey
Info.plist
LSBackgroundOnly
1に。アプリケーションをバックグラ
ウンドにします。
Info.plist
InputMethodConnectionName
アプリケーションと⼊⼒プログラムの
通信に利用する名前を指定します。こ
の名前はほかの⼊⼒プログラムと重複
しないように注意してください。
Info.plist
InputMethodServerControllerClas
s
⼊⼒サービスを提供するクラスを指定
このクラスはIMKServerControllerの
サブクラス
Info.plist
tsInputMethodIconFileKey
⼊⼒メニューに表⽰するアイコン(こ
とえりなら[あ])の画像ファイルを指
定
Info.plist
tsInputMethodCharacterRepertoir
eKey
⼊⼒するキャラクタセットをISO1592
で指定(複数可)
プログラム
✓ main.m
✓ IMKServerControllerのサブクラス
main.m
ここでIMKServerのインスタンスを⽣
成し、コネクションの名前などを指定
します。
IMKInputController
inputText:client:
この⼊⼒プログラムで⼊⼒テキストを
処理するならYESを、そうでなければ
NOを返します。
とりあえず常にNOにしておきます。
動作確認�0
⼊⼒メニューに表⽰できる
✓ /Library/Input Methodsに
✓ ログオフ〜再ログオン
開発時はユーザースイッチを利用する
のがよいかも
試験的な変換⼊⼒を実装
 -(BOOL)inputText:(NSString*)string
            client:(id)sender
 {
   if ([string hasPrefix:@"o"]) {
       [sender insertText:@"Objective-C"
         replacementRange:NSMakeRange(0, 0)];
       return YES;
   } else {
       return NO;
動作確認�1
"o"を⼊⼒すると"Objective-C"が
他の⽂字はそのまま

 abc..lmnObjective-Cpq..xyz
変換候補の表示
cancdidates:
   候補の配列を返す
candidateSelected:
   候補が選択された
candidateSelectionChanged:
   選択候補が変更された
動作確認�2
✓ ⼊⼒中にスペースキーで変換候補を
  表⽰
✓ ⼊⼒中の⽂字が表⽰されない...
インライン⼊⼒
これは宿題っ
setMarkedText:selectionRange:re
placementRange:
終
質問などあれば
               どうぞ

Powered by Rabbit 0.6.4 and COZMIXNG

Mais conteúdo relacionado

Mais procurados

Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかLaravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかShohei Okada
 
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話Yoshio Hanawa
 
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」Hiro H.
 
HalideでつくるDomain Specific Architectureの世界
HalideでつくるDomain Specific Architectureの世界HalideでつくるDomain Specific Architectureの世界
HalideでつくるDomain Specific Architectureの世界Fixstars Corporation
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報Masahiko Sawada
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣Masahiro Nishimi
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~NTT Communications Technology Development
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
ペアプロするならgit-duetを使おう
ペアプロするならgit-duetを使おうペアプロするならgit-duetを使おう
ペアプロするならgit-duetを使おうShinya Nakajima
 
Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)Tomoaki Uchida
 
こわくない Git
こわくない Gitこわくない Git
こわくない GitKota Saito
 
Kotlin/Native 「使ってみた」の一歩先へ
Kotlin/Native 「使ってみた」の一歩先へKotlin/Native 「使ってみた」の一歩先へ
Kotlin/Native 「使ってみた」の一歩先へTakaki Hoshikawa
 
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理KageShiron
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造Takuya Akiba
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編Fixstars Corporation
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編Miki Shimogai
 

Mais procurados (20)

ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかLaravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのか
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
 
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
 
HalideでつくるDomain Specific Architectureの世界
HalideでつくるDomain Specific Architectureの世界HalideでつくるDomain Specific Architectureの世界
HalideでつくるDomain Specific Architectureの世界
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
RISC-Vの可能性
RISC-Vの可能性RISC-Vの可能性
RISC-Vの可能性
 
ペアプロするならgit-duetを使おう
ペアプロするならgit-duetを使おうペアプロするならgit-duetを使おう
ペアプロするならgit-duetを使おう
 
Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
Kotlin/Native 「使ってみた」の一歩先へ
Kotlin/Native 「使ってみた」の一歩先へKotlin/Native 「使ってみた」の一歩先へ
Kotlin/Native 「使ってみた」の一歩先へ
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編
 

Destaque

InputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろうInputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろうWataru Kimura
 
らくらくアップデートSparkle
らくらくアップデートSparkleらくらくアップデートSparkle
らくらくアップデートSparkleWataru Kimura
 
Precipitateに見る、外部リソースのSpotlight化
Precipitateに見る、外部リソースのSpotlight化Precipitateに見る、外部リソースのSpotlight化
Precipitateに見る、外部リソースのSpotlight化Wataru Kimura
 
Hotkeyslib3 Cocoaでホットキー
Hotkeyslib3 CocoaでホットキーHotkeyslib3 Cocoaでホットキー
Hotkeyslib3 CocoaでホットキーWataru Kimura
 
Three20のTTURLRequest
Three20のTTURLRequestThree20のTTURLRequest
Three20のTTURLRequestWataru Kimura
 
ClangでObjective-Cを静的解析
ClangでObjective-Cを静的解析ClangでObjective-Cを静的解析
ClangでObjective-Cを静的解析Wataru Kimura
 
SIMBLでCocoaアプリをパワーアップ
SIMBLでCocoaアプリをパワーアップSIMBLでCocoaアプリをパワーアップ
SIMBLでCocoaアプリをパワーアップWataru Kimura
 
Xcode4 project template (slide)
Xcode4 project template (slide)Xcode4 project template (slide)
Xcode4 project template (slide)Wataru Kimura
 
リマインダーの繰り返しを自由に設定する (EventKit)
リマインダーの繰り返しを自由に設定する (EventKit)リマインダーの繰り返しを自由に設定する (EventKit)
リマインダーの繰り返しを自由に設定する (EventKit)Wataru Kimura
 
Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信Wataru Kimura
 
OS X DYLD_* environments
OS X DYLD_* environmentsOS X DYLD_* environments
OS X DYLD_* environmentsWataru Kimura
 

Destaque (14)

InputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろうInputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろう
 
値変換
値変換値変換
値変換
 
らくらくアップデートSparkle
らくらくアップデートSparkleらくらくアップデートSparkle
らくらくアップデートSparkle
 
Precipitateに見る、外部リソースのSpotlight化
Precipitateに見る、外部リソースのSpotlight化Precipitateに見る、外部リソースのSpotlight化
Precipitateに見る、外部リソースのSpotlight化
 
Hotkeyslib3 Cocoaでホットキー
Hotkeyslib3 CocoaでホットキーHotkeyslib3 Cocoaでホットキー
Hotkeyslib3 Cocoaでホットキー
 
Three20のTTURLRequest
Three20のTTURLRequestThree20のTTURLRequest
Three20のTTURLRequest
 
ClangでObjective-Cを静的解析
ClangでObjective-Cを静的解析ClangでObjective-Cを静的解析
ClangでObjective-Cを静的解析
 
PSMTabBarControl
PSMTabBarControlPSMTabBarControl
PSMTabBarControl
 
SIMBLでCocoaアプリをパワーアップ
SIMBLでCocoaアプリをパワーアップSIMBLでCocoaアプリをパワーアップ
SIMBLでCocoaアプリをパワーアップ
 
Xcode4 project template (slide)
Xcode4 project template (slide)Xcode4 project template (slide)
Xcode4 project template (slide)
 
リマインダーの繰り返しを自由に設定する (EventKit)
リマインダーの繰り返しを自由に設定する (EventKit)リマインダーの繰り返しを自由に設定する (EventKit)
リマインダーの繰り返しを自由に設定する (EventKit)
 
Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信
 
Clang Modules
Clang ModulesClang Modules
Clang Modules
 
OS X DYLD_* environments
OS X DYLD_* environmentsOS X DYLD_* environments
OS X DYLD_* environments
 

Semelhante a InputMethodKit超入門

SICE 2020 Rtm tutorial 2_online_en
SICE 2020 Rtm tutorial 2_online_enSICE 2020 Rtm tutorial 2_online_en
SICE 2020 Rtm tutorial 2_online_enopenrtm
 
OpenRTM-aist入門
OpenRTM-aist入門OpenRTM-aist入門
OpenRTM-aist入門Yuki Suga
 
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1Hideki Saito
 
Locondo 20190215@ec tech_group
Locondo 20190215@ec tech_groupLocondo 20190215@ec tech_group
Locondo 20190215@ec tech_groupShinya Sugiyama
 
MariaDB Columnstore 使いこなそう
MariaDB Columnstore 使いこなそうMariaDB Columnstore 使いこなそう
MariaDB Columnstore 使いこなそうKAWANO KAZUYUKI
 
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)さくらインターネット株式会社
 
RTミドルウエア講習会2015
RTミドルウエア講習会2015RTミドルウエア講習会2015
RTミドルウエア講習会2015Yuki Suga
 
VagrantとChefで開発スピードを上げる話
VagrantとChefで開発スピードを上げる話VagrantとChefで開発スピードを上げる話
VagrantとChefで開発スピードを上げる話Koji Nakamura
 
「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用ESM SEC
 
[Azure Antenna] クラウドで HPC ~ HPC 環境の構築から、アプリケーションの実行まで ~
[Azure Antenna] クラウドで HPC ~ HPC 環境の構築から、アプリケーションの実行まで ~ [Azure Antenna] クラウドで HPC ~ HPC 環境の構築から、アプリケーションの実行まで ~
[Azure Antenna] クラウドで HPC ~ HPC 環境の構築から、アプリケーションの実行まで ~ Shuichi Gojuki
 
Oracleの実行計画を読んでみよう! #dbts2017
Oracleの実行計画を読んでみよう!  #dbts2017Oracleの実行計画を読んでみよう!  #dbts2017
Oracleの実行計画を読んでみよう! #dbts2017Ryota Watabe
 
Server side Swift & Photo Booth
Server side Swift & Photo Booth Server side Swift & Photo Booth
Server side Swift & Photo Booth LINE Corporation
 
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDODB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDOShinya Sugiyama
 
アトリエ秋葉原 Choregraphe WS#4
アトリエ秋葉原 Choregraphe WS#4アトリエ秋葉原 Choregraphe WS#4
アトリエ秋葉原 Choregraphe WS#4Atelier Akihabara
 
Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdfPrometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf勇 黒沢
 
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Tech Summit 2016
 
Amalgam8 application switch for cloud native services
Amalgam8   application switch for cloud native servicesAmalgam8   application switch for cloud native services
Amalgam8 application switch for cloud native servicesTakehiko Amano
 
Laravelの認証について
Laravelの認証についてLaravelの認証について
Laravelの認証についてTakeo Noda
 

Semelhante a InputMethodKit超入門 (20)

SICE 2020 Rtm tutorial 2_online_en
SICE 2020 Rtm tutorial 2_online_enSICE 2020 Rtm tutorial 2_online_en
SICE 2020 Rtm tutorial 2_online_en
 
OpenRTM-aist入門
OpenRTM-aist入門OpenRTM-aist入門
OpenRTM-aist入門
 
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
 
Locondo 20190215@ec tech_group
Locondo 20190215@ec tech_groupLocondo 20190215@ec tech_group
Locondo 20190215@ec tech_group
 
MariaDB Columnstore 使いこなそう
MariaDB Columnstore 使いこなそうMariaDB Columnstore 使いこなそう
MariaDB Columnstore 使いこなそう
 
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
 
RTミドルウエア講習会2015
RTミドルウエア講習会2015RTミドルウエア講習会2015
RTミドルウエア講習会2015
 
VagrantとChefで開発スピードを上げる話
VagrantとChefで開発スピードを上げる話VagrantとChefで開発スピードを上げる話
VagrantとChefで開発スピードを上げる話
 
「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用
 
[Azure Antenna] クラウドで HPC ~ HPC 環境の構築から、アプリケーションの実行まで ~
[Azure Antenna] クラウドで HPC ~ HPC 環境の構築から、アプリケーションの実行まで ~ [Azure Antenna] クラウドで HPC ~ HPC 環境の構築から、アプリケーションの実行まで ~
[Azure Antenna] クラウドで HPC ~ HPC 環境の構築から、アプリケーションの実行まで ~
 
Oracleの実行計画を読んでみよう! #dbts2017
Oracleの実行計画を読んでみよう!  #dbts2017Oracleの実行計画を読んでみよう!  #dbts2017
Oracleの実行計画を読んでみよう! #dbts2017
 
Server side Swift & Photo Booth
Server side Swift & Photo Booth Server side Swift & Photo Booth
Server side Swift & Photo Booth
 
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDODB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDO
 
アトリエ秋葉原 Choregraphe WS#4
アトリエ秋葉原 Choregraphe WS#4アトリエ秋葉原 Choregraphe WS#4
アトリエ秋葉原 Choregraphe WS#4
 
Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdfPrometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf
 
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動
 
さくらのIoT Platform α technical_details
さくらのIoT Platform α technical_detailsさくらのIoT Platform α technical_details
さくらのIoT Platform α technical_details
 
WebRTC on Native App
WebRTC on Native AppWebRTC on Native App
WebRTC on Native App
 
Amalgam8 application switch for cloud native services
Amalgam8   application switch for cloud native servicesAmalgam8   application switch for cloud native services
Amalgam8 application switch for cloud native services
 
Laravelの認証について
Laravelの認証についてLaravelの認証について
Laravelの認証について
 

InputMethodKit超入門