SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
Javaプログラマのための
ミニ四駆再入門
#yonayonajavafx
@kiy0taka
告知
富士通乾電池提供
ミニ四駆ジャパンカップ2014
• 10/5(日) 大阪大会2
• 京セラドーム大阪・9Fスカイホール
• たぶん8:00から受付開始
自己紹介
•奥 清隆(おく きよたか)
• id:kiy0taka、@kiy0taka
•JGGUG関西支部
•関西Javaエンジニアの会
•株式会社ニューキャスト所属
Mr. Java Day Tokyo
ミニ四駆の話をと言われて
https://twitter.com/skrb/status/484356816084926465
富士通乾電池提供
ミニ四駆ジャパンカップ
2014
ジャパンカップ
• 2012年にミニ四駆30周年を記念して復活!
• 第三次ブームのきっかけになった
• 昨年の動員数は2万人。
• 全盛期1996年は30万人超
• 安定の富士通乾電池提供
• 6月22日(日) 東京大会1 品川シーサイドフォレスト・オーバルガーデン(東京都品川区)
• 6月29日(日) 大阪大会1 京セラドーム大阪・9Fスカイホール(大阪市西区)
• 7月 6日(日) 愛知大会 愛・地球博記念公園 地球市民交流センター(愛知県長久手市)
• 7月13日(日) 群馬大会 ニューサンピア高崎・多目的ホール(群馬県高崎市)
• 7月20日(日) 静岡大会 ツインメッセ静岡(静岡県静岡市)
• 8月 3日(日) 愛媛大会 今治港特設会場(愛媛県今治市)
• 8月17日(日) 仙台大会 サンフェスタ・1Fイベントホール(仙台市若林区)
• 8月24日(日) 東京大会2 品川シーサイドフォレスト・オーバルガーデン(東京都品川区)
• 9月 7日(日) 広島大会 広島マリーナホップ(広島市西区)
• 9月14日(日) 北海道大会 新千歳空港 イベントホール翔(北海道千歳市)
• 9月21日(日) 福岡大会 かしいかえん シルバニアガーデン 大テント(福岡市東区)
• 9月28日(日) 東京大会3 東京ビッグサイト(東京都江東区)
• 10月5日(日) 大阪大会2 京セラドーム大阪・9Fスカイホール(大阪市西区)
• 10月12日(日) 岡山大会 岡山おもちゃ王国(岡山県玉野市)
• 10月19日(日) 東京大会4・チャンピオン決定戦 MEGA WEB(東京都江東区)
参加方法
• 昔のように事前抽選はない
• 当日参加
• でも遅くなると参加できない
• 通称:0次予選
クラス
• ジュニアクラス(中学生以下)
• オープンクラス(誰でも)
• チャンピオンズ(公式大会優勝者)
• ファミリークラス(小学校3年生まで、または共
同製作した中学3年生までの親子)
• ファミリークラスは1次予選のみ
シード代表決定戦
• 全国各地のミニ四駆ステーションで行われる大
会で優勝すると2次予選から参加できる
• お近くのミニ四駆ステーションへ
• http://www.tamiya.com/japan/mini4wd/
station_race/jcup2014_0603.pdf
ミニ四駆を始めるため
に必要な物
はじめるために必要な物
• ミニ四駆
• パーツ
• 工具
• コース
• 友達
シャーシ
• http://www.tamiya.com/japan/cms/
newstopics/2276-mini4chassis.html
• 14種類?
• タイプ1∼3シャーシは手に入らない
• とりあえずMAシャーシから始めればいいと思う
モーター
• http://www.tamiya.com/japan/download/
pdf/mini4wd/parts/mini4wd_motor.pdf
• たくさんある
• ハイパーミニ/ハイパーダッシュなんてもうない
• MA/MSシャーシは両軸モーターなので間違えな
いように
パーツ
• ありすぎる
• とりあえずモーター全種類買っとけ
• あとファーストトライパーツセットとか
ステー/プレート
• 強度を上げたり、ローラーベースを広げたりする
• 加工して自作パーツを作る
ブレーキ
• レーンチェンジャーやドラゴンバックでコースア
ウトしないように減速させる
• 最近のモーター/コースでは必須アイテム
ダンパー
• ジャンプして着地後に衝撃を吸収させる
• ショック吸収タイヤなんて今や夢パーツ扱い
その他のパーツ
• パーツについてはきりがないのであとはググれ
• ネットで買うならヨドバシ.comが最強
• パーツ1つでも送料無料で翌日配達
工具
• ドライバー
• ボックスドライバー
• ニッパー
• ペンチ
• ヤスリ
• ピンセット
• デザインカッター
• ノギス
• ホビールーター
コース
• JCJC (安いとこで14Kぐらい)
• オーバルホームサーキット (8Kぐらい)
• もしくは近くのミニ四駆ステーションへ
• レンタルできるが送料考えると割に合わない
#ミニ四駆を走らせたい
お客様の中に、会社にコースあるって方はいませんか?
おまけ
JavaFX 3DとJBulletで
物理演算の話
∼ミニ四駆シミュレータを作りたい∼
ミニ四駆シミュレータ
https://www.youtube.com/watch?v=Ag16KQ7YrSg
JavaFX 3D
• javafx.scene.shape.Shape3D
• Box/Cylinder/Sphere/MeshView
物理演算エンジン
物理演算エンジン(ぶつりえんざんエンジン、Physics
engine)とは、質量・速度・摩擦・風といった、古典力
学的な法則をシミュレーションするコンピュータのソフ
トウェアである。多くの場合、ミドルウェアライブラリ
を指す。 略して物理演算、物理エンジン、Physicsとも
言う。
http://ja.wikipedia.org/wiki/物理演算エンジン
http://www.nicovideo.jp/tag/物理演算
JBullet
• Bullet Physics Library (http://bulletphysics.org/
wordpress/) のJava版
• 本家の最新版は2.83、バージョン3系が開発中らしい
• JBulletは本家の2.72がベース
• 開発は2010年で止まってるっぽい
ざっくりとした使い方
• DynamicsWorldを作る
• 物体をDynamicsWorldに入れる
• DynamicsWorldにシミュレートさせる
• 描画するのはBulletの仕事ではないので自前で用
意する → JavaFX 3D
JBulletでHelloWorld
HelloWorld.java
• JBulletのサンプルについてる
• 球体が自由落下して地面に跳ね返る
• 画面はないので球体の座標が標準出力に出るだけ
DynamicsWorld
// おまじない!
CollisionConfiguration collisionConfiguration = new DefaultCollisionConfiguration();
CollisionDispatcher dispatcher = new CollisionDispatcher(collisionConfiguration);!
// 物理世界の大きさ!
Vector3f worldAabbMin = new Vector3f(-10000, -10000, -10000);!
Vector3f worldAabbMax = new Vector3f(10000, 10000, 10000);!
// 物理世界に存在できる物体の数!
int maxProxies = 1024;!
AxisSweep3 overlappingPairCache = new AxisSweep3(worldAabbMin, worldAabbMax,
maxProxies);!
// ソルバーなにそれおいしいの!
SequentialImpulseConstraintSolver solver = new SequentialImpulseConstraintSolver();!
// 物理世界!
DiscreteDynamicsWorld dynamicsWorld = new DiscreteDynamicsWorld(dispatcher,
overlappingPairCache, solver, collisionConfiguration);!
// 重力!
dynamicsWorld.setGravity(new Vector3f(0, -9.8, 0));
地面を作る
// 地面の形状(Box)!
CollisionShape groundShape = new BoxShape(new Vector3f(50.f, 50.f, 50.f));!
!
// 地面の位置!
Transform groundTransform = new Transform();!
groundTransform.setIdentity();!
groundTransform.origin.set(new Vector3f(0.f, -56.f, 0.f));!
!
// モーションステート(これ重要)!
DefaultMotionState myMotionState = new DefaultMotionState(groundTransform);!
!
// 質量(単位はKg、0にすると無限大)!
float mass = 0f;!
// 地面の物理的なあれ!
RigidBodyConstructionInfo rbInfo = new RigidBodyConstructionInfo(mass,
myMotionState, groundShape, localInertia);!
RigidBody body = new RigidBody(rbInfo);!
!
// 力学世界につっこむ!
dynamicsWorld.addRigidBody(body);
球体を作る
// 球体!
CollisionShape colShape = new SphereShape(1.f);!
collisionShapes.add(colShape);!
!
Transform startTransform = new Transform();!
startTransform.setIdentity();!
!
// 質量1kg!
float mass = 1f;!
!
// 初期位置設定!
startTransform.origin.set(new Vector3f(2, 10, 0));!
!
DefaultMotionState myMotionState = new DefaultMotionState(startTransform);!
!
RigidBodyConstructionInfo rbInfo = new RigidBodyConstructionInfo(mass,
myMotionState, colShape, localInertia);!
RigidBody body = new RigidBody(rbInfo);!
!
dynamicsWorld.addRigidBody(body);
シミュレートする
for (int i=0; i<100; i++) {!
dynamicsWorld.stepSimulation(1.f / 60.f, 10);!
...!
}!
JBullet HelloWorld
+
JavaFX 3D
JBullet + JavaFX 3D
• 力学世界に入れてる物体をJavaFX 3Dで描画する
• JBulletのCollisionShapeと同じ形状/位置/姿勢の
ものをJavaFXのShape3Dで作る
• シミュレートして、それぞれの物体の位置/姿勢を
JavaFXのノードに適用する
Node CollisionShape
地面を作る(JBullet)
// 地面の形状(Box)!
CollisionShape groundShape = new BoxShape(new Vector3f(50.f, 50.f, 50.f));!
!
// 地面の位置!
Transform groundTransform = new Transform();!
groundTransform.setIdentity();!
groundTransform.origin.set(new Vector3f(0.f, -56.f, 0.f));!
!
// モーションステート(これ重要)!
DefaultMotionState myMotionState = new DefaultMotionState(groundTransform);!
!
// 質量(単位はKg、0にすると無限大)!
float mass = 0f;!
// 地面の物理的なあれ!
RigidBodyConstructionInfo rbInfo = new RigidBodyConstructionInfo(mass,
myMotionState, groundShape, localInertia);!
RigidBody body = new RigidBody(rbInfo);!
!
// 力学世界につっこむ!
dynamicsWorld.addRigidBody(body);
地面を作る(JavaFX)
// 地面の形状(Box)!
Box groundNode = new Box(100, 100, 100);!
!
// 地面の位置!
boxNode.setTranslateX(0);!
boxNode.setTranslateY(-56);!
boxNode.setTranslateZ(0);
JavaFXの座標について
3D を行うのに欠かせないのが、座標です。もちろん、JavaFX でも 3 次元の座標
を扱うのですが、ちょっとだけ注意が必要です。
というのも、通常の 3D の CG Tool は y 軸が数学と同じで上方向を向いています。
ところが、JavaFX では 2D と 3D を区別なく使えるように
しているためなのか、y 軸が下を向いています。
ツールで作ったモデルをインポートしたら、なぜかモデルが下を向いていたという
こともあるので、注意が必要です。
もし、下向きの y 軸がいやなのであれば、z 軸を中心にし
て 180 度回転させます。
JavaFX 8 で 3D その 1 - JavaFX in the Box
http://skrb.hatenablog.com/entry/2013/12/25/002250
座標
JavaFX JBullet
x軸に180 回転してやる
地面を作る(JavaFX)
// 親ノードをx軸に180°回転!
Group root = new Group();!
root.setRotationAxis(new Point3D(1, 0, 0));!
root.setRotate(180);!
!
root.getChildren().add(boxNode);
Nodeの変換
JavaFX JBullet
Box BoxShape
Cylinder CylinderShape
Sphere SphereShape
MeshView BvhTriangleMeshShape
Group CompoundShape
MotionState
地面を作る(JBullet)
// 地面の形状(Box)!
CollisionShape groundShape = new BoxShape(new Vector3f(50.f, 50.f, 50.f));!
!
// 地面の位置!
Transform groundTransform = new Transform();!
groundTransform.setIdentity();!
groundTransform.origin.set(new Vector3f(0.f, -56.f, 0.f));!
!
// モーションステート(これ重要)!
DefaultMotionState myMotionState = new DefaultMotionState(groundTransform);!
!
// 質量(単位はKg、0にすると無限大)!
float mass = 0f;!
// 地面の物理的なあれ!
RigidBodyConstructionInfo rbInfo = new RigidBodyConstructionInfo(mass,
myMotionState, groundShape, localInertia);!
RigidBody body = new RigidBody(rbInfo);!
!
// 力学世界につっこむ!
dynamicsWorld.addRigidBody(body);
MotionState
• dynamicsWorld.stepSimulation()を実行すると
それぞれの物体の位置とかを計算してくれる
• シミュレートごとに各物体の計算結果が
MotionStateのsetWorldTransform()で渡され
る
• DefaultMotionStateクラスを継承してJavaFX
用にあれしてやればいい
JavaFXMotionState
@Override!
public void setWorldTransform(Transform centerOfMassWorldTrans) {!
super.setWorldTransform(centerOfMassWorldTrans);!
!
Quat4f rotation = new Quat4f();!
centerOfMassWorldTrans.getRotation(rotation);!
double rad = 2 * Math.acos(rotation.w);!
!
Platform.runLater(() -> {!
node.translateXProperty().set(centerOfMassWorldTrans.origin.x);!
node.translateYProperty().set(centerOfMassWorldTrans.origin.y);!
node.translateZProperty().set(centerOfMassWorldTrans.origin.z);!
node.setRotate(rad * 180 / Math.PI);!
node.setRotationAxis(new Point3D(!
rotation.x / Math.sin(rad / 2),!
rotation.y / Math.sin(rad / 2),!
rotation.z / Math.sin(rad / 2)!
));!
});!
}
その他
• 2つの剛体を結合する制約とか
• ソフトボディとか
• Vehicleとか
• いろいろ調べないと分からない
ライブラリ作成中
• JavaFXのノードを作って物理的なパラメータを
渡せばあれしてくれる
• GroovyFX用のも作成中
• 公開は未定
サンプル(Java)
public class App extends JBulletApp {!
!
@Override!
protected void create3D() {!
Box box = new Box(50, 50, 50);!
box.setTranslateY(-25);!
box.setScaleX(0.5);!
add(box, new BulletOption().restitution(1.0f));!
!
Sphere sphere = new Sphere(5);!
sphere.setTranslateY(30);!
add(sphere, new BulletOption().mass(10).restitution(0.1f));!
}!
!
...!
}!
サンプル(GroovyFX)
start {!
stage(title: "Hello World", visible: true, primary: true) {!
scene {!
perspectiveCamera(true, nearClip:0, farClip:1000)!
simulator {!
box([50, 50, 50], translateY:-25, mass:0, restitution:1.0)!
sphere(5, translateY:20, mass:10, restitution:0.1)!
}!
}!
}!
}
まとめ
• 大阪大会まで3ヶ月
• 参加される方は @kiy0taka までご連絡を
• あと会社にコースあるよって人も
ご清聴ありがとう
ございました

