SlideShare a Scribd company logo
Antプログラミング(1) - プラグイン
2015/11/20 Javaツール勉強会資料
QTS / ISIT 神戸隆行(かんど たかゆき)
自己紹介 - 全般
2015/11/20Javaツール勉強会2
 九州先端科学技術研究所(ISIT)の方から来ました
 職場はそこだけど所属はQuoliarc Technology Solutions Ltd.
 チーフソフトウェアエンジニア(…といっても従業員は1人、院の指導教官
がCTO)
 数学ソフトウェア(数値解析、数式処理)、プログラム最適化、動的再構
成可能プロセッサ向けコンパイラと来て今はPTaaSを作っています
 連絡先:
 Twitter: @ChihiroShiiji
 Facebook: takayuki_kando
 mail: kando@nerimadors.or.jp
 趣味プロジェクト: TRPGオンラインセッションツールの開発
 趣味: イラスト描き、コスプレ?
自己紹介 - Antとの関わり
2015/11/20Javaツール勉強会3
 普段のビルドにも使っていますが…
 PTaaS (Platform for TaaS)
 開発ツールをネットワークのサービスとして提供する(Tool as
a Service)ためのプラットフォーム
 技術的には「XMPPベースのマルチユーザ遠隔分散ビルド」
システム
 ビルドスクリプトを解釈し、ツールを起動する核の部分にAntを使って
います
LAN
実マシン
ビルド~遠隔分散ビルド・ミドルウェア
クラウド
仮想マシン
開発ツール
仮想マシン
開発ツール
仮想マシン
分散ビルド・
ミドルウェア
実マシン
開発ツール
実マシン
開発ツール
実マシン
分散ビル
ド・ツール
実マシン
クライア
ント
ビルド手順
記述
ビルド手順
記述
開発ツールビルド・
ツール
ビルド手順
記述
通常のビルド・ツール 分散ビルド・ツール
遠隔分散ビルド・ミドルウェア(遠隔+分散ビルド+VM制御)
リモート実行:
ユーザ認証
ファイル同期
時刻同期
ツール入出力の中
継
暗号化
仮想マシン管理
隔離
負荷分散
make
ANT
etc...
4
(構築ホスト)
(開始ホスト)
サーバVM
凡例:
VMM-VM
遠隔分散ビルド型PTaaSの実験実装
"Trebuchet"の構成の詳細(制御構造)
ユーザーの計算機
IDE
ワーカーVM
プロジェクトVM
XMPPサーバ
クライア
ント・プラ
グイン
管理用の計算機
管理用
XMPPクライ
アント
ワーカーVM
ワーカーVM
プロジェクト・
ファイルサーバ
ワーカー
ワーカー
ワーカー
プロジェクト
ローカル・
ストレージ
XMPP接続
(ビルド制御、状態情報用)
CloudOS
APIによる管理
プロジェクト・ビルダ
ビルド・
ツール
クラウド
VMMコンポーネント
仮想マシ
ン・プール
Cloud OS
API
開発ツール
A
開発ツール
B
開発ツール
C
5
CI
ツール
クライア
ント・プラ
グイン
※ サーバ以外はアウトバウンド
のXMPP接続になっている
DMZ
復習 - Antの構造
2015/11/20Javaツール勉強会6
 ターゲット(target要素)の依存関係でビルドのプロセスを
編成
 プロパティ(property要素)を環境や処理の過程を記述
する「変数」として利用できる
 ターゲット内の個々の処理を表すタスク(処理毎の名の
ついた要素)
 良く使われる処理は予め豊富に準備
 exec、apply、javac、java、jar、zip、unzip、ftp、get(http)、mkdir、
copy…
 タスクが利用するビルドに便利なデータ型も準備されている
 fileset、pathset、filelist、patternset…
