IFTTTを使って、Twitterに流れてくるテスト関連の話題をSlackに流し込んでみました

f:id:trickmr:20180304153429j:plain

きっかけ

先日、Google Homeから「もくもくなう」とつぶやけるアプレットを作ってみました。 no-plan.hatenablog.jp そのときに利用したのが「IFTTT」というサービスで、これがとても面白かったので、別のアプレットを作ってみました。

ユーザーストーリー

  • 個人の趣味として
  • Twitterに流れてくる「ソフトウェアテスト」に関する話題を見逃さないために(見逃してもあとで気付けるようにするために)
  • テスト関連の話題を拾って記録しておいてくれるようにしたい

IFTTTとは

「IF This Then That」の略で、要するに「This」に設定したアプリケーションのふるまいを入力として、「That」に設定したアプリケーションのふるまいとして出力してくれるサービスのことです。

IFTTT - Wikipedia

Google Homeから「もくもくなう」とつぶやけるアプレット』を例に取ると、

  • 「This」のふるまい:「Googleアシスタント(Google Homeの中の人)」が「『もくもくなう』という文字列を受け取ること」
  • 「That」のふるまい:「Twitter」が「『もくもくなう』とつぶやくこと」

となります。

実装

IFTTTのUIに従って、以下の要領でアプレットを作ります。

  • 「This」に「Twitter」を指定し、トリガーとして「New tweet from search」を選択。
  • キーワードに「テスト戦略」など、好きな用語を指定。
  • 個人のSlackアカウントに、書き込み先に使う専用チャンネルを作成。
  • 「That」に「Slack」を指定し、先ほど作成したチャンネルを指定。

IFTTTのここがすごい

ノンコーディングで、下記のカスタマイズを除けば、3分程度で実装完了してしまいました。 お昼休みにちょこっと調べてさくっと実装。これはやばい。

困ったこと

実際に動かしてみると、部分一致でキーワードを拾ってきてしまいました。 たとえば、「テストタイプ」キーワードの場合、「心理テストです!あなたの性格タイプは~」みたいなものが拾われてしまいました。 そこで、伊藤由貴(@yoshikiito)さんに頂いたアドバイスなどを参考にしながら、以下の要領で「This」の検索条件をカスタマイズしました。 ついでに、複数のキーワードをひとつのアプレットにまとめてみました。

  • キーワードを「"」でくくる
  • 各キーワードをOR条件でつなぐ

要するにSQLのWHERE句を書くイメージですね。

以下の要領で書いていけば、キーワードをどんどん増やせます。

  • 「"テスト戦略" OR "テスト計画" OR "テスト設計" OR "テスト観点" OR "テストタイプ" OR "テストレベル" OR "テスト手順"」

※あまり増やすと怒られそうなので自重しています

結果

こんな感じで、指定したチャンネルに情報が流れてきます。 f:id:trickmr:20180304145905j:plain

まとめ

お手軽簡単便利にアプレットが実装できるというのがとにかくすごいですね。 多くのサービスに対応していて、パズル的に色々な組み合わせを試してみたくなる仕掛けになっているところも面白いです。 「アプリケーションをつくる」作業を辛くない、むしろ楽しいと感じさせてくれるサービスだなと感じました。 今後も色々とレシピを試してみて、自分が動かなくても済むように頑張っていきたいです。

Google Homeから「もくもくなう」とTwitterに投稿できるようにしました

きっかけはこちらの記事。

smarthacks.jp

とりあえずTwitter連携が面白そうだなー、ということで、記事を参考に作ってみました。

手順

  1. スマホにIFTTTをインストールする
  2. My Appletsを選択、「+」でアプレットを追加
  3. +this にGoogleアシスタントを指定
  4. 「Say a simple phrase」でトリガーとなる言葉を設定(例:チャーハンなう)
  5. +that にTwitterを指定
  6. つぶやきたい言葉を設定(例:チャーハンなう)
  7. 手順に沿って保存して完了(デフォルトでActiveになります)

動作確認

  • Google Homeに向かって「おっけーぐーぐる、ちゃーはんなう」と喋る。これだけ。
  • 成功すると、「わかりました。ちゃーはんなうとつぶやきます。」と返ってきます。
  • その後、Twitterに「チャーハンなう」と投稿されます。

使い道

チャーハンなうだと利用頻度が限られるので、「もくもくなう」にしてみました。 もくもく会に参加するときに便利!たぶん!

うまく動作させるコツ(?)

  • はっきりとはわかりませんが、イントネーションが重要みたいです。
  • 「もくもくなう」の場合、いわゆる「もくもく会」のイントネーションで「もくもく」と言ってしまうと、「すみません、わかりません」と返ってきてしまいました。「雲がもくもく」のイントネーションで発音するとうまくいきました。

さいごに

Google Homeで遊びたくてインストールしたIFTTTですが、むしろIFTTTの方が楽しいんじゃないかと思い始めてきました。 こちらもいろいろ遊んでみようと思います。