Más contenido relacionado

Similar a javafx-mini4wd

メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −JustSystems Corporation
 
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugSpring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugToshiaki Maki
 
Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)Koichi Sakata
 
JavaOne2014サンフランシスコ報告会in大阪
JavaOne2014サンフランシスコ報告会in大阪JavaOne2014サンフランシスコ報告会in大阪
JavaOne2014サンフランシスコ報告会in大阪bitter_fox
 
JJUG CCC 2016 Fall: World is not a square, rendering world coastline map with...
JJUG CCC 2016 Fall: World is not a square, rendering world coastline map with...JJUG CCC 2016 Fall: World is not a square, rendering world coastline map with...
JJUG CCC 2016 Fall: World is not a square, rendering world coastline map with...torutk
 
JS Board で IoT は楽勝か?
JS Board で IoT は楽勝か?JS Board で IoT は楽勝か?
JS Board で IoT は楽勝か?Shingo Fukui
 
20150209 甲府-web新世紀2
20150209 甲府-web新世紀220150209 甲府-web新世紀2
20150209 甲府-web新世紀2Taisuke Fukuno
 
iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携Masahiro Murakami
 
OpenCVで作るスタンプAR
OpenCVで作るスタンプAROpenCVで作るスタンプAR
OpenCVで作るスタンプARTakashi Yoshinaga
 