復習 - Antの特長…今となっては歴史?
(Ant以前、makeと比較)
2015/11/20Javaツール勉強会7
 Javaで書かれていて主だった処理はAnt内で閉じている
 makeでは依存関係ルール、拡張子ルールでコマンドを実行
する機能しかない
 osのコマンド、特にshに多くを依存していた
 複雑な処理や変数はmakefileにシェルスクリプトの断片で書く
 OSの違いから大きく影響を受ける
 依存関係の明示
 makeでは依存関係はファイルの読み取り条件として間接的
に指定され更新日付で実行が制御されていた
 ファイルの読み書きをしないタスクはダミーのファイルを作ってtouch
コマンドを実行したりしていた
 拡張可能であり、拡張はJavaで記述できる
 makeを拡張する手段は基本的に存在しない
概要
2015/11/20Javaツール勉強会8
 Antをプログラミングする話
 Antの拡張…プラグイン・プログラミング
 本日の主題
 参考:「Ant」第2版、Steve Holzner 著、長瀬嘉秀 監訳、オライリー
ジャパン、2005年11月
 Antをプログラムに組み込んで使う
 時間の都合で今日は省略
 いつか機会があれば
 PTaaSでは両方使っています
 ツールを遠隔実行するTRExec、TRApplyタスクの追加
 ProjectsエージェントはAntスクリプトを解釈実行するため内
部にAntを組み込んでいます
タスク
2015/11/20Javaツール勉強会9
 タスクの追加が恐らくプラグインの中心
 一応リソースやフィルタなども追加できます
 taskdef要素で追加したいタスクを実装したJavaクラスを
指定する
 組みこんでしまう方法もあるがtaskdefの方がお手軽
 タスクの動作を指定するクラスの最低必要な条件は
public void execute()メソッドがあること
 例:
 sample.Greetingクラス
 build_greeting.xml
タスクのライフサイクル
2015/11/20Javaツール勉強会10
1. 無引数のコンストラクタで作成
2. project、locationフィールドの設定
3. プロジェクトへのタスクid(あれば)登録
4. targetフィールドの設定
5. init()メソッドによる初期化
6. 全子要素の追加
7. 全アトリビュートの設定
8. 全子要素の全アトリビュート設定
9. 文字データの追加
10. execute()の実行
Taskクラスの利用
2015/11/20Javaツール勉強会11
 一般にはTaskクラスを拡張して利用
 Antとのインターフェースに便利なメソッドが色々ある
 例えば既定義のプロパティへのアクセス
 this.getProject().getProperties()などによる
 タスクのアトリビュートはセッターsetXXXX()を定義して
おくと渡してくれる
 サポートされる型: boolean、char、int、short、File、String、
org.apache.tools.ant.types.Path(パス文字列)、
org.apache.tools.ant.types.EnumuratedAttributes(列挙)、
String1引数のコンストラクタを有する任意のクラス
 例:
 sample. DumpPropertiesクラス
 build_prop.xml
中断とログ出力
2015/11/20Javaツール勉強会12
 中断にはexecute()内からBuildExceptionを投げる
 例:
 sample. Failureクラス
 build_failure.xml
 ロギングはlog()メソッドを利用
 例:
 sample. Logクラス
 build_log.xml
タスクのテキスト・コンテンツ
2015/11/20Javaツール勉強会13
 テキスト
 addText()メソッドをオーバーライド
 例(前述のlog出力と同じ例):
 sample. Logクラス
 build_log.xml
子要素
2015/11/20Javaツール勉強会14
 カスタムな子要素
 createXXXX()メソッドを定義
 子要素の子要素、テキストコンテンツやアトリビュートはタスクと同様
の方法で受け取れる
 例:
 sample. Nestクラス
 build_nest.xml
 タスクがファイルセットをサポートする場合の子要素
 TaskではなくMatchingTaskを拡張して利用する
 例:
 sample. Dirクラス
 build_dir.xml
