SlideShare a Scribd company logo
1 of 118
Download to read offline
製造業向け3Dデータ変換ソリューション
におけるRuby活用事例




           株式会社エリジオン
            内山 滋 / suchi

                 2009/10/10
最初に要点を
製造業向け
 ソフトで
Ruby採用
製造業向け
ソフト開発でも
 Ruby活用
Good
以上
はじめに
はじめに

自己紹介

会社紹介      背景

事例紹介     ASFALIS

導入まで     CANVAS
          Script

社内利用事例

 謝辞
開催おめでとう
 ございます
Ruby
といえば

 島根
matz江
青春
プレイバック

   NHKアーカイブス 保存番組検索「青春ブレイバック」
   http://archives.nhk.or.jp/chronicle/search/
fj.sources
1995/12/21
>まつもと ゆきひろ@トヨタケーラムです.

>ここのところ,細々と開発を続けて来た
>オブジェクト指向スクリプト言語 rubyを
>公開します.

(fj.sources: 1995/12/21)

             Newsgroup: fj.sources
             From: m...@caelum.co.jp (Yukihiro Matsumoto)
             Date: 1995/12/21
             Subject: ruby 0.95 - object-oriented script language (0/7)
名古屋はRuby
 デビューの地
デビュー?
浜松
1990年に卒業して、ソフトハウスに入り
ました(中略)でも、浜松で働ける会社と出
合って、そこを選ぶんです。

(中略: 丌景気になり)

それでRubyの開発を始めたんです。会
社でやっていましたから、同僚には話して
いました。いろいろ応援してくれましたね。

         Tech総研「世界のオープンソースRuby開発者まつもとゆきひろ」
         http://rikunabi-next.yahoo.co.jp/tech/docs/ct_s03600.jsp?p=001005
浜松は
Ruby
誕生の地
浜Matzは
 Ruby
誕生の地
はじめに

自己紹介

会社紹介      背景

事例紹介     ASFALIS

導入まで     CANVAS
          Script

社内利用事例

 謝辞
自己紹介
suchi
      http://www.suchi.org/

       Ruby Lv: 初心者→中級
      好きなメソッド: String#%
      好きなrubyist: id: m_seki

好きなアジャイルプラクティス: ありのままの進捗を計測
     好きなXPプラクティス: 計画ゲーム

        好きなもの: 似てるもの
1990年に卒業して、ソフトハウスに入り
ました(中略)でも、浜松で働ける会社と出
合って、そこを選ぶんです。

(中略: 丌景気になり)

それでRubyの開発を始めたんです。会
社でやっていましたから、同僚には話して
いました。いろいろ応援してくれましたね。

         Tech総研「世界のオープンソースRuby開発者まつもとゆきひろ」
         http://rikunabi-next.yahoo.co.jp/tech/docs/ct_s03600.jsp?p=001005
同僚のYさん
=最初の上司
4107冊



        http://hondana.org/suchi
似てるもの
業務では

   品質管理
シニアマネージャ
 (開発もします)
http://d.hatena.ne.jp/higayasuo/
Coraleef
VB/Delphi App
→ Adobe AIR 移行Tool

・開発リーダー
・フルセットXP開発
・社内初のアジャイル事例
 →以降社内では当たり前の選択肢に

                http://www.isid.co.jp/solution/development/coraleef.html
           http://itpro.nikkeibp.co.jp/article/COLUMN/20071128/288169/
はじめに

自己紹介

会社紹介      背景

事例紹介     ASFALIS

導入まで     CANVAS
          Script

社内利用事例

 謝辞
会社紹介
株式会社エリジオン
• 本社: 静岡県浜松市
• 設立: 1999/11/1
• 社員数: 71名




                  http://www.elysium.co.jp/
技術ベース
• 3次元形状処理
• データ変換
• データ検証・修正




             http://www.elysium.co.jp/
Web採用ページ
• 一辺の長さが2nの立方体があり(nは整数)、その中心に
  直径2n-1の球を配置します。
• 立方体を一辺1の格子に区切ったとき、球の表面が通過
  する格子の数をXとします。
• X>2008となる最小のnはいくつでしょうか?




          http://www.elysium.co.jp/recruit/pretestx/000014.html
Renault F1 Team 公式サプライヤ
                                                                                             データ変換

                                                         2週間⇒3.5時間




          http://www.renaultf1.com/en/_2009/team/partenaires/partenaires_rf1/partenaires_is_it_partners/partenaires_is_it_partners_elysium/