可変値変数 var を極力避けることを模索するための事前知識 #cswift
可変値変数 var を極力避けることを模索するための事前知識 #cswift可変値変数 var を極力避けることを模索するための事前知識 #cswift
可変値変数 var を極力避けることを模索するための事前知識 #cswiftTomohiro Kumagai
 
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
pairsでのAngularJS x TypeScript x e2e @めぐすた#1 pairsでのAngularJS x TypeScript x e2e @めぐすた#1
pairsでのAngularJS x TypeScript x e2e @めぐすた#1 Takuma Morikawa
 
Javaと小道具
Javaと小道具Javaと小道具
Javaと小道具Sho Ito
 
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)a know
 
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオンAzure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオンYasuaki Matsuda
 
JavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX UpdateJavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX UpdateTakashi Aoe
 
Introduction to Kanagawa Ruby Kaigi01 #kana01
Introduction to Kanagawa Ruby Kaigi01 #kana01Introduction to Kanagawa Ruby Kaigi01 #kana01
Introduction to Kanagawa Ruby Kaigi01 #kana01Aki Ariga
 
㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!Nishida Kansuke
 

Similar a javafx-mini4wd (20)

メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
 
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugSpring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsug
 
Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)
 
JavaOne2014サンフランシスコ報告会in大阪
JavaOne2014サンフランシスコ報告会in大阪JavaOne2014サンフランシスコ報告会in大阪
JavaOne2014サンフランシスコ報告会in大阪
 
