SlideShare a Scribd company logo
1 of 28
意外に違う
Trema と Trema-Edge
oshiba
自己紹介


PythonとRubyが好きで、
色々遊んでます!



フレームワークをあれこれ触って楽しん
でます。



会社でOpenFlowスイッチ扱ってます。
今日お話しする内容
TremaEdgeを使ってみて分かった、
Tremaとの違いどころを色々と書きます。
Pio試したり、Sinatra試したりすると中々手ごわいこと
(ズバリ書くと不具合)があったため、その辺りを重点的に。
※ 今後修正されると思うので、そのときにはこの資料は
意味をなさないね!
(2014年2月17日で作りました)
What is TremaEdge ?
Trema

TremaEdge

OF v1.0
対応

OF v1.3
対応
要するにTremaのOF1.3用
フレームワークです
ちなみに。。。
OF v1.3になったことによる変更点は、
あんまり解説しません。
マスタリングTCP/IPのOpenFlowとか読んでね!

解説しない理由: めんどくさいから(変更点多すぎ)
※ 混乱しそうな場所だけほんのちょっと触れるかも
※ あと、Ruby2.0になったことによる違いも触れないです
まず、起動するだけ
class TestController < Controller
def start
puts “ Hello Trema! ”
end
end
何も変化無し。
ハンドラ定義 ※

ハンドラ名はものによって変わってる
OpenFlowメッセージが変わったの

で

def packet_in dpid, message
end
def port_status dpid, message
end
def port_desc_multipart_reply dpid, message
end
def packet_in dpid, message
end

ポート情報一覧の
取得用
※FeaturesRequest/Re
plyで受け取れなくなっ
た情報

今まで通りメソッドを定義。
タイマ定義とかメッセージ送信
とか
# タイマ定義
add_timer_event :discover_neighbor, 5, :periodic
# フロー追加
send_flow_mod_add( dpid, options)
#メッセージ送信
send_message dpid, PortMultipartRequest.new

基本、今まで通り。
※ フロー追加はoptionについて変更
有(instructionとか)
ここから変更点とか問題点とか
・
・
・
・
・
・

PacketInのときのパケット情報取得
PortStatusのポート情報受け取り
PacketOutでデータのみのパケット出力
色々な便利メソッドの有無
Sinatraと連携
Trema::Pioと連携
PacketInのときのパケット情報取得


マッチ条件の名前がベース
eth_dst、eth_src、ipv4_dst

とか

https://github.com/trema/tremaedge/blob/develop/ruby/trema/match.rb
をチェック!
PortStatusのポート情報受け取り
Trema
def port_status dpid, message
message.phy_port.port_no
end
 TremaEdge
def port_status dpid, message
phy_port
message.port_no
がない
end


理由:TremaEdgeでは、
PortStatusがPortクラスを継承する形で作られている
PacketOutでデータのみのパケット出力
# PacketInベースのリアクティブな処理
send_packet_out( dpid,
:packet_in => packet_in,
:actions => SendOutPort.new( OFPP_ALL )
# バイナリデータを渡す形の処理
send_packet_out( dpid,
:data => packet,
:buffer_id => OFP_NO_BUFFER,
:actions => SendOutPort.new( OFPP_ALL )

)

)

An Ethernet frame must be provided if buffer_id
is equal to 0xffffffff