Scratchで遊んでみました

Scratch

scratch.mit.edu

きっかけ

デブサミ以降1週間くらい、(自分にとっては)濃くて重たい情報のインプットが続いていたので、気分転換になるものを探していました。ついでに、ボランティア活動で使えるネタ、つまり子ども向けに提供できる何かが見つかればラッキーという魂胆もありました。

Scratchを選んでみた理由

最初は東急ハンズで工作&ロボット系を物色していたのですが、とりあえずお値段がお高い。 もうちょっと敷居が低いものはないだろうか。。。と調べていたところ、「そういえばScratchって言語があったなー」と。

ScratchはGUIでコーディングができる(らしい)言語で、コンポーネントが非常にカラフルでポップなのが特徴です。 「あまり機能は充実してないだろうけど、敷居が低いというのはとても良い気がする。触ってみよう。」ということで、一冊書籍を買って始めてみました。

やってみた感想

書籍のサンプルプログラム(シューティングゲーム)を写経して、そのままいろいろカスタマイズしてみました。サンプルはだいたい30ステップで、めちゃくちゃシンプルです。リッチな開発環境が用意されているので、作業場所の構築をする苦労がありません。GUIなので、文法のタイプミスもありません。「セミコロンのタイプ漏れを見つけるのにウン時間費やす」方面のストレスが全く無く、ロジックに集中できます。

お決まりの教材ネタとしてFizzBuzzも書いてみましたが、普通の言語と特に何も変わらない形で作ることができました。

コンポーネントが「動き」「制御」「演算」といった形で色分けがされているので、可読性も非常に高いです。

動くものを素早く作ることができるのは、純粋に楽しいですね。

まとめ

「無料」「敷居が低い」「カラフルで楽しいうえに可読性も高い」「ミスしないように工夫されている」「素早く動くものが作れる」など、特徴を並べてみると「すごいなこれ」という感想になりました。

公開されているプログラムを拝見すると、結構複雑なものも作れそうですね。 ゲーム以外にも、しっかりしたアプリケーションも作れるのではないかと思います。

ということで、皆さま一度お試しあれ。

【WIP】状態遷移図を理解するために、RPG風に毒(猛毒)状態を状態遷移図で表現してみた

きっかけ

ブロッコリー(@nihonbuson )さんに状態遷移図の書き方を教えていただいたのがきっかけです。 そもそも状態遷移図をちゃんと書いたことがなかったので、いちど時間を使って書いてみよう、と思いました。

モチーフについて

もともとゲームが好きなので、いわゆるRPGをモチーフに書いてみようと思いました。 最初は特定のIPに寄せて書きました。

まず書いてみた&発表してみた

とりあえず勢いで書いてみた内容を、Toshiyuki Manabe(@ToshiManaPlus1 )さん主催のオンライン飲み会でレビューしていただきました。 元々は、書いた内容をブログに公開するだけの想定でいましたが、 「発表やってみたいんですがハードルが高くてですね」と発言したところ 「オンライン飲み会で喋ってみてはいかがでしょう」とお声がけいただきまして、レビューをいただくことができました。 誠にありがとうございます。

この時の内容は、特定のIPに寄せて書いた内容となっていたため、外部公開する予定はございません。

修正してみた

↑のレビューでコメントしていただいた内容を取り込んだ資料が、↓です。

f:id:trickmr:20180218172336j:plain

実際に書いて見た感想として、文字情報で仕様を羅列するよりもビジュアルに訴えることができるため、「抜け漏れに気づくことができる」という効果を実感できました。 特に、毒状態から毒状態への矢印など、「状態が変わらないことを確認するための矢印」が抜けてしまっていたので、これに気づけたことが大きかったと思います。(レクチャーで同じ内容を伺っていたにも関わらず、最初は書けていませんでした)

困ったこと

実際のRPGでは、毒状態以外にも複数の状態が同時に存在するため、それをどう表現するかが難しいと感じました。 たとえば、毒状態で(毒に関係のない)バフ・デバフを行った場合、毒状態は維持されつつ、そのバフ・デバフの効果は発生しなければなりません。 やや冗長にも思いましたが、「毒→毒」「猛毒→猛毒」の線について、項番を設けてバフ・デバフを表現しました。

困ったこと その2

毒/猛毒を取り巻く「別の状態」について、どこまで資料に盛り込むかを悩みました。 結論として、今回は「死亡」と「鉄化」という2つの状態について、毒/猛毒に関係する矢印のみ作図しました。 例えば、実際には「死亡→死亡」や「死亡→通常」という状態遷移がありえますが、今回テストケースとして整理したい情報はあくまで「毒/猛毒」に関する状態遷移ですので、意図的に書きませんでした。

今後について

次回は、上記に続いて状態遷移表を作成してきたいと思います。

デブサミ2018「変わるもの×変わらないもの」セッション資料まとめ

初日 2/15

1コマ目

speakerdeck.com

2コマ目

www.slideshare.net

www.slideshare.net