事例紹介
はじめに

自己紹介

会社紹介      背景

事例紹介     ASFALIS

導入まで     CANVAS
          Script

社内利用事例

 謝辞
背景
3Dデータ処理
• 1) 3D CADデータ変換
•   2)   データチェック
•   3)   データ修正
•   4)   データ最適化
•   5)   Viewer
•   6)   and so on...
1)CADデータの変換

   CAD(A)     CAD(B)




              NG!
1)CADデータの変換


   CAD(A)   NG!


                  CAD(B)


            OK
2) データチェック
3) データ修正
• Healing
4) データ最適化
• 例:簡略化
5) Viewer
6) その他いろいろ



    Auto-Surfacing




                     Polygon Processing
中間表現
• 多数のCAD            • データ変換
 – 現在も15種類以上         – NxNの組み合わせ
   • CATIA V4
                    • データ処理
   • CATIA V5
                     – 一般化
   • I-DEAS
   • Pro/E
   •   UG
   •   SolidWorks
   •   Inventor
   •   CoCreate
   •     :
まもなく
 Ruby
出てきます
はじめに

自己紹介

会社紹介      背景

事例紹介     ASFALIS

導入まで     CANVAS
          Script

社内利用事例

 謝辞
ASFALISモジュール化
• 3Dデータ処理のためのモジュールパッケ
  ージ
 – CAD X用
   • ENF Writer
   • ENF Reader

 – Optimizer
 – Checker
 – Viewer

 – 内部的に
   • 共通処理カーネル
ASFALIS – ENF中心のソリューション
ASFALISの利用方法
• 受託案件におけるコンポーネント
• 顧客のシステムへの組み込み
• 代理店様の別システムへの組み込み
ASFALISをさらに使いやすく
• 部課単位で使いたい
• 小規模な業務フローを簡単に記述したい
• セールスチームが顧客用なシンプルなカ
  スタマイズしたい
シナリオファイル
                  <?xml version="1.0"?>
• 手順をXMLで記述       <ScenarioList>
                    <Scenario>
 – シンプルな手順に有効         <CAD2ENF>
                        <inputfile path="${INPUTFILE}
• →さらに使いやすく             <outputfile path="${OUTPUTFIL
                        <parameterfile path="${PARAME
 – 外部モジュールを呼びたい         <productcode id="105001" />
                        <workdir path="${WORKDIR}" />
 – 条件分岐/判定したい           <logfile path="${LOGFILE}" />
                        <xmllogfile path="${XMLLOGFIL
  • モジュール返値
                      </CAD2ENF>
  • データチェックの結果        <ASMEDIT>
  • ファイルの存在             <inputfile path="${OUTPUTFILE
                        <outputfile path="${OUTPUTFIL
                        <parameterfile path="${PARAME
                        <workdir path="${WORKDIR}" />
                        <logfile path="${LOGFILE}" />
                        <xmllogfile path="${XMLLOGFIL
                      </ASMEDIT>
                      <ATTREDIT>
はじめに

自己紹介

会社紹介      背景

事例紹介     ASFALIS

導入まで     CANVAS
          Script

社内利用事例

 謝辞
ELYSIUM
CANVAS
 Script
お待たせしました
  Ruby
   です
CANVAS Script
• CAx iNtegrator Via Asfalis Solution


• Rubyから各モジュールを呼び出せる
• モジュールのInput/Outputの接続をわかり
  やすく
• CADが必要なモジュールのリモート呼び出し
• ユーザコンポーネントを定義可能
  – 顧客独自のコンポーネントの定義が可能
スクリプト例
         require 'canvas'
         CANVAS::Session.open {|session|
           # Shared work folder
           session.shared_workdir = ARGV[2]

             # Definition of   component
             parasolid2enf =   session.create_component(:parasolid2enf)
             asmedit       =   session.create_component(:asmedit)
             attredit      =   session.create_component(:attredit)

             # Connection between the components
             parasolid2enf[:inputfile] = ARGV[0]
             parasolid2enf[:CalcMassProperty] = 1
             parasolid2enf[:CalcElementNumber] = 1

             asmedit[:inputfile] = parasolid2enf[:outputfile]
             asmedit[:CopySharedPart] = 1
             asmedit[:CopySharedAssembly] = 1

             attredit[:inputfile] = asmedit[:outputfile]
             attredit[:mapfile] = 'w:¥conf¥NrkMappingFIle.xml'

             # Execution
             session.start

             # Output
             attredit.copy_result_to(ARGV[1])
         }
