SlideShare uma empresa Scribd logo
1 de 16
テンプレート・エンジンVelocity
2016/04/22 Javaツール勉強会資料
QTS / ISIT 神戸隆行(かんど たかゆき)
自己紹介 - 全般
2016/04/22Javaツール勉強会2
 九州先端科学技術研究所(ISIT)の方から来ました
 職場はそこだけど所属はQuoliarc Technology Solutions Ltd.
 チーフソフトウェアエンジニア(…といっても従業員は1人、院の指導教官
がCTO)
 数学ソフトウェア(数値解析、数式処理)、プログラム最適化、動的再構
成可能プロセッサ向けコンパイラと来て今はPTaaSを作っています
 連絡先:
 Twitter: @ChihiroShiiji
 Facebook: takayuki_kando
 mail: kando@nerimadors.or.jp
 趣味プロジェクト: TRPGオンラインセッションツールの開発
 趣味: イラスト描き、コスプレ?
自己紹介 - Velocityとの関わり
2016/04/22Javaツール勉強会3
 PTaaS (Platform for TaaS)
 開発ツールをネットワークのサービスとして提供する(Tool as
a Service)ためのプラットフォーム
 技術的には「XMPPベースのマルチユーザ遠隔分散ビルド」
システム
 Velocityの用途
 分散ビルドシステムがツールのために動的に起動するVM設
定用シェルスクリプトの生成
 テスト環境用Antファイルの生成
本日のお題
4
 テンプレート・エンジンの位置づけと使いどころ
 Velocityの紹介
 サンプル
 Ant(XML)ファイルの生成
 テンプレートをリソース内に同梱する
 パラメータの受け渡し
 パラメータの埋め込み
 初期化シェルスクリプトの生成
 制御命令の使用例
 Velocityの構文の紹介
 嵌りどころ
2016/04/22Javaツール勉強会
テキスト・ファイルの生成
5
 プログラムの持つデータからテキストファイルを作る
 用途
 データ受け渡しや保存のため
 テキストにしておくと検証やテストデータの作成が簡単
 様々な環境の間でデータ交換ができる
 可視化のため人間可読な形式で出力する
 例:
 近年のWebアプリケーションで生成する機会は多い
 HTML、CSS、XML、YAML、JSON
 伝統的には言語処理系の出力段で必要とされてきた
 コンパイラ(アセンブリ・コード出力)
 トランスレータ(変換後ソースコードの出力)
 マクロ・プロセッサ(TeXやCプリプロセッサの展開後出力)
2016/04/22Javaツール勉強会
ファイルの生成の方式(1)
2016/04/22Javaツール勉強会6
 ツリー構造とプリティプリンタ
 適用局面:
 構造が前もってできている
 例:
 XML/HTML文書のDOMとプリティプリンタ
 MapやListによるオブジェクト・ツリーとYAMLやJSONライブラリの出力メソッド
 イベント投入方式(仮名)
 適用局面:
 構造は有るがファイルの全貌が見えない
 例:
 各種ロガー
 XML Pull parserのプリティプリンタ
 テンプレート方式
 適用局面:
 構造は気にせずテンプレートとなる文書の部分改変で作成できる
 例:
 Velocity
 JSP(Java Server Page)
ファイルの生成の方式(2)
2016/04/22Javaツール勉強会7
 前頁の組み合わせもある
 ツリー構造の出力の実装にイベント投入方式や微小なテンプ
レート方式を利用するようなこともある
 String.format()は微小なテンプレートと見ることもできる
代表的なファイルの生成の方式と得失
ツリー構造とプリティプリンタ テンプレート・エンジン
8
 プログラム内のデータが持
つオブジェクトのツリー構造
とそれを構造化文書として
整形出力する出力ルーチン
(プリティプリンタ)
 得失
 ツリー構造がある場合
 様々な構造をガッツリ作る場
合に利点
 ツリー構造を組み立てるのが
結構手間
 「テンプレート」となる文書の
一部に値を埋め込んだり、
条件分岐や反復を埋め込
んで文書の一部を条件に応
じて変形して出力する
 得失
 ツリー構造がない場合でも利