外部コマンドの実行
2015/11/20Javaツール勉強会15
 org.apache.tools.ant.types.Commandlineと既定義の
タスクorg.apache.tools.ant.taskdefs.Executeを利用す
れば簡単
 自分で作成するとストリームの準備やエラー処理など色々大
変
 例(前述のlog出力と同じ例):
 sample. Logクラス
 build_log.xml
まとめ
2015/11/20Javaツール勉強会16
 Antをプログラミングする話(その1)
 Antの拡張…プラグイン・プログラミング
 タスクの追加方法
 アトリビュートの受け取り
 ログ出力
 中断
 テキストコンテンツの受け取り
 子要素
 カスタムな子要素
 FileSetの子要素
 外部コマンド実行
 簡単でしたね!
ソースコードはGistに:
https://gist.github.com/TakayukiKando/340aca3925007c0
0ee73

More Related Content

What's hot

言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyoShuyo Nakatani
 
ワークショップ「ゲーム開発チームにおけるパトレット」
ワークショップ「ゲーム開発チームにおけるパトレット」ワークショップ「ゲーム開発チームにおけるパトレット」
ワークショップ「ゲーム開発チームにおけるパトレット」
Masaru Nagaku
 
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈	BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
順也 山口
 
NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...
NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...
NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...Yuya Unno
 
2015 summercamp 04
2015 summercamp 042015 summercamp 04
2015 summercamp 04
openrtm
 
やって分かった自動テスト
やって分かった自動テストやって分かった自動テスト
やって分かった自動テスト
Hirokazu Tokuno
 
全脳アーキテクチャ若手の会20170131
全脳アーキテクチャ若手の会20170131全脳アーキテクチャ若手の会20170131
全脳アーキテクチャ若手の会20170131
Hangyo Masatsugu
 
実践コンピュータビジョン 9章 画像の領域分割
実践コンピュータビジョン 9章 画像の領域分割実践コンピュータビジョン 9章 画像の領域分割
実践コンピュータビジョン 9章 画像の領域分割
yaju88
 
実社会・実環境におけるロボットの機械学習
実社会・実環境におけるロボットの機械学習実社会・実環境におけるロボットの機械学習
実社会・実環境におけるロボットの機械学習
Kuniyuki Takahashi
 
センパイ!このプログラムクラッシュするんですけど。。。
センパイ!このプログラムクラッシュするんですけど。。。センパイ!このプログラムクラッシュするんですけど。。。
センパイ!このプログラムクラッシュするんですけど。。。
yjono Seino
 
TensorFlow on Mobile
TensorFlow on MobileTensorFlow on Mobile
TensorFlow on Mobile
新 古川
 
Scikit-learnを使って 画像分類を行う
Scikit-learnを使って 画像分類を行うScikit-learnを使って 画像分類を行う
Scikit-learnを使って 画像分類を行う
Arata Honda
 
Development and Experiment of Deep Learning with Caffe and maf
Development and Experiment of Deep Learning with Caffe and mafDevelopment and Experiment of Deep Learning with Caffe and maf
Development and Experiment of Deep Learning with Caffe and maf
Kenta Oono
 
cvsaisentan5 Multi View Stereo 3.3
cvsaisentan5 Multi View Stereo 3.3cvsaisentan5 Multi View Stereo 3.3
cvsaisentan5 Multi View Stereo 3.3
Takuya Minagawa
 
Jupyter notebook を用いた文芸的インフラ運用のススメ
Jupyter notebook を用いた文芸的インフラ運用のススメJupyter notebook を用いた文芸的インフラ運用のススメ
Jupyter notebook を用いた文芸的インフラ運用のススメ
No Bu
 
深層学習時代の自然言語処理
深層学習時代の自然言語処理深層学習時代の自然言語処理
深層学習時代の自然言語処理
Yuya Unno
 