準備
require 'canvas'
セッション
CANVAS::Session.open {|session|
  :
  :

}
コンポーネント生成
parasolid2enf = session.create_component(:parasolid2enf)
asmedit       = session.create_component(:asmedit)
attredit      = session.create_component(:attredit)
コンポーネントの設定
コンポーネントの接続
parasolid2enf[:inputfile] = ARGV[0]
parasolid2enf[:CalcMassProperty] = 1
parasolid2enf[:CalcElementNumber] = 1

asmedit[:inputfile] = parasolid2enf[:outputfile]
asmedit[:CopySharedPart] = 1
asmedit[:CopySharedAssembly] = 1

attredit[:inputfile] = asmedit[:outputfile]
attredit[:mapfile] = 'w:¥conf¥NrkMappingFIle.xml'
セッション実行
session.start
スクリプト例
         require 'canvas'
         CANVAS::Session.open {|session|
           # Shared work folder
           session.shared_workdir = ARGV[2]

             # Definition of   component
             parasolid2enf =   session.create_component(:parasolid2enf)
             asmedit       =   session.create_component(:asmedit)
             attredit      =   session.create_component(:attredit)

             # Connection between the components
             parasolid2enf[:inputfile] = ARGV[0]
             parasolid2enf[:CalcMassProperty] = 1
             parasolid2enf[:CalcElementNumber] = 1

             asmedit[:inputfile] = parasolid2enf[:outputfile]
             asmedit[:CopySharedPart] = 1
             asmedit[:CopySharedAssembly] = 1

             attredit[:inputfile] = asmedit[:outputfile]
             attredit[:mapfile] = 'w:¥conf¥NrkMappingFIle.xml'

             # Execution
             session.start

             # Output
             attredit.copy_result_to(ARGV[1])
         }
詳しいサンプルはWebで



http://www.elysium.co.jp/products/asfalis/index.html
Desktop Controler
• ADC(ASFALIS Desktop Controller)
  – データ処理をスケジューリング
  – CANVAS Scriptを生成/実行
  – 簡単に定期処理、夜間バッチ変換システムを構築可能
  – MFCアプリケーション
モジュール図
 Ruby      Win
 Script    App

                                                       Server


                                 Canvas                Canvas
                 CANVAS
                                 Library               Library
                  Script
                                  dRuby                    dRuby


   ADC
(MFC Win App)


                                                ASFALIS
                                               Component                         Loader
                 Scheduler                                                     (Console App)
                 (Console App)


                                                 derived

                                            proe2enf        asmedit    pro2enf.exe     asmedit.exe
                                           Component       Component   (Console App)    (Console App)
Good
• 動的言語やモダンな言語のメリット享受
    – C/C++と比べて
• 驚くほど簡単に記述できる。
• 自然に書けて行数尐ない/手間尐ない。
•   メソッド上書きやeval
•   dRuby
•   豊富なライブラリ
•   行き詰まったときにWebに情報が多い
Bad
• (社内)アーリーアダプタ特有のトラブル
 – 当然あったが
 – リスクを見込んだスケジューリングでカバー
• dRuby
 – 透過的に書けすぎて、サーバ/クライアントの結合が
   密になってしまった
Bad
• 海外代理店からは「Ruby?」
 – 別言語のI/Fを追加するかも
 – 日本の代理店に置き換えて考えてみよう
      • Allegro Common Lisp? / Lua?
      • 理解できる

• スピード
 – 1.9対応したい
要望
• gemでインストールするとき、メモリ消
  費が激しい
• gemの配布条件を調べるのに手間がかか
  った
 – たとえばこんなオプションがあれば
 – gem -license actionmailer
導入まで
はじめに

自己紹介

会社紹介      背景

事例紹介     ASFALIS

導入まで     CANVAS
          Script

社内利用事例

 謝辞
現状: 社内Rubyユーザ
• 開発者約30人
 – カタコトも含めれば2/3はRubyを使える
 – Ruby技術レベルは決して突出していない
• 業務でのRuby利用
 – イキのいい若い社員が主導
各個人での利用はずっと前から
• さまざまな開発手続きの自動化やワンラ
  イナー
 – バッチファイル, Born-Shell, Perl, Ruby,
   Windows Script(VBScript/JScript),
   Windows PowerShell, Python