用し易い
 パラメタの埋め込みなど一部
だけを改変する場合に特に便
利
 生成するごとに構造が大きく
変わる場合には却って手間
2016/04/22Javaツール勉強会
Apache Velocity
9
 Javaで割と古参の汎用テンプレートエンジン
 公式サイト
 Apache Velocity Site - The Apache Velocity Project
 http://velocity.apache.org/
 2016/04/21現在、最新版は1.7(2010年)
 Java SE 8でももちろん動く
 明記されてないようだがJava SE 4以上が動作条件ではないか?
 依存ライブラリ
 Apache Commons
 Collections
 https://commons.apache.org/proper/commons-collections/
 Lang
 https://commons.apache.org/proper/commons-lang/
2016/04/22Javaツール勉強会
Velocity Engine
Velocityの処理の流れ
2016/04/22Javaツール勉強会10
VTLで記述される
テンプレート
VelocityContex
t
(実態は
<名前→オブ
ジェクト>マッ
プ)
Template
(コンパイル済
テンプレート)
マージ処理 出力
テンプレート
コンパイラ
プログラムから
データ供給
VTL(Velocity Template Language)の例
11
<HTML>
<BODY>
Hello $customer.Name!
<table>
#foreach( $mud in $mudsOnSpecial )
#if ( $customer.hasPurchased($mud) )
<tr>
<td>
$flogger.getPromo( $mud )
</td>
</tr>
#end
#end
</table>
<!-- 後略 -->
Apache Velocity User Guide
http://velocity.apache.org/engine/devel/user-guide.html#What_is_Velocity より
2016/04/22Javaツール勉強会
• #~(改行)は処理命令(制御文など)
• ##~(改行)と#*~*#はコメント
• $名前、${名前}はオブジェクト参照
• 処理命令と参照以外はそのまま出力される
サンプル1
Ant(XML)ファイルの生成
2016/04/22Javaツール勉強会12
 Gist:
 https://gist.github.com/TakayukiKando/e6a49a4c5ea7e6
95a5eb03757ef2458d
 利用機能
 テンプレートをリソース内に同梱する
 パラメータの受け渡し
 パラメータの埋め込み
 利用動機
 極一部のパラメタしか置き変えない
 将来置き換えるパラメタは増えるかも
サンプル2
初期化シェルスクリプトの生成
2016/04/22Javaツール勉強会13
 Gist:
 https://gist.github.com/TakayukiKando/cc504de4e81b273af12
59ed2ea6fb3b4
 利用機能
 行コメント##
 制御命令(#set, #parse, #if, #foreach)
 参照オブジェクトのメソッド呼び出し
 利用動機
 パラメータが変っても変わらない決まり切った構文が結構多い
 最初は自前でスクリプト生成Factory Objectパターンで実装していたが
メンテナンスが全然楽でなかったので移行
 OS固有の仕組みをテンプレートにカプセル化
 テンプレート差し替えで複数のOSに対応できる
 最初はFactory Objectのパラメタにしようと思っていたがパラメタだけで
済まなかった
Velocityハマりポイント
14
 Apache Commonsライブラリに依存している
 collectionsとlang
 変数はVelocityContextを通じて明示的に渡す必要があ
る
 渡し忘れに注意
 オブジェクトのプロパティ参照構文がオブジェクトのフィー
ルド参照に見えるが実際はgetter呼び出しの略記
 構文が似ているので油断しているとついフィールドを参照しよ
うとしてしまう
2016/04/22Javaツール勉強会
まとめ
15
 テンプレート・エンジンの位置づけと使いどころ
 構造がない文書
 構造がある範囲で一定している文書
 改変が一部だけに限られる文書
 Velocityの紹介
 サンプル
1. Ant(XML)ファイルの生成
 テンプレートをリソース内に同梱する
 パラメータの受け渡し
 パラメータの埋め込み
2. 初期化シェルスクリプトの生成
 制御命令の使用例
 Velocityの構文の紹介
 ハマりどころ
2016/04/22Javaツール勉強会
参考文献
16
 User Guide(Ver.1.7)
 http://velocity.apache.org/engine/devel/user-guide.html
 VTL Reference(Ver.1.7)
 http://velocity.apache.org/engine/devel/vtl-reference-guide.html
 Velocity | TECHSCORE(テックスコア)
 http://www.techscore.com/tech/Java/ApacheJakarta/Velocity/in
dex/
 ユーザ・ガイド(Ver.1.4)日本語訳
 http://www.jajakarta.org/velocity/velocity-1.4/docs-ja/user-
guide.html
 VTLリファレンス(Ver.1.4)日本語訳
 http://www.jajakarta.org/velocity/velocity-1.4/docs-ja/vtl-
reference-guide.html
2016/04/22Javaツール勉強会

Mais conteúdo relacionado

Mais procurados

🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)
🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)
🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)Toshinori Sato
 
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 mafKenta Oono
 
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data scienceTakami Sato
 