ランチセッション

www.slideshare.net

speakerdeck.com

3コマ目

speakerdeck.com

speakerdeck.com

www.slideshare.net

4コマ目

www.slideshare.net

speakerdeck.com

www.slideshare.net

5コマ目

speakerdeck.com

speakerdeck.com

www.slideshare.net

www.slideshare.net

6コマ目

www.slideshare.net

www.slideshare.net

speakerdeck.com

2018/2/15-16開催 『Developers Summit 2018』 Delphixセッション資料ダウンロード | アシスト ※ダウンロードフォーム

7コマ目

speakerdeck.com

 

2日目 2/16

1コマ目

speakerdeck.com

speakerdeck.com

www.slideshare.net

2コマ目

www.slideshare.net

www.slideshare.net

www.slideshare.net

speakerdeck.com

ランチセッション

www.slideshare.net

www.slideshare.net

 

3コマ目

speakerdeck.com

speakerdeck.com

www.slideshare.net

speakerdeck.com

speakerdeck.com

4コマ目

www.slideshare.net

www.slideshare.net

www.slideshare.net

5コマ目

speakerdeck.com

speakerdeck.com

speakerdeck.com

speakerdeck.com

6コマ目

niconare.nicovideo.jp

7コマ目

speakerdeck.com

docs.google.com

 

デブサミ2018「変わるもの×変わらないもの」【16-A-7】一生、エンジニアで食っていこう 参加メモ

このセッションのまとめ

  • 楽しいことに没頭しよう
  • 若い人に関わろう
  • 国境を越えよう
  • 発信しよう!
  • 独立しよう!

メモしたこと

  • 40歳からのキャリアパスは自分で設計
  • すごい人の生存バイアスな話ではなく、ふつうのエンジニアの話
  • 技術イノベーションがあると下剋上の大チャンス なければ匠が勝つ世界
  • いつまでもワクワクしていたい 没頭した方が強い でもダークサイドもある
  • 笑うから楽しくなる 楽しいは作れる
  • 新しい情報の入れ方 10代とかの若い世代から 国境を超えた先から
  • 怖くない吸血鬼になる こちらから飛び込む 慌てて噛みつかない 惜しみなく愛を注ぐ若い世代にフルコミット
  • ダメ出ししない 若い人のオーラを浴びる→圧倒的に未来志向になる 新しい常識に触れられる 急速な変化に慣れる
  • 外に行く 外とはグローバル
  • 個で繋がっている 議論ネタとLTネタを準備する 会社の紹介ではなくて個人の紹介
  • 独立っていうのは、誰かに仕事を持ってきてもらうことてはない 名指しでアサインをもらうこと 会社をやめるとかいう話ではない
  • 慣れないことをやって急に失敗するとダメ→ 技術コミュニティへの貢献 ブログなどでの発信 ボランティアなどへの参加

感想

  • ボランティアはかれこれ3年くらい参加してますが、背中を押していただいた感ある
  • 発信は始めたばかりですが、これからも続けていきたい

デブサミ2018「変わるもの×変わらないもの」【16-C-6】The Amazon Way~Amazonのソフトウェア開発~ 参加メモ

講演資料

※本講演の資料は、配布されません。

このセッションのまとめ

  • ファンタジーを現実世界に顕現させている企業の組織カルチャーのおはなし

メモしたこと

  • お客様に徹底的にこだわる 常にお客様を起点として考える という考え方が一貫している
  • メカニズム PR(プレスリリース)/FAQ
  • プレゼンツールの利用はしない プレゼンスキルに依存してしまうから ナラティブベースのレポートを使う
  • 昔の話 モノリシックな開発サイクル デリバリーのパイプラインが一本 ビルドやテストに時間がかかる
  • 2001年から取り組み始めた…!? マイクロサービス化 2ピッツァルール
  • 2ピッツァチームは、作るものに対する全て オーナーシップと責任を負う
  • devとopsが分かれているのはトラディショナル🙄 2006年の話
  • SDETは組織全体でテストを良くすることに集中
  • 開発スタイルすら各チームで自由 全社標準とかは無いのかな
  • トレーニング よくある事だが、頻度高めに徹底的にやっている
  • 年間5000万回のデプロイを実現
  • OLP 行動規範 リーダーシッププリンシプル
  • 普段の業務中の会話でもOLPは使われている
  • テストは、すべてを自動化しようとしている
  • テストしやすいアーキテクト CI
  • 重要なことにフォーカスするために、イテレーションを分ける
  • 毎日が最初の一歩 これらがカルチャーの一端

感想

  • カルチャーとカルチャーとカルチャーの話
  • 概ね知識としては聞いたことがある話ばかりだったけど、講演としてあらためて伺うと説得力がある。ファンタジーを現実世界に持ち込んでいるというところが非常にすごい。
  • Amazonさんが時代の先を行っていると思ってきたけど、そうではなくて、我々が遅れているのではないかという印象に変わった

参考

www.amazon.jobs