• あまり制限されない。任されている
• が、ここ5年でRubyがデファクト化
勉強会
• 勉強会が推奨されている
 –   裁量性なので、時間も自由
 –   デザインパターン / Effective C++
 –   Code Complete /アジャイル開発
 –   ISO 10303-59 / 計算位相幾何
2005-2006
CODE COMPLETE 2nd 勉強会
14名(入社1-2年目社員中心)
34章を1年でCOMPLETE
Ruby勉強会
• 2007
• 参加者: 14名
• スキルにあった内容を皆バラバラに学ぶ
Ruby導入
• 役員、上司、お客様からの制限はなし
 – 問題解決指向
• CTO – 技術全般への目の配り
 – 例: ファウラー「リファクタリング」
• 開発者に基本的に任されている
• 社風
 – 取り組みを評価する社風
 – 例: アジャイル導入
  • トップが柔軟で理解がある
  • 目的指向
とはいえ
• 安易な考えは却下
• 顧客対応部署に説明できるか
• 浮かれRubyistではないか
 – 手段が目的より優先してないか
 – おまえRubyって言いたいだけちゃうんか
• リスクを認識しているか
• 覚悟はあるか
 – 一度否定されて引っ込めるようではダメ
 – いざというときRuby/Libraryのせいにしない
 – いざというときソースを読む覚悟
s/Ruby/ソーシャルなんとか/g
s/Ruby/クラウド/g
s/Ruby/twitter/g
s/Ruby/.NET/g
s/Ruby/Rails/g
Why Ruby?
• Good参照
バランス感覚重要
• エンジニアの重要な資質?
 – パラノ資質と共存可能
• 他言語/システムを知っているか
 – Rubyだけ勉強していてもダメ
 – 一部業界だけを参考にしてもダメ
  • 永遠のβ←日本の製造業の超高品質プロセスを維持できるか?

• メリット/デメリットを正確に挙げられるか
 – それ○○でできるよ
社内利用例
はじめに

自己紹介

会社紹介      背景

事例紹介     ASFALIS

導入まで     CANVAS
          Script

社内利用事例

 謝辞
社内利用例
• 個人的なスクリプト
•   プロジェクト内のスクリプト
•   社内カーネル利用インターフェイス
•   テストで使うスクリプト
•   テストシステム(サーバはRails)

• Redmine
    – でも主要は独自タスクDB(運用10年)
    – アジャイル開発はXPlanner
一時的なスクリプト
• Widowsの.rcファイル自動生成
 group = {
   "標準" => ["IDC_BUTTON_PICK", "IDC_BUTTON_ZOOM", ...]
   "並び替え" => ["IDC_BUTTON_UP", "IDC_BUTTON_DOWN", nil, ...]
   "編集" => ["IDC_BUTTON_EDIT_HOLE_PATTERN", ...]
 }

 x = 9
 group.each do |name, list|
   buttons = []
   x1 = x
   x += 4
   list.each do |obj|
     if obj.nil?
       x += 3
     else
       buttons.push "    PUSHBUTTON      ¥"¥",#{obj},#{x},18,16,16,BS_ICON"
       x += 16
     end
   end
   puts "    GROUPBOX        ¥"#{name}¥",IDC_STATIC,#{x1},7,#{x-x1+4},32"
   puts buttons.join("¥n")
   x += 10
 end
テスト用ツール
• 高い品質維持
 – テストの増加
• テストの自動化
 – テストの自動生成
中間ファイル操作ライブラリ
• C/C++で作成されたライブラリ
 – Rubyから呼びだすためのライブラリ
• 機能テストの判定に利用
• 開発中に利用
ENF Handler

 ENF Info     ENF
                              Rubyによる
  Reader     Editor   ...
                              各種ツール
  (Ruby)    (Ruby)

    ENF Handler (Ruby)        Ruby I/Fは
                              下層に依存しない

        Ruby C拡張              Handlerに必要な
                              ところだけ
       C I/F

   ELYSIUM Foundation Class Library(C++)
テストシステム
• Railsを利用したテストサーバ
•   Rubyによる実行システム
•   判定条件を名前付けRubyクラスで記述
•   テスト項目は判定条件とパラメータ
•   →自動テスト可能に
今後
今後のRuby利用
• CANVAS Script
 – 続々と展開中、典型的利用方法もライブラリ化
