SlideShare a Scribd company logo
1
hubot-slack v4移行時の
ハマりどころ
第3回hubot×chatops勉強会
2017年2月23日
@knjcode
2
hubot-slack v4 リリース
随分前(2016年7月)ですが、hubotのslack用アダプター
hubot-slack がv4系にメジャーアップデートしました。
3
hubot-slack v4 のメリット
node-slack-sdkのバージョンアップ(v3.4.0以降を利用)
これにより互換性が失われた部分もあり
Slackサーバとのwebsocket接続の安定性が向上(体感ですが)
v3のほうが接続が切れる頻度が高い
v3では稀に再接続出来ずにスタックすることがあった
ファイルアップロードのサポート
リアクションのサポート(v4.1.0から)
4
hubot-slack v4使ってますか?
v4からは内部で利用するSlack SDKが更新されており
既存のhubot-scriptの動作に影響がでる場合があります
この資料では、主にhubot-scriptの互換性に関して
v4系への移行時のハマりどころをまとめて紹介します
目次
私のslackbot運用状況
v3系とv4系におけるSlacke SDKのバージョンについて
msg.envelope.roomの値がchannel名からIDに変更
attachments利用方法の変更
名前とIDの相互変換
ユーザデータの参照
Slack Web APIの呼び出し方法について
raw_messageの扱い
ファイルアップロード
リアクション
5
6 . 1
私のslackbot運用状況
趣味や業務で多数botを運用しています
bot数:6(共同運用含む)
ホスト:Heroku, Bluemix, AWS, Scaleway, sakura VPS
形態:dockerコンテナ4, heroku 1, Bluemix 1
hubotはざっくり3ロケーションで運用
通信が多そうなbotはSlackやRedisの近くに配置
1つを残してhubot-slack v4に移行済み
6 . 2
7
v3系とv4系におけるSlacke SDKのバージョンについて
hubot-slack v3.4.2 (v3系最新)
@slack/client ⇒1.4.1を利用(~1.4.0)
hubot-slack 4.3.2 (v4系最新)
@slack/client ⇒3.8.1を利用(^3.4.0)
msg.envelope.roomの値がchannel名からIDに変更
hubot-slack v3
robot.respond /room/i, (msg) ->
room = msg.envelope.room
# room => "general"
hubot-slack v4
robot.respond /room/i, (msg) ->
room = msg.envelope.room
# room => "C03NM270D"
をchannel名として扱う
hubot-scriptは修正が必要となる
8
9 . 1
attachments利用方法の変更
robot.emit 'slack.attachment', <attachements data>
から
msg.send <attachments data>
に変更になった
hubot-slack v3
robot.respond /attachments test$/i, (msg) ->
data =
content:
text: '*error*: something bad happened'
color: 'danger'
mrkdwn_in: ['text']
channel: msg.envelope.room
robot.emit 'slack.attachment', data
hubot-slack v4
robot.respond /attachments test$/i, (msg) ->
data =
attachments: [
text: '*error*: something bad happened'
color: 'danger'
mrkdwn_in: ['text']
]
msg.send data
9 . 2
10 . 1
名前とIDの相互変換
(SlackSDK更新により)名前またはIDから
ユーザオブジェクトやチャンネルオブジェクトを
取得するメソッドの互換性が無くなりました
robot.adapter.client.getUserByName('knjcode') # hubot-slack v3
↓
robot.adapter.client.rtm.dataStore.getUserByName('knjcode') # hubot-slack v4
これまで 配下にあったメソッドが
配下に移動
以降に細かく解説します
10 . 2
getUserByID ⇒getUserById
メソッド名およびメソッド位置の変更
hubot-slack v3
robot.adapter.client.getUserByID('U0MU03G5V').name
# => knjcode
hubot-slack v4
robot.adapter.client.rtm.dataStore.getUserById('U0MU03G5V').name
# => knjcode
※ メソッド名末尾がID ⇒Id に変わってる点も注意
10 . 3
getUserByName
メソッド位置の変更
hubot-slack v3
robot.adapter.client.getUserByName('knjcode').id
# => U0MU03G5V
hubot-slack v4
robot.adapter.client.rtm.dataStore.getUserByName('knjcode').id
# => U0MU03G5V
10 . 4
getChannelGroupOrDMByID ⇒
getChannelGroupOrDMById
メソッド名およびメソッド位置の変更
hubot-slack v3
robot.adapter.client.getChannelGroupOrDMByID('C03NM270D').name
# => general
hubot-slack v4
robot.adapter.client.rtm.dataStore.getChannelGroupOrDMById('C03NM270D'
# => general
※ メソッド名末尾がID ⇒Id に変わってる点も注意
10 . 5
getChannelGroupOrDMByName
⇒getChannelOrGroupByName
メソッド名およびメソッド位置の変更
hubot-slack v3
robot.adapter.client.getChannelGroupOrDMByName('general').id
# =>  C03NM270D
hubot-slack v4
robot.adapter.client.rtm.dataStore.getChannelOrGroupByName('general').id
# => C03NM270D
※ メソッド名からDMの文字が消えている点も注意
10 . 6
getDMByName
hubot-slack v3の メソ
ッドから が分離
hubot-slack v3
robot.adapter.client.getChannelGroupOrDMByName('knjcode').id
# => U0MU03G5V
hubot-slack v4
robot.adapter.client.rtm.dataStore.getDMByName('knjcode').id
# => U0MU03G5V
10 . 7
getDMById
実装が壊れてる
内部で が呼ばれている
(getUserByIdで事足りるのであまり困らない?)
11
ユーザプロフィール等の参照
v4では が参照できなくなった
(例えば、ユーザアイコンを取得する場合等に利用)
hubot-slack v3
userId = msg.envelope.user.id
robot.brain.data.users[userId].slack.profile.image_48
# => "https://a.slack-edge.com/2fac/plugins/slackbot/assets/service_48.png"
hubot-slack v4
uesrId = msg.envelope.user.id
robot.adapter.client.rtm.dataStore.users[userId].profile.image_48
# => "https://a.slack-edge.com/2fac/plugins/slackbot/assets/service_48.png"
※ hubot-slack v4.3.0 からhubot-slack v3互換となった
( を参照できるようになった)
12
Slack Web APIの呼び出し方法について
v3では が利用できた(そもそもhubot-slack内部
メソッドなのであまり使うべきではないですが…)
hubot-slack v3
robot.adapter.client._apiCall 'chat.postMessage',
channel: msg.envelope.room
text : 'hello'
hubot-slack v4
robot.adapter.client.web.chat.postMessage(msg.envelope.room, 'hello')
v4からは 配下にある
Slack SDKのWebAPI用メソッドを利用できる
(もちろん、自前でAPI呼び出ししてもよい)
13 . 1
raw_messageの扱い
slackに特化したhubot-scriptを書いていると、
以下のようにslackから通知される を
処理したくなってくる
presence_changeイベントを検知してログに出力する例
robot.adapter.client.on 'raw_message', (msg) ->
if msg.type is 'presence_change'
console.log msg
13 . 2
raw_messageがobjectからstringに変更
取得できるraw_messageがオブジェクトから
JSONの文字列になった
これまで通りにオブジェクトとして扱うには
一度JSONとしてparseしてやる必要がある
message = JSON.parse msg
13 . 3
メソッド位置の変更
メソッド位置も変更されました
hubot-slack v3
robot.adapter.client.on 'raw_message', (msg) ->
  if msg.type is 'presence_change'
console.log msg
hubot-slack v4
robot.adapter.client.rtm.on 'raw_message', (msg) ->
message = JSON.parse msg
if message.type is 'presence_change'
console.log message
14 . 1
ファイルアップロード
v4からはファイルアップロードに対応しました
(Slack SDKを内部的に利用しているだけですが)
lenna.pngをアップロードする例
robot.hear /lenna/i, (msg) ->
data =
file: fs.createReadStream('lenna.png')
channels: msg.envelope.room
robot.adapter.client.web.files.upload("lenna.png", data)
hubot-slack v4移行時のハマりどころ #hubot_chatops
14 . 2
15
リアクション
v4からはreactions用の が追加されました
(v4.1.0から)
ユーザがつけたリアクションをオウム返しする例
robot.react (msg) ->
robot.logger.debug msg.message.type, msg.message.reaction
if msg.message.type == "added"
data =
channel: msg.message.item.channel
timestamp: msg.message.item.ts
robot.adapter.client.web.reactions.add(msg.message.reaction, data)
16
参考
Slack Developer Kit for Hubot - Upgrading from a Previous Version
Slack Developer Kit for Hubot - Basic Usage
slack-api/hubot-slack
slack-api/node-slack-sdk
17
ありがとうございました
Ad

More Related Content

What's hot (20)

Amazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオンAmazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオン
Amazon Web Services Japan
 
vImageのススメ(改訂版)
vImageのススメ(改訂版)vImageのススメ(改訂版)
vImageのススメ(改訂版)
Shuichi Tsutsumi
 
第6回zabbix jp勉強会資料
第6回zabbix jp勉強会資料第6回zabbix jp勉強会資料
第6回zabbix jp勉強会資料
Daisuke Ikeda
 
適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介
Takeshi Mikami
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
NTT DATA Technology & Innovation
 
100614 構造方程式モデリング基本の「き」
100614 構造方程式モデリング基本の「き」100614 構造方程式モデリング基本の「き」
100614 構造方程式モデリング基本の「き」
Shinohara Masahiro
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
 
Azure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data LakeAzure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data Lake
Hideo Takagi
 
KafkaとPulsar
KafkaとPulsarKafkaとPulsar
KafkaとPulsar
Yahoo!デベロッパーネットワーク
 
オンプレを少しずつコンテナ化する
オンプレを少しずつコンテナ化するオンプレを少しずつコンテナ化する
オンプレを少しずつコンテナ化する
Kenkichi Okazaki
 
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
Amazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハック
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハックAWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハック
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハック
Amazon Web Services Japan
 
距離まとめられませんでした
距離まとめられませんでした距離まとめられませんでした
距離まとめられませんでした
Haruka Ozaki
 
SpringBootTest入門
SpringBootTest入門SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
 
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
Takashi Takizawa
 
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
Masamitsu Maehara
 
スマホアプリ開発者のためのWeb api開発入門の入門
スマホアプリ開発者のためのWeb api開発入門の入門スマホアプリ開発者のためのWeb api開発入門の入門
スマホアプリ開発者のためのWeb api開発入門の入門
Kenyu Miura
 
Python入門
Python入門Python入門
Python入門
Shohei Okada
 
NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定
Kan Itani
 
Amazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオンAmazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオン
Amazon Web Services Japan
 
vImageのススメ(改訂版)
vImageのススメ(改訂版)vImageのススメ(改訂版)
vImageのススメ(改訂版)
Shuichi Tsutsumi
 
第6回zabbix jp勉強会資料
第6回zabbix jp勉強会資料第6回zabbix jp勉強会資料
第6回zabbix jp勉強会資料
Daisuke Ikeda
 
適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介
Takeshi Mikami
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
NTT DATA Technology & Innovation
 
100614 構造方程式モデリング基本の「き」
100614 構造方程式モデリング基本の「き」100614 構造方程式モデリング基本の「き」
100614 構造方程式モデリング基本の「き」
Shinohara Masahiro
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
 
Azure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data LakeAzure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data Lake
Hideo Takagi
 
オンプレを少しずつコンテナ化する
オンプレを少しずつコンテナ化するオンプレを少しずつコンテナ化する
オンプレを少しずつコンテナ化する
Kenkichi Okazaki
 
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
Amazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハック
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハックAWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハック
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハック
Amazon Web Services Japan
 
距離まとめられませんでした
距離まとめられませんでした距離まとめられませんでした
距離まとめられませんでした
Haruka Ozaki
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
 
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
Takashi Takizawa
 
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
Masamitsu Maehara
 
スマホアプリ開発者のためのWeb api開発入門の入門
スマホアプリ開発者のためのWeb api開発入門の入門スマホアプリ開発者のためのWeb api開発入門の入門
スマホアプリ開発者のためのWeb api開発入門の入門
Kenyu Miura
 
NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定
Kan Itani
 

Similar to hubot-slack v4移行時のハマりどころ #hubot_chatops (20)

今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
Couchbase Japan KK
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Kazushi Kamegawa
 
Mvc conf session_2_shibamura
Mvc conf session_2_shibamuraMvc conf session_2_shibamura
Mvc conf session_2_shibamura
Hiroshi Okunushi
 
hubotで快適BOT生活
hubotで快適BOT生活 hubotで快適BOT生活
hubotで快適BOT生活
Kazufumi Otani
 
Flyway使いたい
Flyway使いたいFlyway使いたい
Flyway使いたい
fourside
 
論理レプリケーション用スロットのフェールオーバ機能 (第48回 PostgreSQLアンカンファレンス 発表資料)
論理レプリケーション用スロットのフェールオーバ機能 (第48回 PostgreSQLアンカンファレンス 発表資料)論理レプリケーション用スロットのフェールオーバ機能 (第48回 PostgreSQLアンカンファレンス 発表資料)
論理レプリケーション用スロットのフェールオーバ機能 (第48回 PostgreSQLアンカンファレンス 発表資料)
NTT DATA Technology & Innovation
 
Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7
Sea Mountain
 
SPDY/3 の HTTP 重畳効果を測定する
SPDY/3 の HTTP 重畳効果を測定するSPDY/3 の HTTP 重畳効果を測定する
SPDY/3 の HTTP 重畳効果を測定する
彰 村地
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
Kotaro Noyama
 
Vagrant を Web開発環境に使う
Vagrant を Web開発環境に使うVagrant を Web開発環境に使う
Vagrant を Web開発環境に使う
Masashi Shinbara
 
Rookの基礎・バージョンアップ
Rookの基礎・バージョンアップRookの基礎・バージョンアップ
Rookの基礎・バージョンアップ
Takashi Sogabe
 
Mercurial入門
Mercurial入門Mercurial入門
Mercurial入門
You&I
 
【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続
【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続
【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続
Brocade
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
 
これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみようこれからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみよう
Nobuyuki Sasaki
 
Zabbixをもっと使おう @OSC 2016 Tokyo/Fall
Zabbixをもっと使おう @OSC 2016 Tokyo/FallZabbixをもっと使おう @OSC 2016 Tokyo/Fall
Zabbixをもっと使おう @OSC 2016 Tokyo/Fall
Atsushi Tanaka
 
Rails and twitter #twtr_hack
Rails and twitter #twtr_hackRails and twitter #twtr_hack
Rails and twitter #twtr_hack
i7a
 
Couchbase meetup20140225[Release Note 2.5]
Couchbase meetup20140225[Release Note 2.5]Couchbase meetup20140225[Release Note 2.5]
Couchbase meetup20140225[Release Note 2.5]
ktoda
 
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発
Hironao Sekine
 
VYATTA USERS MEETING Spring 2014 - JAZUG
VYATTA USERS MEETING Spring 2014 - JAZUGVYATTA USERS MEETING Spring 2014 - JAZUG
VYATTA USERS MEETING Spring 2014 - JAZUG
Keiji Kamebuchi
 
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
Couchbase Japan KK
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Kazushi Kamegawa
 
Mvc conf session_2_shibamura
Mvc conf session_2_shibamuraMvc conf session_2_shibamura
Mvc conf session_2_shibamura
Hiroshi Okunushi
 
hubotで快適BOT生活
hubotで快適BOT生活 hubotで快適BOT生活
hubotで快適BOT生活
Kazufumi Otani
 
Flyway使いたい
Flyway使いたいFlyway使いたい
Flyway使いたい
fourside
 
論理レプリケーション用スロットのフェールオーバ機能 (第48回 PostgreSQLアンカンファレンス 発表資料)
論理レプリケーション用スロットのフェールオーバ機能 (第48回 PostgreSQLアンカンファレンス 発表資料)論理レプリケーション用スロットのフェールオーバ機能 (第48回 PostgreSQLアンカンファレンス 発表資料)
論理レプリケーション用スロットのフェールオーバ機能 (第48回 PostgreSQLアンカンファレンス 発表資料)
NTT DATA Technology & Innovation
 
Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7
Sea Mountain
 
SPDY/3 の HTTP 重畳効果を測定する
SPDY/3 の HTTP 重畳効果を測定するSPDY/3 の HTTP 重畳効果を測定する
SPDY/3 の HTTP 重畳効果を測定する
彰 村地
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
Kotaro Noyama
 
Vagrant を Web開発環境に使う
Vagrant を Web開発環境に使うVagrant を Web開発環境に使う
Vagrant を Web開発環境に使う
Masashi Shinbara
 
Rookの基礎・バージョンアップ
Rookの基礎・バージョンアップRookの基礎・バージョンアップ
Rookの基礎・バージョンアップ
Takashi Sogabe
 
【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続
【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続 【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続
【Brocade OpenStack ソリューション】MPLS VPNデータセンター間接続
Brocade
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
 
これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみようこれからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみよう
Nobuyuki Sasaki
 
Zabbixをもっと使おう @OSC 2016 Tokyo/Fall
Zabbixをもっと使おう @OSC 2016 Tokyo/FallZabbixをもっと使おう @OSC 2016 Tokyo/Fall
Zabbixをもっと使おう @OSC 2016 Tokyo/Fall
Atsushi Tanaka
 
Rails and twitter #twtr_hack
Rails and twitter #twtr_hackRails and twitter #twtr_hack
Rails and twitter #twtr_hack
i7a
 
Couchbase meetup20140225[Release Note 2.5]
Couchbase meetup20140225[Release Note 2.5]Couchbase meetup20140225[Release Note 2.5]
Couchbase meetup20140225[Release Note 2.5]
ktoda
 
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発
Hironao Sekine
 
VYATTA USERS MEETING Spring 2014 - JAZUG
VYATTA USERS MEETING Spring 2014 - JAZUGVYATTA USERS MEETING Spring 2014 - JAZUG
VYATTA USERS MEETING Spring 2014 - JAZUG
Keiji Kamebuchi
 
Ad

hubot-slack v4移行時のハマりどころ #hubot_chatops