fastTextの実装を見てみた
fastTextの実装を見てみたfastTextの実装を見てみた
fastTextの実装を見てみたYoshihiko Shiraki
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplibShinya Okano
 
人工知能ハンズオン
人工知能ハンズオン人工知能ハンズオン
人工知能ハンズオンyaju88
 
Tensor flow勉強会3
Tensor flow勉強会3Tensor flow勉強会3
Tensor flow勉強会3tak9029
 
実社会・実環境におけるロボットの機械学習
実社会・実環境におけるロボットの機械学習実社会・実環境におけるロボットの機械学習
実社会・実環境におけるロボットの機械学習Kuniyuki Takahashi
 
PHP でファイルシステムを作ろう
PHP でファイルシステムを作ろうPHP でファイルシステムを作ろう
PHP でファイルシステムを作ろうshinjiigarashi
 
TensorFlowによるFizz Buzz
TensorFlowによるFizz BuzzTensorFlowによるFizz Buzz
TensorFlowによるFizz Buzzyaju88
 
形態素解析器の比較できるPythonパッケージつくった話
形態素解析器の比較できるPythonパッケージつくった話形態素解析器の比較できるPythonパッケージつくった話
形態素解析器の比較できるPythonパッケージつくった話Kensuke Mitsuzawa
 
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈	BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈 順也 山口
 
bottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアルbottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアルSatoshi Yamada
 
Pythonで業務改善をしたときにあった問題(ライト版)
Pythonで業務改善をしたときにあった問題(ライト版)Pythonで業務改善をしたときにあった問題(ライト版)
Pythonで業務改善をしたときにあった問題(ライト版)Satoshi Yamada
 
プログラミング言語とシステムデザイン
プログラミング言語とシステムデザインプログラミング言語とシステムデザイン
プログラミング言語とシステムデザインTsutomu Yano
 
画像処理でのPythonの利用
画像処理でのPythonの利用画像処理でのPythonの利用
画像処理でのPythonの利用Yasutomo Kawanishi
 
S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6Takeshi Akutsu
 

Mais procurados (20)

🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)
🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)
🍻(Beer Mug)の読み方を考える(mecab-ipadic-NEologdのUnicode 絵文字対応)
 
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
 
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data science
 
fastTextの実装を見てみた
fastTextの実装を見てみたfastTextの実装を見てみた
fastTextの実装を見てみた
 
14対話bot発表資料
14対話bot発表資料14対話bot発表資料
14対話bot発表資料
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplib
 
人工知能ハンズオン
人工知能ハンズオン人工知能ハンズオン
人工知能ハンズオン
 
Tensor flow勉強会3
Tensor flow勉強会3Tensor flow勉強会3
Tensor flow勉強会3
 
実社会・実環境におけるロボットの機械学習
実社会・実環境におけるロボットの機械学習実社会・実環境におけるロボットの機械学習
実社会・実環境におけるロボットの機械学習
 
S18 t0 introduction
S18 t0 introductionS18 t0 introduction
S18 t0 introduction
 
PHP でファイルシステムを作ろう
PHP でファイルシステムを作ろうPHP でファイルシステムを作ろう
PHP でファイルシステムを作ろう
 