JJUG CCC 2016 Fall: World is not a square, rendering world coastline map with...
JJUG CCC 2016 Fall: World is not a square, rendering world coastline map with...JJUG CCC 2016 Fall: World is not a square, rendering world coastline map with...
JJUG CCC 2016 Fall: World is not a square, rendering world coastline map with...
 
JS Board で IoT は楽勝か?
JS Board で IoT は楽勝か?JS Board で IoT は楽勝か?
JS Board で IoT は楽勝か?
 
20150209 甲府-web新世紀2
20150209 甲府-web新世紀220150209 甲府-web新世紀2
20150209 甲府-web新世紀2
 
iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携
 
OpenCVで作るスタンプAR
OpenCVで作るスタンプAROpenCVで作るスタンプAR
OpenCVで作るスタンプAR
 
可変値変数 var を極力避けることを模索するための事前知識 #cswift
可変値変数 var を極力避けることを模索するための事前知識 #cswift可変値変数 var を極力避けることを模索するための事前知識 #cswift
可変値変数 var を極力避けることを模索するための事前知識 #cswift
 
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
pairsでのAngularJS x TypeScript x e2e @めぐすた#1 pairsでのAngularJS x TypeScript x e2e @めぐすた#1
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
 
cloudstack devcloud
cloudstack devcloudcloudstack devcloud
cloudstack devcloud
 