• テストシステム開発
• 新規開発プロジェクトでもRuby採用
 – 複数言語のシステム
   • C/C++ ~ 長く継続していたWindows App
   • C#(.NET) ~ 新規作成Windows GUI App / クライアント
   • Ruby ~ サーバ(Railsも利用)
   • サーバ/Client間はSOAP

 – Rubyにこだわっていない
   • ←→Rubyに価値がある証拠!
はじめに

自己紹介

会社紹介      背景

事例紹介     ASFALIS

導入まで     CANVAS
          Script

社内利用事例

 謝辞
謝辞
名古屋Ruby会議
  Rubyの会
他Rubyに関わる皆様
Regional Ruby会議発案者

角谷信太郎
 さん
http://b.hatena.ne.jp/entry/twitter.com/suchi/statuses/
@Wikiばな Vol.7




      http://wikibana.socoda.net/wiki.cgi?WikiBana%2fVOL.7
ところで
角谷さんの翻訳された
最後にも要点を
製造業向け
 ソフトで
Ruby採用
製造業向け
ソフト開発でも
Ruby活用
Good
名古屋はRuby
 デビューの地
開催おめでとう
 ございます
以上
ご清聴
ありがとうございました
付録
現実的なスクリプト例
• 1. 解析に丌要な微小部品を削除
 – ASFALISアダプタ(体積取得)
 – アセンブリ編集コンポーネント(削除)

• 2. 解析失敗の原因となる部品間干渉を検証
 – 干渉チェックコンポーネント
 – アセンブリ編集コンポーネント(削除)

• 3. 解析に丌適な形状削除
 – 形状簡略化コンポーネント(フィレット・段差削除)
 – 干渉チェックコンポーネント(簡略化後の干渉チェック)

• 4. CAEツール向けにデータ修正しParasolidへ変換
 – ASFALISアダプタ(ヒーリング/Parasolid形式へ変換)
フロー
      A   B




 A    B
スクリプト例(1)
 require 'canvas'
 require 'parser.rb'

 CANVAS::Session.open do |session|
   config = session.parse_config(ARGV[0])

  session.shared_workdir = config[:shared_workdir]

  # コンポーネントを作成
  catiav52enf = session.create_component('catiav52enf')

  asmedit = session.create_component('asmedit')
  intrcheck = session.create_component('intrcheck')
  asmedit2 = session.create_component('asmedit')
  simplify = session.create_component('simplify')
  dek = session.create_component('dek')
  enf2parasolid = session.create_component('enf2parasolid')
スクリプト例(2)
 # コンポーネントの出入力データのマッピング定義、オプションを指定
 catiav52enf[:inputfile] = config[:inputfile]
 catiav52enf[:CalcMassProperty] = '1'

 asmedit[:inputfile] = catiav52enf[:outputfile]
 asmedit[:DeleteSpecifiedPart] = '1'
 asmedit[:namelist] = 'namelist1.txt'

 intrcheck[:inputfile] = asmedit[:outputfile]
 intrcheck[:ExcludeNoShowElement] = '1'
 intrcheck[:ReportIntrVolume] = '1'


 asmedit2[:inputfile] = intrcheck[:outputfile]
 asmedit2[:DeleteSpecifiedPart] = '1'
 asmedit2[:namelist] = 'namelist2.txt'
スクリプト例(3)
  simplify[:inputfile] = asmedit2[:outputfile]
  simplify[:Process].add :RemoveFillet, {
    :AvoidInterferenceAmongParts => '1',
    :AvoidInterferenceWithinPart => '1',
    :FilletMaxRadius => '5',
    :FilletMinRadius => '1',
    :ProhibitInvalidGeometryCreation => '1'
  }
  simplify[:Process].add :RemoveStep, {
    :ProhibitInvalidGeometryCreation => '1',
    :StepMaxHeight => '0.1'
  }

  dek[:inputfile] = simplify[:outputfile]
  dek[:to_cad] = 'parasolid'

  enf2parasolid[:inputfile] = dek[:outputfile]
スクリプト例(4)
  # 処理を実行

  catiav52enf.execute
  asmedit.execute
  xml_parse(asmedit[:xmllogfile],namelist1.txt)
  intrcheck.execute
  xml_parse(intrcheck[:csvfile],namelist2.txt)
  asmedit2.execute
  simplify.execute
  dek.execute
  enf2parasolid.execute

  # 出力ファイルを保存
  enf2parasolid.copy_result_to(config[:outputdir])

 end

More Related Content

What's hot