予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル
Yuya Unno
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 
機械学習モデルフォーマットの話:さようならPMML、こんにちはPFA
機械学習モデルフォーマットの話:さようならPMML、こんにちはPFA機械学習モデルフォーマットの話:さようならPMML、こんにちはPFA
機械学習モデルフォーマットの話:さようならPMML、こんにちはPFA
Shohei Hido
 
深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション
Yuya Unno
 

What's hot (20)

言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
 
ワークショップ「ゲーム開発チームにおけるパトレット」
ワークショップ「ゲーム開発チームにおけるパトレット」ワークショップ「ゲーム開発チームにおけるパトレット」
ワークショップ「ゲーム開発チームにおけるパトレット」
 
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈	BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
 
NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...
NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...
NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...
 
2015 summercamp 04
2015 summercamp 042015 summercamp 04
2015 summercamp 04
 
やって分かった自動テスト
やって分かった自動テストやって分かった自動テスト
やって分かった自動テスト
 
全脳アーキテクチャ若手の会20170131
全脳アーキテクチャ若手の会20170131全脳アーキテクチャ若手の会20170131
全脳アーキテクチャ若手の会20170131
 
実践コンピュータビジョン 9章 画像の領域分割
実践コンピュータビジョン 9章 画像の領域分割実践コンピュータビジョン 9章 画像の領域分割
実践コンピュータビジョン 9章 画像の領域分割
 
実社会・実環境におけるロボットの機械学習
実社会・実環境におけるロボットの機械学習実社会・実環境におけるロボットの機械学習
実社会・実環境におけるロボットの機械学習
 
センパイ!このプログラムクラッシュするんですけど。。。
センパイ!このプログラムクラッシュするんですけど。。。センパイ!このプログラムクラッシュするんですけど。。。
センパイ!このプログラムクラッシュするんですけど。。。
 
TensorFlow on Mobile
TensorFlow on MobileTensorFlow on Mobile
TensorFlow on Mobile
 
Scikit-learnを使って 画像分類を行う
Scikit-learnを使って 画像分類を行うScikit-learnを使って 画像分類を行う
Scikit-learnを使って 画像分類を行う
 
Development and Experiment of Deep Learning with Caffe and maf
Development and Experiment of Deep Learning with Caffe and mafDevelopment and Experiment of Deep Learning with Caffe and maf
Development and Experiment of Deep Learning with Caffe and maf
 
cvsaisentan5 Multi View Stereo 3.3
cvsaisentan5 Multi View Stereo 3.3cvsaisentan5 Multi View Stereo 3.3
cvsaisentan5 Multi View Stereo 3.3
 
Jupyter notebook を用いた文芸的インフラ運用のススメ
Jupyter notebook を用いた文芸的インフラ運用のススメJupyter notebook を用いた文芸的インフラ運用のススメ
Jupyter notebook を用いた文芸的インフラ運用のススメ
 
深層学習時代の自然言語処理
深層学習時代の自然言語処理深層学習時代の自然言語処理
深層学習時代の自然言語処理
 
予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 
機械学習モデルフォーマットの話:さようならPMML、こんにちはPFA
機械学習モデルフォーマットの話:さようならPMML、こんにちはPFA機械学習モデルフォーマットの話:さようならPMML、こんにちはPFA
機械学習モデルフォーマットの話:さようならPMML、こんにちはPFA
 
深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション
 

Similar to Antプログラミング(1) - プラグイン

機械学習ゴリゴリ派のための数学とPython
機械学習ゴリゴリ派のための数学とPython機械学習ゴリゴリ派のための数学とPython
機械学習ゴリゴリ派のための数学とPython
Kimikazu Kato
 
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
Naoki Matsumoto
 
Rakuten20181027
Rakuten20181027Rakuten20181027
Rakuten20181027
Natsutani Minoru
 
Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話
葛 飛
 
S20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれからS20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれから
Takeshi Akutsu
 