Javaと小道具
Javaと小道具Javaと小道具
Javaと小道具
 
MVCもやもや話
MVCもやもや話MVCもやもや話
MVCもやもや話
 
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
 
Live the Knight#7
Live the Knight#7Live the Knight#7
Live the Knight#7
 
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオンAzure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
 
JavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX UpdateJavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX Update
 
Introduction to Kanagawa Ruby Kaigi01 #kana01
Introduction to Kanagawa Ruby Kaigi01 #kana01Introduction to Kanagawa Ruby Kaigi01 #kana01
Introduction to Kanagawa Ruby Kaigi01 #kana01
 
㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!
 

Más de Kiyotaka Oku

Osaka Venture Meetup #3
Osaka Venture Meetup #3Osaka Venture Meetup #3
Osaka Venture Meetup #3Kiyotaka Oku
 
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱Kiyotaka Oku
 
BaseScriptについて
BaseScriptについてBaseScriptについて
BaseScriptについてKiyotaka Oku
 
ミニ四駆ジャパンカップで勝つ方法を考える
ミニ四駆ジャパンカップで勝つ方法を考えるミニ四駆ジャパンカップで勝つ方法を考える
ミニ四駆ジャパンカップで勝つ方法を考えるKiyotaka Oku
 
Jenkins plugin memo
Jenkins plugin memoJenkins plugin memo
Jenkins plugin memoKiyotaka Oku
 