.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform信之 岩永
 
Serf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfraSerf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfraNaotoshi Seo
 
第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)Masanori Machii
 
LaravelでAPI定義を管理する
LaravelでAPI定義を管理するLaravelでAPI定義を管理する
LaravelでAPI定義を管理するKenjiro Kubota
 
The potential of Kubernetes as more than just an infrastructure to deploy
The potential of Kubernetes as more than just an infrastructure to deployThe potential of Kubernetes as more than just an infrastructure to deploy
The potential of Kubernetes as more than just an infrastructure to deployYusuke Kato
 
081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.pptNaoya Ito
 
分散密ベクトル探索エンジン Vald の Helm Chart の作成と Operator SDK を用いた Helm ベースの Operator の開発
分散密ベクトル探索エンジン Vald の Helm Chart の作成と Operator SDK を用いた Helm ベースの Operator の開発分散密ベクトル探索エンジン Vald の Helm Chart の作成と Operator SDK を用いた Helm ベースの Operator の開発
分散密ベクトル探索エンジン Vald の Helm Chart の作成と Operator SDK を用いた Helm ベースの Operator の開発Rintaro Okamura
 
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?kwatch
 
JobSchedulerでCD(継続的デリバリ)
JobSchedulerでCD(継続的デリバリ)JobSchedulerでCD(継続的デリバリ)
JobSchedulerでCD(継続的デリバリ)OSSラボ株式会社
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)Takuya Kawabe
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すTakaya Saeki
 
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化するAWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化するmizugokoro
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理土岐 孝平
 
実践サーバレスアーキテクチャ
実践サーバレスアーキテクチャ実践サーバレスアーキテクチャ
実践サーバレスアーキテクチャ太郎 test
 
ECS for Docker Meetup #4
ECS for Docker Meetup #4ECS for Docker Meetup #4
ECS for Docker Meetup #4Shinpei Ohtani
 
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)nabe-abk
 
Zend四十八手シリーズ Zend_Cache Zend_Paginator
Zend四十八手シリーズ Zend_Cache Zend_PaginatorZend四十八手シリーズ Zend_Cache Zend_Paginator
Zend四十八手シリーズ Zend_Cache Zend_PaginatorYusuke Ando
 
ansible 社内お勉強会資料
ansible 社内お勉強会資料ansible 社内お勉強会資料
ansible 社内お勉強会資料Makoto Uehara
 

What's hot (19)

.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform
 
Serf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfraSerf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfra
 
第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)
 
LaravelでAPI定義を管理する
LaravelでAPI定義を管理するLaravelでAPI定義を管理する
LaravelでAPI定義を管理する
 
The potential of Kubernetes as more than just an infrastructure to deploy
The potential of Kubernetes as more than just an infrastructure to deployThe potential of Kubernetes as more than just an infrastructure to deploy
The potential of Kubernetes as more than just an infrastructure to deploy
 
081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.ppt
 
分散密ベクトル探索エンジン Vald の Helm Chart の作成と Operator SDK を用いた Helm ベースの Operator の開発
分散密ベクトル探索エンジン Vald の Helm Chart の作成と Operator SDK を用いた Helm ベースの Operator の開発分散密ベクトル探索エンジン Vald の Helm Chart の作成と Operator SDK を用いた Helm ベースの Operator の開発
分散密ベクトル探索エンジン Vald の Helm Chart の作成と Operator SDK を用いた Helm ベースの Operator の開発
 
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
 
JobSchedulerでCD(継続的デリバリ)
JobSchedulerでCD(継続的デリバリ)JobSchedulerでCD(継続的デリバリ)
JobSchedulerでCD(継続的デリバリ)
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
 
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化するAWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
 
実践サーバレスアーキテクチャ
実践サーバレスアーキテクチャ実践サーバレスアーキテクチャ
実践サーバレスアーキテクチャ
 
ECS for Docker Meetup #4
ECS for Docker Meetup #4ECS for Docker Meetup #4
ECS for Docker Meetup #4
 
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
 
PHP勉強会 #51
PHP勉強会 #51PHP勉強会 #51
PHP勉強会 #51
 
Zend四十八手シリーズ Zend_Cache Zend_Paginator
Zend四十八手シリーズ Zend_Cache Zend_PaginatorZend四十八手シリーズ Zend_Cache Zend_Paginator
Zend四十八手シリーズ Zend_Cache Zend_Paginator
 