Machine Learning Bootstrap
Machine Learning BootstrapMachine Learning Bootstrap
Machine Learning Bootstrap
Takahiro Kubo
 
TensorFlowで音声認識
TensorFlowで音声認識TensorFlowで音声認識
TensorFlowで音声認識
祐太 上岡
 
Quantum teleportation
Quantum teleportationQuantum teleportation
Quantum teleportation
YuuOkano
 
Rsj2013 sekiyama 3
Rsj2013 sekiyama 3Rsj2013 sekiyama 3
Rsj2013 sekiyama 3openrtm
 
S15 t0 introduction
S15 t0 introductionS15 t0 introduction
S15 t0 introduction
Takeshi Akutsu
 
S28 t0 introduction
S28 t0 introductionS28 t0 introduction
S28 t0 introduction
Takeshi Akutsu
 
Pi4Jで簡単! ラズパイでトイレ空室管理システムを つくってみたよ
Pi4Jで簡単!   ラズパイでトイレ空室管理システムを つくってみたよPi4Jで簡単!   ラズパイでトイレ空室管理システムを つくってみたよ
Pi4Jで簡単! ラズパイでトイレ空室管理システムを つくってみたよ
Yoshio Kajikuri
 
Introduction
IntroductionIntroduction
Introduction
Takeshi Akutsu
 
コンピュータのソフトとハードの境界、そしてIoTへ
コンピュータのソフトとハードの境界、そしてIoTへコンピュータのソフトとハードの境界、そしてIoTへ
コンピュータのソフトとハードの境界、そしてIoTへ
Junichi Akita
 
IoTは怖くない
IoTは怖くないIoTは怖くない
IoTは怖くない
Takeshi Minegishi
 
Sapporo20140709
Sapporo20140709Sapporo20140709
Sapporo20140709
Kimikazu Kato
 
初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptx初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
 
量子オートマトンの計算能力
量子オートマトンの計算能力量子オートマトンの計算能力
量子オートマトンの計算能力YuuOkano
 
S08 t0 orientation
S08 t0 orientationS08 t0 orientation
S08 t0 orientation
Takeshi Akutsu
 

Similar to Antプログラミング(1) - プラグイン (20)

機械学習ゴリゴリ派のための数学とPython
機械学習ゴリゴリ派のための数学とPython機械学習ゴリゴリ派のための数学とPython
機械学習ゴリゴリ派のための数学とPython
 
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
 
Why python
Why pythonWhy python
Why python
 
Rakuten20181027
Rakuten20181027Rakuten20181027
Rakuten20181027
 
Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話
 
S20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれからS20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれから
 
Machine Learning Bootstrap
Machine Learning BootstrapMachine Learning Bootstrap
Machine Learning Bootstrap
 
TensorFlowで音声認識
TensorFlowで音声認識TensorFlowで音声認識
TensorFlowで音声認識
 
Quantum teleportation
Quantum teleportationQuantum teleportation
Quantum teleportation
 
Rsj2013 sekiyama 3
Rsj2013 sekiyama 3Rsj2013 sekiyama 3
Rsj2013 sekiyama 3
 
S15 t0 introduction
S15 t0 introductionS15 t0 introduction
S15 t0 introduction
 
S28 t0 introduction
S28 t0 introductionS28 t0 introduction
S28 t0 introduction
 
Pi4Jで簡単! ラズパイでトイレ空室管理システムを つくってみたよ
Pi4Jで簡単!   ラズパイでトイレ空室管理システムを つくってみたよPi4Jで簡単!   ラズパイでトイレ空室管理システムを つくってみたよ
Pi4Jで簡単! ラズパイでトイレ空室管理システムを つくってみたよ
 
Introduction
IntroductionIntroduction
Introduction
 
コンピュータのソフトとハードの境界、そしてIoTへ
コンピュータのソフトとハードの境界、そしてIoTへコンピュータのソフトとハードの境界、そしてIoTへ
コンピュータのソフトとハードの境界、そしてIoTへ
 