TensorFlowによるFizz Buzz
TensorFlowによるFizz BuzzTensorFlowによるFizz Buzz
TensorFlowによるFizz Buzz
 
形態素解析器の比較できるPythonパッケージつくった話
形態素解析器の比較できるPythonパッケージつくった話形態素解析器の比較できるPythonパッケージつくった話
形態素解析器の比較できるPythonパッケージつくった話
 
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈	BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
 
S15 t0 introduction
S15 t0 introductionS15 t0 introduction
S15 t0 introduction
 
bottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアルbottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアル
 
Pythonで業務改善をしたときにあった問題(ライト版)
Pythonで業務改善をしたときにあった問題(ライト版)Pythonで業務改善をしたときにあった問題(ライト版)
Pythonで業務改善をしたときにあった問題(ライト版)
 
プログラミング言語とシステムデザイン
プログラミング言語とシステムデザインプログラミング言語とシステムデザイン
プログラミング言語とシステムデザイン
 
画像処理でのPythonの利用
画像処理でのPythonの利用画像処理でのPythonの利用
画像処理でのPythonの利用
 
S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6
 

Destaque

テンプレートエンジンの話 #jjug
テンプレートエンジンの話 #jjugテンプレートエンジンの話 #jjug
テンプレートエンジンの話 #jjugYusuke Yamamoto
 
オレオレ言語実装に役立つプル型ASTウォーカーAPI
オレオレ言語実装に役立つプル型ASTウォーカーAPIオレオレ言語実装に役立つプル型ASTウォーカーAPI
オレオレ言語実装に役立つプル型ASTウォーカーAPI隆行 神戸
 
ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計隆行 神戸
 
Mustache入門
Mustache入門Mustache入門
Mustache入門ina job
 
Thymeleafでハマったこと
ThymeleafでハマったことThymeleafでハマったこと
Thymeleafでハマったことeiryu
 
Thymeleafのすすめ
ThymeleafのすすめThymeleafのすすめ
Thymeleafのすすめeiryu
 

Destaque (7)

テンプレートエンジンの話 #jjug
テンプレートエンジンの話 #jjugテンプレートエンジンの話 #jjug
テンプレートエンジンの話 #jjug
 
オレオレ言語実装に役立つプル型ASTウォーカーAPI
オレオレ言語実装に役立つプル型ASTウォーカーAPIオレオレ言語実装に役立つプル型ASTウォーカーAPI
オレオレ言語実装に役立つプル型ASTウォーカーAPI
 
ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計
 
Mustache入門
Mustache入門Mustache入門
Mustache入門
 
Thymeleafでハマったこと
ThymeleafでハマったことThymeleafでハマったこと
Thymeleafでハマったこと
 
Thymeleafのすすめ
ThymeleafのすすめThymeleafのすすめ
Thymeleafのすすめ
 
Kancolle
KancolleKancolle
Kancolle
 

Semelhante a テンプレート・エンジンVelocity

Issueの書き方と伝え方
Issueの書き方と伝え方Issueの書き方と伝え方
Issueの書き方と伝え方Rina Fukuda
 
Machine Learning Bootstrap
Machine Learning BootstrapMachine Learning Bootstrap
Machine Learning BootstrapTakahiro Kubo
 
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装貴志 上坂
 
優れた問いを見つける(中京大学講演)
優れた問いを見つける(中京大学講演)優れた問いを見つける(中京大学講演)
優れた問いを見つける(中京大学講演)cvpaper. challenge
 
TOPPERSプロジェクト紹介 OSC2016京都
TOPPERSプロジェクト紹介 OSC2016京都TOPPERSプロジェクト紹介 OSC2016京都
TOPPERSプロジェクト紹介 OSC2016京都Takuya Azumi
 
.net micro framework for toppers
.net micro framework for toppers.net micro framework for toppers
.net micro framework for toppersKiyoshi Ogawa
 