GDK48総選挙の裏側
GDK48総選挙の裏側GDK48総選挙の裏側
GDK48総選挙の裏側Kiyotaka Oku
 
Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介Kiyotaka Oku
 
Griffon不定期便〜G*ワークショップ編〜
Griffon不定期便〜G*ワークショップ編〜Griffon不定期便〜G*ワークショップ編〜
Griffon不定期便〜G*ワークショップ編〜Kiyotaka Oku
 
日本Grails/Groovyユーザーグループ
日本Grails/Groovyユーザーグループ日本Grails/Groovyユーザーグループ
日本Grails/GroovyユーザーグループKiyotaka Oku
 
JJUG CCC 2011 Spring
JJUG CCC 2011 SpringJJUG CCC 2011 Spring
JJUG CCC 2011 SpringKiyotaka Oku
 
Jenkinsプラグインの作り方
Jenkinsプラグインの作り方Jenkinsプラグインの作り方
Jenkinsプラグインの作り方Kiyotaka Oku
 
Jenkins and Groovy
Jenkins and GroovyJenkins and Groovy
Jenkins and GroovyKiyotaka Oku
 
とある断片の超動的言語
とある断片の超動的言語とある断片の超動的言語
とある断片の超動的言語Kiyotaka Oku
 

Más de Kiyotaka Oku (20)

Osaka Venture Meetup #3
Osaka Venture Meetup #3Osaka Venture Meetup #3
Osaka Venture Meetup #3
 
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
 
BaseScriptについて
BaseScriptについてBaseScriptについて
BaseScriptについて
 
ミニ四駆ジャパンカップで勝つ方法を考える
ミニ四駆ジャパンカップで勝つ方法を考えるミニ四駆ジャパンカップで勝つ方法を考える
ミニ四駆ジャパンカップで勝つ方法を考える
 
Jenkins plugin memo
Jenkins plugin memoJenkins plugin memo
Jenkins plugin memo
 
Spockの基礎
Spockの基礎Spockの基礎
Spockの基礎
 
JUC2012
JUC2012JUC2012
JUC2012
 
GDK48総選挙の裏側
GDK48総選挙の裏側GDK48総選挙の裏側
GDK48総選挙の裏側
 
Jenkins入門
Jenkins入門Jenkins入門
Jenkins入門
 
Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介
 
Griffon不定期便〜G*ワークショップ編〜
Griffon不定期便〜G*ワークショップ編〜Griffon不定期便〜G*ワークショップ編〜
Griffon不定期便〜G*ワークショップ編〜
 
日本Grails/Groovyユーザーグループ
日本Grails/Groovyユーザーグループ日本Grails/Groovyユーザーグループ
日本Grails/Groovyユーザーグループ
 
GroovyConsole2
GroovyConsole2GroovyConsole2
GroovyConsole2
 
GroovyConsole
GroovyConsoleGroovyConsole
GroovyConsole
 
JJUG CCC 2011 Spring
JJUG CCC 2011 SpringJJUG CCC 2011 Spring
JJUG CCC 2011 Spring
 
Jenkinsプラグインの作り方
Jenkinsプラグインの作り方Jenkinsプラグインの作り方
Jenkinsプラグインの作り方
 
Devsumi Openjam
Devsumi OpenjamDevsumi Openjam
Devsumi Openjam
 
Jenkins and Groovy
Jenkins and GroovyJenkins and Groovy
Jenkins and Groovy
 
とある断片の超動的言語
とある断片の超動的言語とある断片の超動的言語
とある断片の超動的言語
 
Mote Hudson
Mote HudsonMote Hudson
Mote Hudson
 

javafx-mini4wd