IoTは怖くない
IoTは怖くないIoTは怖くない
IoTは怖くない
 
Sapporo20140709
Sapporo20140709Sapporo20140709
Sapporo20140709
 
初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptx初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptx
 
量子オートマトンの計算能力
量子オートマトンの計算能力量子オートマトンの計算能力
量子オートマトンの計算能力
 
S08 t0 orientation
S08 t0 orientationS08 t0 orientation
S08 t0 orientation
 

More from 隆行 神戸

ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計
隆行 神戸
 
オレオレ言語実装に役立つプル型ASTウォーカーAPI
オレオレ言語実装に役立つプル型ASTウォーカーAPIオレオレ言語実装に役立つプル型ASTウォーカーAPI
オレオレ言語実装に役立つプル型ASTウォーカーAPI
隆行 神戸
 
XMPPの紹介
XMPPの紹介XMPPの紹介
XMPPの紹介
隆行 神戸
 
TRPGオンラインセッション環境とルール&シナリオ記述言語 その2
TRPGオンラインセッション環境とルール&シナリオ記述言語 その2TRPGオンラインセッション環境とルール&シナリオ記述言語 その2
TRPGオンラインセッション環境とルール&シナリオ記述言語 その2
隆行 神戸
 
Smack API 3.4.1 パケット処理時の挙動メモ
Smack API 3.4.1 パケット処理時の挙動メモSmack API 3.4.1 パケット処理時の挙動メモ
Smack API 3.4.1 パケット処理時の挙動メモ
隆行 神戸
 
TRPGオンラインセッション環境とルール&シナリオ記述言語
TRPGオンラインセッション環境とルール&シナリオ記述言語TRPGオンラインセッション環境とルール&シナリオ記述言語
TRPGオンラインセッション環境とルール&シナリオ記述言語
隆行 神戸
 

More from 隆行 神戸 (6)

ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計
 
オレオレ言語実装に役立つプル型ASTウォーカーAPI
オレオレ言語実装に役立つプル型ASTウォーカーAPIオレオレ言語実装に役立つプル型ASTウォーカーAPI
オレオレ言語実装に役立つプル型ASTウォーカーAPI
 
XMPPの紹介
XMPPの紹介XMPPの紹介
XMPPの紹介
 
TRPGオンラインセッション環境とルール&シナリオ記述言語 その2
TRPGオンラインセッション環境とルール&シナリオ記述言語 その2TRPGオンラインセッション環境とルール&シナリオ記述言語 その2
TRPGオンラインセッション環境とルール&シナリオ記述言語 その2
 
Smack API 3.4.1 パケット処理時の挙動メモ
Smack API 3.4.1 パケット処理時の挙動メモSmack API 3.4.1 パケット処理時の挙動メモ
Smack API 3.4.1 パケット処理時の挙動メモ
 
TRPGオンラインセッション環境とルール&シナリオ記述言語
TRPGオンラインセッション環境とルール&シナリオ記述言語TRPGオンラインセッション環境とルール&シナリオ記述言語
TRPGオンラインセッション環境とルール&シナリオ記述言語
 

Antプログラミング(1) - プラグイン

Editor's Notes

  1. Trebuchetの構成は図のようになります。 ・実行制御系  GUI(Eclipse IDEのプラグイン)→プロジェクト・ボット(プロジェクト・ビルダ上)→バックエンドボット(バックエンド上)  プロジェクトボットはANTと協働   常時動いているのはXMPPサーバだけ ユーザの管理も担う プロジェクト・ビルダやバックエンドは必要に応じてVM管理コンポーネントが起動 ・ファイル共有系 ユーザ・マシンとプロジェクト・ビルダ間は分散ビルド・ミドルウェアが責任をもって同期 クラウド上のプロジェクト・ビルダ&バックエンド間はネットワーク・ファイルシステム ・管理コンソール