ansible 社内お勉強会資料
ansible 社内お勉強会資料ansible 社内お勉強会資料
ansible 社内お勉強会資料
 

Similar to 名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例

クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)Daisuke Ikeda
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説Takao Tetsuro
 
サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから真吾 吉田
 
2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~Takeshi Shinmura
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2Takao Tetsuro
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話Tsuyoshi Torii
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツールtotty jp
 
ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例fumoto kazuhiro
 
Build 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansaiBuild 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansaiTomohiro Kumagai
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますinfinite_loop
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発hmimura_embarcadero
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料OCHI Shuji
 
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】Tomoharu ASAMI
 
デブサミ2013【15-D-4】Opsから挑むDevOps
デブサミ2013【15-D-4】Opsから挑むDevOpsデブサミ2013【15-D-4】Opsから挑むDevOps
デブサミ2013【15-D-4】Opsから挑むDevOpsDevelopers Summit
 
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪真吾 吉田
 
CommunityOpenDay2012名古屋セッション資料
CommunityOpenDay2012名古屋セッション資料CommunityOpenDay2012名古屋セッション資料
CommunityOpenDay2012名古屋セッション資料Shinichiro Isago
 

Similar to 名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例 (20)

クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
 
サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから
 
2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツール
 
ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例
 
Build 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansaiBuild 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansai
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
 
Hbstudy41 auto scaling
Hbstudy41 auto scalingHbstudy41 auto scaling
Hbstudy41 auto scaling
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
 
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
 
デブサミ2013【15-D-4】Opsから挑むDevOps
デブサミ2013【15-D-4】Opsから挑むDevOpsデブサミ2013【15-D-4】Opsから挑むDevOps
デブサミ2013【15-D-4】Opsから挑むDevOps
 
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
 
CommunityOpenDay2012名古屋セッション資料
CommunityOpenDay2012名古屋セッション資料CommunityOpenDay2012名古屋セッション資料
CommunityOpenDay2012名古屋セッション資料
 
Windows Azure Community Open Day 2012
Windows Azure   Community Open Day 2012Windows Azure   Community Open Day 2012
Windows Azure Community Open Day 2012
 

More from Shigeru UCHIYAMA

Ruby on Windows (uru/RubyInstaller/Devkit)
Ruby on Windows (uru/RubyInstaller/Devkit)Ruby on Windows (uru/RubyInstaller/Devkit)
Ruby on Windows (uru/RubyInstaller/Devkit)Shigeru UCHIYAMA
 
Rubykaigi2013ミニ報告 - hmrb#30 LT
Rubykaigi2013ミニ報告 - hmrb#30 LTRubykaigi2013ミニ報告 - hmrb#30 LT
Rubykaigi2013ミニ報告 - hmrb#30 LTShigeru UCHIYAMA
 
メタプログラミングRubyはこの付録が美味しい
メタプログラミングRubyはこの付録が美味しいメタプログラミングRubyはこの付録が美味しい
メタプログラミングRubyはこの付録が美味しいShigeru UCHIYAMA
 
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道Shigeru UCHIYAMA
 

More from Shigeru UCHIYAMA (6)

Ruby on Windows (uru/RubyInstaller/Devkit)
Ruby on Windows (uru/RubyInstaller/Devkit)Ruby on Windows (uru/RubyInstaller/Devkit)
Ruby on Windows (uru/RubyInstaller/Devkit)
 
私とApple - hmrb#34 LT
私とApple - hmrb#34 LT私とApple - hmrb#34 LT
私とApple - hmrb#34 LT
 
Rubykaigi2013ミニ報告 - hmrb#30 LT
Rubykaigi2013ミニ報告 - hmrb#30 LTRubykaigi2013ミニ報告 - hmrb#30 LT
Rubykaigi2013ミニ報告 - hmrb#30 LT
 
メタプログラミングRubyはこの付録が美味しい
メタプログラミングRubyはこの付録が美味しいメタプログラミングRubyはこの付録が美味しい
メタプログラミングRubyはこの付録が美味しい
 
FactoryGirl入門
FactoryGirl入門FactoryGirl入門
FactoryGirl入門
 
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道
 

Recently uploaded

Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperleger Tokyo Meetup
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイントonozaty
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルCRI Japan, Inc.
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用KLab Inc. / Tech
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルCRI Japan, Inc.
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdkokinagano2
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfTakayuki Nakayama
 

Recently uploaded (8)

Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 

名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例