データを渡してもNG…
PacketOutでデータのみのパケット出力
VALUE r_opt_message = HASH_REF( options, packet_in );
~中略~
if ( buffer_id == OFP_NO_BUFFER && !NIL_P( r_opt_message ) ) {
~中略~
else {
packet_out = create_packet_out(
get_transaction_id(),
:packet_inオプションが指定さ
buffer_id,
れていないと、ちゃんと動く
in_port,
ようになっていない。
actions,
NULL
);
}

一部改変が必要
PacketOutでデータのみのパケット出力
~改変例~
VALUE r_opt_message = HASH_REF( options, packet_in );
VALUE r_opt_data = HASH_REF( options, data ); //データオプション追加
~中略~
if ( !NIL_P( r_opt_message ) ) {
~中略~
else if( !NIL_P(r_opt_data) ){ //データオプション追加
data = r_array_to_buffer( r_opt_data );
dataに対するfree自体は既に処理
があるため、追記はしない
}
~中略~
if ( buffer_id == OFP_NO_BUFFER && //条件を1つ追加
( !NIL_P( r_opt_message ) || !NIL_P(r_opt_data) )) {
~中略~
else {
:dataのオプション指定があった場合を想定
~中略~
PacketOutでデータのみのパケット出力


これだけではNG!

send_packet_out( dpid,
#
:data => packet,
:data => packet.unpack(“C*”),
:buffer_id => OFP_NO_BUFFER,
:actions => SendOutPort.new( OFPP_ALL )
Arrayで渡さないといけないので、
unpackをする必要がある

)
Sinatraと連携
普通に使うと以下のようなメッセージが出
てしまい、Sinatraが動かない。。。

「Logger」に問題がありそう?
クラスじゃないというメッセー
ジが出てる。
Sinatraと連携
Sinatra のLoggerクラスと
TremaのLoggerモジュールがバッティングしてる。

Sinatra

Trema-Edge
Logger
クラス

競合

Logger
モジュール

Tremaだと、「DefaultLogger」だったのでOKだった。。。
Sinatraと連携(回避策)
Loggerモジュールの名前を変えてあげる。
# logger.cについて(145行目)
mLogger = rb_define_module_under( mTrema, "TremaLogger" );
# logger.rbについて(20行目)
module TremaLogger
# controller.rbについて(33行目)
include TremaLogger
Sinatraと連携(変更後)
エラーは出ない。ルートを書けば問題なく動作

少なくとも、GET、POST、DELETEは動作
Trema::Pioと連携
require "pio"
class TestPacket < Controller
def start
puts "start"
end
end

require しただけでエラー
動かない。。。

error: field '[:octets, {:type=>:uint8, :initial_length=>6}]' is an
illegal fieldname in Pio::Type::MacAddress
Trema::Pioと連携
どうやら、Trema-Edgeの問題。。。
# Trema-Edgeで動かした場合
class Fuga
end
p Fuga.superclass
p Fuga.superclass.respond_to? "string"
p Fuga.superclass.respond_to? “array"

Object
true
true

Objectクラスに対して、stringやarrayがクラスメソッ
ドとして存在してしまっている。
Trema::Pioと連携
この”string”や”array”が、bindataを使ったPioのソースにお
ける、arrayやstringの宣言的な箇所で問題を起こしている。

こういう箇所で問題になる
Trema::Pioと連携(回避策)
arrayとかstringが使えないので、とりあえずPio側を書き換え。
pio_arrayとかpio_stringにする。
class PioString < Bindata::String
end
class PioArray < Bindata::Array
end

こんな感じの宣言箇所を
arrayから、pio_arrayに変更
stringから、pio_stringに変更

sugyoさんからもっとよさそうな回避策も出てました。
でも試してないからここでは書くのをやめました。
色々な便利メソッドの有無
message-helperに今後は纏められる?
(sugyoさんがissueあげてた)
でも、今はまだ、ほとんどない。。。

send_flow_mod_add、
send_group_mod_addぐら
いしかない。。。
色々な便利メソッドの有無
残念ながら以下みたいなのは自分で定義する必要あり
・ send_flow_mod_delete
・ Portクラスの port.up? もしくは port.down?
def up?
if(self.state | 1 == 0)
return true
end
return false
end
def down?
return (not self.up?)
end
Portクラスに
追加する

def send_flow_mod_delete datapath_id, options
options[ :command ]
= OFPFC_DELETE
options[ :table_id ]
= OFPTT_ALL if options[ :table_id ].nil?
options[ :match ]
= Match.new if options[ :match ].nil?
options[ :cookie ]
=0
if options[ :cookie ].nil?
options[ :cookie_mask ] = 0
if options[ :cookie_mask ].nil?
options[ :out_port ]
= OFPP_ANY if options[ :out_port ].nil?
options[ :out_group ]
= OFPG_ANY if options[ :out_group ].nil?
send_flow_mod datapath_id, options
end

message-helperに追加するなど
Statsメッセージについて
Multipartメッセージになったことにより、
名前が変わっているので注意。
# PortStatsを取る場合
send_message dpid, PortMultipartRequest.new
# GroupStatsを取る場合
send_message dpid, GroupDescMultipartRequest.new
# FlowStatsを取る場合
send_message dpid, FlowMultipartRequest.new( cookie: 0x0 )
def flow_multipart_reply dpid, message # FlowStatsのハンドラ
end
def group_desc_multipart_reply dpid, message # GroupStatsのハンドラ
end
def port_multipart_reply dpid, message # PortStatsのハンドラ
end
最後に注意事項(OF 1.3関連)













FeaturesReplyにはポート情報は入ってない
(PortMultipartRequest/Replyが必要になります)
フローエントリにはInstructionsというものが増えてる
フローの削除でクッキー番号の指定とout_groupの指定を考えてあげる
必要がある
PacketIn用のフローを入れないと、PacketInしない
ポート番号以外に、物理ポート番号とかあるから気をつけて
OFPP_NONEとかなくなった
アクションについてset_fieldとかpush/pop tagとか色々細かくなったか
ら気をつけて
アクションは即時実行(APPLY_ACTION)とパイプライン終了後に
実行するWRITE_ACTIONがある
WRITE_ACTIONには実行順序が決められている
APPLY_ACTIONは、今まで通りセットした順番どおりに実行される
以上です!
有難うございました。
oshiba

More Related Content

What's hot

Erlangご紹介 websocket編
Erlangご紹介 websocket編Erlangご紹介 websocket編
Erlangご紹介 websocket編Masatoshi Itoh
 
async/await不要論
async/await不要論async/await不要論
async/await不要論bleis tift
 
ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例Uchio Kondo
 
Phpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみたPhpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみたAkira Kaneda
 
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会真乙 九龍
 
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」yoshiaki iwanaga
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回龍一 田中
 
Zabbix2.0.3の新機能と変更点
Zabbix2.0.3の新機能と変更点Zabbix2.0.3の新機能と変更点
Zabbix2.0.3の新機能と変更点真乙 九龍
 
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門sandai
 
Prometheus最初に悩む3つのこと
Prometheus最初に悩む3つのことPrometheus最初に悩む3つのこと
Prometheus最初に悩む3つのこと貴仁 大和屋
 
Nmapの真実(ゾクゾク)
Nmapの真実(ゾクゾク)Nmapの真実(ゾクゾク)
Nmapの真実(ゾクゾク)Keigo Yamazaki
 
Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門Yoshitaka Seo
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装したt-sin
 
Python勉強会1-はじめに
Python勉強会1-はじめにPython勉強会1-はじめに
Python勉強会1-はじめに理 小林
 
Elog and Ebuild Phase Hook
Elog and Ebuild Phase HookElog and Ebuild Phase Hook
Elog and Ebuild Phase HookYasuhiro Asaka
 
Javaクラスファイルの読み方
Javaクラスファイルの読み方Javaクラスファイルの読み方
Javaクラスファイルの読み方y torazuka
 
Project Loom + Project Panama
Project Loom + Project PanamaProject Loom + Project Panama
Project Loom + Project PanamaYuichi Sakuraba
 
LagopusでPPPoEを使えるか考えてみた件
LagopusでPPPoEを使えるか考えてみた件LagopusでPPPoEを使えるか考えてみた件
LagopusでPPPoEを使えるか考えてみた件Masaru Oki
 

What's hot (20)

Erlangご紹介 websocket編
Erlangご紹介 websocket編Erlangご紹介 websocket編
Erlangご紹介 websocket編
 
async/await不要論
async/await不要論async/await不要論
async/await不要論
 
ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例
 
Phpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみたPhpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみた
 
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
 
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
 
Zabbix2.0.3の新機能と変更点
Zabbix2.0.3の新機能と変更点Zabbix2.0.3の新機能と変更点
Zabbix2.0.3の新機能と変更点
 
Inside FastEnum
Inside FastEnumInside FastEnum
Inside FastEnum
 
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
 
Prometheus最初に悩む3つのこと
Prometheus最初に悩む3つのことPrometheus最初に悩む3つのこと
Prometheus最初に悩む3つのこと
 
Nmapの真実(ゾクゾク)
Nmapの真実(ゾクゾク)Nmapの真実(ゾクゾク)
Nmapの真実(ゾクゾク)
 
Vsubuntu
VsubuntuVsubuntu
Vsubuntu
 
Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
 
Python勉強会1-はじめに
Python勉強会1-はじめにPython勉強会1-はじめに
Python勉強会1-はじめに
 
Elog and Ebuild Phase Hook
Elog and Ebuild Phase HookElog and Ebuild Phase Hook
Elog and Ebuild Phase Hook
 
Javaクラスファイルの読み方
Javaクラスファイルの読み方Javaクラスファイルの読み方
Javaクラスファイルの読み方
 
Project Loom + Project Panama
Project Loom + Project PanamaProject Loom + Project Panama
Project Loom + Project Panama
 
LagopusでPPPoEを使えるか考えてみた件
LagopusでPPPoEを使えるか考えてみた件LagopusでPPPoEを使えるか考えてみた件
LagopusでPPPoEを使えるか考えてみた件
 

Viewers also liked

Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Sho Shimizu
 
60分でわかるソケットプログラミング
60分でわかるソケットプログラミング60分でわかるソケットプログラミング
60分でわかるソケットプログラミングMasahiko Kimoto
 
パケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmapパケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmapfurandon_pig
 
エンタープライズにおけるOpen flowユースケースを考える
エンタープライズにおけるOpen flowユースケースを考えるエンタープライズにおけるOpen flowユースケースを考える
エンタープライズにおけるOpen flowユースケースを考えるcloretsblack
 
Cloud Days Tokyo 2014 Spring 「80分でばっちり理解するOpenFlow」 NEC宮永直樹
Cloud Days Tokyo 2014 Spring 「80分でばっちり理解するOpenFlow」 NEC宮永直樹Cloud Days Tokyo 2014 Spring 「80分でばっちり理解するOpenFlow」 NEC宮永直樹
Cloud Days Tokyo 2014 Spring 「80分でばっちり理解するOpenFlow」 NEC宮永直樹Naoki Miyanaga
 
恐怖!シェルショッカーの POSIX原理主義シェルスクリプト
恐怖!シェルショッカーの POSIX原理主義シェルスクリプト恐怖!シェルショッカーの POSIX原理主義シェルスクリプト
恐怖!シェルショッカーの POSIX原理主義シェルスクリプトRichie Shellshoccar
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsHisaki Ohara
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at NetflixBrendan Gregg
 
Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwardingMasakazu Asama
 
Linux Performance Analysis and Tools
Linux Performance Analysis and ToolsLinux Performance Analysis and Tools
Linux Performance Analysis and ToolsBrendan Gregg
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Yuichi Ito
 

Viewers also liked (13)

カーネルモジュールプログラミング超入門 #1(仮)
カーネルモジュールプログラミング超入門 #1(仮)カーネルモジュールプログラミング超入門 #1(仮)
カーネルモジュールプログラミング超入門 #1(仮)
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
 
60分でわかるソケットプログラミング
60分でわかるソケットプログラミング60分でわかるソケットプログラミング
60分でわかるソケットプログラミング
 
パケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmapパケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmap
 
エンタープライズにおけるOpen flowユースケースを考える
エンタープライズにおけるOpen flowユースケースを考えるエンタープライズにおけるOpen flowユースケースを考える
エンタープライズにおけるOpen flowユースケースを考える
 
Cloud Days Tokyo 2014 Spring 「80分でばっちり理解するOpenFlow」 NEC宮永直樹
Cloud Days Tokyo 2014 Spring 「80分でばっちり理解するOpenFlow」 NEC宮永直樹Cloud Days Tokyo 2014 Spring 「80分でばっちり理解するOpenFlow」 NEC宮永直樹
Cloud Days Tokyo 2014 Spring 「80分でばっちり理解するOpenFlow」 NEC宮永直樹
 
恐怖!シェルショッカーの POSIX原理主義シェルスクリプト
恐怖!シェルショッカーの POSIX原理主義シェルスクリプト恐怖!シェルショッカーの POSIX原理主義シェルスクリプト
恐怖!シェルショッカーの POSIX原理主義シェルスクリプト
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructions
 
良いコードとは
良いコードとは良いコードとは
良いコードとは
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at Netflix
 
Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwarding
 
Linux Performance Analysis and Tools
Linux Performance Analysis and ToolsLinux Performance Analysis and Tools
Linux Performance Analysis and Tools
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
 

Similar to Tremaとtrema edgeの違い

C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料真一 北原
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりYuya Rin
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~CHY72
 
Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!
Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!
Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!Yasuyuki Sugitani
 
プログラミング学習のための学習
プログラミング学習のための学習プログラミング学習のための学習
プログラミング学習のための学習siranon *
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワークTakuya Sato
 
Tf勉強会(5)
Tf勉強会(5)Tf勉強会(5)
Tf勉強会(5)tak9029
 
Lagopus performance
Lagopus performanceLagopus performance
Lagopus performanceMasaru Oki
 
マイクロマウスのための MATLAB/Simulink 講座 第1回 - MATLAB入門
マイクロマウスのための MATLAB/Simulink 講座 第1回 - MATLAB入門マイクロマウスのための MATLAB/Simulink 講座 第1回 - MATLAB入門
マイクロマウスのための MATLAB/Simulink 講座 第1回 - MATLAB入門Teng Tokoro
 
DTrace for biginners part(1)
DTrace for biginners part(1)DTrace for biginners part(1)
DTrace for biginners part(1)Shoji Haraguchi
 
OFF4G Hokkaido LT
OFF4G Hokkaido LTOFF4G Hokkaido LT
OFF4G Hokkaido LTJyun Tanaka
 
Denoハンズオン【とらのあなラボ】
Denoハンズオン【とらのあなラボ】Denoハンズオン【とらのあなラボ】
Denoハンズオン【とらのあなラボ】虎の穴 開発室
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„和弘 井之上
 
小さく始める Docker container の deploy
小さく始める Docker container の deploy小さく始める Docker container の deploy
小さく始める Docker container の deployYoshinori Teraoka
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talkmitamex4u
 

Similar to Tremaとtrema edgeの違い (20)

名前付け入門
名前付け入門名前付け入門
名前付け入門
 
C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
 
Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!
Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!
Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!
 
プログラミング学習のための学習
プログラミング学習のための学習プログラミング学習のための学習
プログラミング学習のための学習
 
Dart 1.1
Dart 1.1Dart 1.1
Dart 1.1
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワーク
 
Tf勉強会(5)
Tf勉強会(5)Tf勉強会(5)
Tf勉強会(5)
 
Lagopus performance
Lagopus performanceLagopus performance
Lagopus performance
 
Start-padrino
Start-padrinoStart-padrino
Start-padrino
 
FabricとRailsと私
FabricとRailsと私FabricとRailsと私
FabricとRailsと私
 
マイクロマウスのための MATLAB/Simulink 講座 第1回 - MATLAB入門
マイクロマウスのための MATLAB/Simulink 講座 第1回 - MATLAB入門マイクロマウスのための MATLAB/Simulink 講座 第1回 - MATLAB入門
マイクロマウスのための MATLAB/Simulink 講座 第1回 - MATLAB入門
 
Stager
StagerStager
Stager
 
DTrace for biginners part(1)
DTrace for biginners part(1)DTrace for biginners part(1)
DTrace for biginners part(1)
 
OFF4G Hokkaido LT
OFF4G Hokkaido LTOFF4G Hokkaido LT
OFF4G Hokkaido LT
 
Denoハンズオン【とらのあなラボ】
Denoハンズオン【とらのあなラボ】Denoハンズオン【とらのあなラボ】
Denoハンズオン【とらのあなラボ】
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
 
小さく始める Docker container の deploy
小さく始める Docker container の deploy小さく始める Docker container の deploy
小さく始める Docker container の deploy
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
 

Recently uploaded

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Recently uploaded (10)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

Tremaとtrema edgeの違い