ペアワークで持続的に成長するチームになろう!
ペアワークで持続的に成長するチームになろう!ペアワークで持続的に成長するチームになろう!
ペアワークで持続的に成長するチームになろう!Shinya Nakajima
 
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業株式会社 オープンソース・ワークショップ
 
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業株式会社 オープンソース・ワークショップ
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
SIer出身のエンジニアが 機械学習を取り入れた ASPサービス開発で学んだこと
SIer出身のエンジニアが 機械学習を取り入れた ASPサービス開発で学んだことSIer出身のエンジニアが 機械学習を取り入れた ASPサービス開発で学んだこと
SIer出身のエンジニアが 機械学習を取り入れた ASPサービス開発で学んだことyagizo
 
TensorFlowで音声認識
TensorFlowで音声認識TensorFlowで音声認識
TensorFlowで音声認識祐太 上岡
 
エンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LT
エンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LTエンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LT
エンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LTTomoyuki Sugita
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けてHironori Washizaki
 
2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料
2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料
2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料BrainPad Inc.
 
Tableau人材を育てるには? ~truestar文化に学ぶエフォートレスな勉強会のすゝめ~
Tableau人材を育てるには? ~truestar文化に学ぶエフォートレスな勉強会のすゝめ~Tableau人材を育てるには? ~truestar文化に学ぶエフォートレスな勉強会のすゝめ~
Tableau人材を育てるには? ~truestar文化に学ぶエフォートレスな勉強会のすゝめ~AkiKusaka
 
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズToppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズKazuhiro Takahashi
 
20200115SaaS研究会LT
20200115SaaS研究会LT20200115SaaS研究会LT
20200115SaaS研究会LTIkumi Itokawa
 

Semelhante a テンプレート・エンジンVelocity (20)

Issueの書き方と伝え方
Issueの書き方と伝え方Issueの書き方と伝え方
Issueの書き方と伝え方
 
Machine Learning Bootstrap
Machine Learning BootstrapMachine Learning Bootstrap
Machine Learning Bootstrap
 
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
 
優れた問いを見つける(中京大学講演)
優れた問いを見つける(中京大学講演)優れた問いを見つける(中京大学講演)
優れた問いを見つける(中京大学講演)
 
TOPPERSプロジェクト紹介 OSC2016京都
TOPPERSプロジェクト紹介 OSC2016京都TOPPERSプロジェクト紹介 OSC2016京都
TOPPERSプロジェクト紹介 OSC2016京都
 
.net micro framework for toppers
.net micro framework for toppers.net micro framework for toppers
.net micro framework for toppers
 
ペアワークで持続的に成長するチームになろう!
ペアワークで持続的に成長するチームになろう!ペアワークで持続的に成長するチームになろう!
ペアワークで持続的に成長するチームになろう!
 
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
 
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
ドライバへのETWの埋め込み
ドライバへのETWの埋め込みドライバへのETWの埋め込み
ドライバへのETWの埋め込み
 
SIer出身のエンジニアが 機械学習を取り入れた ASPサービス開発で学んだこと
SIer出身のエンジニアが 機械学習を取り入れた ASPサービス開発で学んだことSIer出身のエンジニアが 機械学習を取り入れた ASPサービス開発で学んだこと
SIer出身のエンジニアが 機械学習を取り入れた ASPサービス開発で学んだこと
 
TensorFlowで音声認識
TensorFlowで音声認識TensorFlowで音声認識
TensorFlowで音声認識
 
エンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LT
エンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LTエンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LT
エンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LT
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
 
2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料
2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料
2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料
 
Tableau人材を育てるには? ~truestar文化に学ぶエフォートレスな勉強会のすゝめ~
Tableau人材を育てるには? ~truestar文化に学ぶエフォートレスな勉強会のすゝめ~Tableau人材を育てるには? ~truestar文化に学ぶエフォートレスな勉強会のすゝめ~
Tableau人材を育てるには? ~truestar文化に学ぶエフォートレスな勉強会のすゝめ~
 
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズToppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
 
20200115SaaS研究会LT
20200115SaaS研究会LT20200115SaaS研究会LT
20200115SaaS研究会LT
 
IkaLog_FPGAStartup1
IkaLog_FPGAStartup1IkaLog_FPGAStartup1
IkaLog_FPGAStartup1
 

テンプレート・エンジンVelocity