1. ツナギメエフエム
  2. Ep.24 小山( @k1LoW )さん、ち..

・今回のゲスト

 ・k1LoW ( @k1LoW )さん

 ・ちゃまほり ( @tyamahori )さん

PHPerRoom

 ・Twitter

  ・https://twitter.com/PHPerRoom/status/1595051505006280704

 ・oVice

・なぜOSSが趣味になったのか

 ・いまさら聞けない「マッシュアップ」超入門

・OSSへのPull Requestが取り込まれた

・Pull Requestでの英語のやりとりについて

・作りたいOSSのアイデアについて

・OSSはプラモデル的なもの

・今回のPodcast収録のきっかけとなった「runn」について

 ・runn

  ・複数のAPIエンドポイントをまたぐテストをgo testで実行するための仕組み

  ・runn is a package/tool for running operations following a scenario. / golang.tokyo #32

 ・読み方が難しいOSS

  ・The NGINX Name

  ・How to pronounce "ngrok"

 ・類似ツール

  ・scenarigo

  ・Step CI

 ・最近こんなOSSにお世話になった

  ・awspec

   ・Route 53でレコードを登録する機会があったのでawspecを使ってテストしてみた

  ・tagpr

   ・tagprで実現するPull Request上で進めるOSSのリリースマネジメント

  ・PHPStan

  ・PHP-CS-Fixer

  ・ScoutSuite

   ・クラウドセキュリティ監査ツール「Scout Suite」を使って、ゆるゆる設定のAWS環境をチェックしてみた

  ・Radon

・OSS開発をメイン事業としている会社に入りたいと思ったことは?

 ・Trivy Vulnerability Scanner Joins the Aqua Open-source Family

・アカセさんにおすすめしたいOSS

 ・Sheer Heart Attack

  ・プロセスやホストのメトリクスをトリガーに任意のコマンドを実行できるデバッグ用ツール Sheer Heart Attack を作った

PHPerKaigi2023のトーク募集について

 ・PhpStorm/PHPStan/PHP CS Fixerを駆使して、チーム開発でのコード品質を高めていこう!

 ・失敗から学ぶRepositoryパターンの上手な実装の仕方・使い方

--- Send in a voice message: https://podcasters.spotify.com/pod/show/tsunagimefm/message
00:07
はい、始まりました。tsunagimefmの第24回です。
tsunagimefmは、IT勉強会コミュニティ繋がりの方々をゲストに迎えて雑談するポッドキャストです。
まずは、ツイッターのハッシュタグについてお知らせです。
ハッシュタグは、ガタガナでtsunagimefmです。ツイートお待ちしています。
今回で第24回目です。
今日のゲストは、小山さんと茶間堀さんです。
それでは、自己紹介をお願いします。
まずは、小山さんからお願いします。
GMO Pebabo株式会社という面白い会社です。
今、技術基盤チームでソフトウェアエンジニアをしています。
小山といいます。よろしくお願いします。
はい、よろしくお願いします。
続いて、茶間堀さんお願いします。
はい、はじめまして。茶間堀と申します。
自分は株式会社リタリコという会社。
障害のない社会を作るというビジョンを掲げた会社で、
障害福祉に関するサービスの開発を携わっているものでございます。
どうぞ、今日はよろしくお願いいたします。
はい、よろしくお願いします。
今日は、聞いていただいている方、もしかしたらご存じない方もいるかもしれないですけど、
オービスというオンラインのコミュニケーションツールのサービスがあって、
以前ゲストで出ていただいたチャチさんという方が、
オービスの中にペチパールームというとても素敵な場を提供してくれているんですけど、
そこでようなようなペチパーたちが集まって雑談をしているんですよ。
最近茶間堀さんと私がペチパールームで仲良くなって話していたんですけど、
以前からこのポッドキャストに出てみたいって茶間堀さんが言ってくれてて、
とある日にですね、最近大山さんが開発しているOSSをちょっと使ってるんですよ、みたいな話になって、
で、大山さんと話したいんですけど、どうにかならないですか、みたいなことを言われるんですね。
今日の収録につながったという経緯でございます。
はい、ありがとうございます。
なんかね、ポッドキャストやる前に既にオービスで僕いないところで既に大山さんと2人で話してて、
たまたまですね。
なんか収録しなくていいじゃん、みたいな。
そうですね、ほんとたまたまでしたね、そこは。
たまたまいたらたまたま、そうなんですよね、大山さんがいらっしゃって話題に…
あれ珍しかったですよね、大山さんが来てたの。
私は初めて人と話せましたね。
そうなんですか?たまにいるんですか?
いやいや、時々Twitterで人が入ったのがわかるじゃないですか。
03:02
はいはいはい。
で、誰かいるのかなと思って入って、別に何か聞くわけでもなく、雰囲気違うかなと思ったら出るっていう。
あー、なるほど。
あのですね、私とか茶森さんはかなりの広角率でいます。
そうですね、エンカウント率めちゃくちゃ高いと思います。
います。
そうですよね、確かTwitterで、そうですよね、あかすさんにつないでいただいた後に、
次の日に確かペチパルームでお話できて、
こんな都合のいい展開っていうか、こんなトントン拍子に進むみたいな気持ちが当時すごい感じましたね。
いやー、それで収録につながったんで僕は嬉しいんですけどね。
ありがとうございます。僕も本当に嬉しいです。
二人をつなげることもできたし。
よかったです。
で、そのつながるきっかけでもなったというか、ちょっとOSSの話ですね。
その辺りを今日メインでしていきたいなと思ってるんですけど、
大山さんはいつもOSS趣味ですみたいに言ってるんで、
ちょっとその辺の話をしたいなと思ってるんですけど、
大山さんなんで趣味になったんですか?
なんで趣味になったかですか?
そうそう。
これはもう遥か昔になりますけどね。
なんかやっぱり成功体験があったからだとは思ってます。
誰かに使ってもらった体験ができるじゃないですか。
それが嬉しくて、そこからっていうのが一つとですかね。
あれなんですかね。
ウェブサービスって皆さん昔の人たちって作りませんでした?
自分で自分の好きなウェブサービスって。
なんか自分用とか。
自分用とか。
うん。だったら作ったりはしたことがあるかな。
公開までは至ってないかもですね。
なるほど。
田村さんとかどうです?
ウェブサービスっていうよりかは、
自分用の個人ブログをちゃんとデータベースから起こして、
フレームワーク使って、
とりあえず動けばいいやみたいな精神で作ったのは
駆け出した頃になりましたね。
昔、本当にこれ昔話みたいになりますけど、
マッシュアップとかあった時代あったじゃないですか。
はいはいはい。
ああいう時代って世の中のウェブエンジンにある人たちは。
チャマホリさんと世代の断絶があった。
そうそう。
マッシュアップとかみたいな。
ですよね。
マッシュアップですか?
えーとね。
えーとね。
なんて言えばいいんだろうな。
最近ウェブ3っていうバズワード的なものがあるじゃないですか。
はい。
かなり昔の世代はウェブ2.0っていうバズワードがあってですね。
そうですね。それは聞いたことありますね。
その頃にマッシュアップっていうキーワードが流行ったんですよ。
06:03
マッシュアップとは何ぞやっていう話なんですけど、
最近では当たり前なんですけど、いろんなサービスのウェブのAPIがいろいろあるじゃないですか。
そのウェブのAPIをいろいろ組み合わせて新しくウェブサービスを作るみたいな
流行りみたいなのが一時期あったんですよ。
そのことをマッシュアップと呼んでた記憶があります。
あってますね。
みんなタケノコのようにウェブサービスを作ってた時期があってですね。
そうすると一人で全部作るんですよね。
ちっちゃいものだと。
それの延長線上がまだ続いてる感じですかね。
小さな箱庭みたいな形で作るみたいな。
OSSをいきなり作るところから何ですか?
例えば別の何かをすでに自分が使っているOSSにコントリビュートするっていうのが起点ではなく、
そっちじゃなくいきなり自分が作って公開っていうのが先なんですか?
そうですね。
人によるかもしれないんですけど、
人のOSSにコントリビュートする方が自分で一から作るよりもハードルが高いと思ってるんですよ。
なるほど、そうなんだ。
そっち来てる人もいるというか、どっちが多いのかわからないですけど、
自分が使っているフレームワークだったりオシランスツールとかにプルリクを送るみたいなのをやる人もいますよね。
そうですね。
そっちの方が先なのかなと思う。
そうですね。さっきのウェブサイトを作るみたいなところで言うと、
やっぱり自分で全てを決められる、
あとその時でも、
全く同じようなものを作るのってウェブサービスだとちょっと違うじゃないですか。
焼き直しというかクローンを作るのは作るで面白いんですけど、
そうじゃなくて打ち出すみたいな時に、
人と違うものを作りたいっていうのがあるじゃないですか。
そういうのがあるんですね。
勉強的には焼き直しも全然僕はいいと思っていて、
シュアリン再発明って全然賛成ではあるんですけど、
小山さん的にはないものを作りたいっていうのは?
僕は全然ないと思っていて、
僕は全然ないと思っていて、
僕は全然ないと思っていて、
僕は全然ないと思っていて、
僕は全然ないと思っていて、
小山さん的にはないものを作りたいのが衝動なんですね。
そうですね。
あとはあまりに設計思想が違うものにコントリビュートするのは、
09:05
お互いに良くないと思っているので、
そこはもしかしたらシャリンの再発明かもしれないけど、
自分なりの違うものを作ったりするっていうことはありますね。
ジャマホリさんはそういうOSSに対する思いみたいなものってありますか?
最近なんだっけ、
最近OSSにコミットして取り込まれたみたいな話をされてましたよね。
取り込まれてめちゃくちゃ嬉しくて、
あーっていう、
普段使っているツール、
ララベルから派生しているちょっとしたツール、OSSのツールだったんですけど、
そこでPHP、来るべき8.2aの対応の足掛かりとして、
今からできるプルリクを作って出したんですけど、
それが本当に取り込まれたんですが、
本当にすごい達成感があったなっていう気持ちで、
めちゃくちゃ嬉しいなっていう。
ある意味、ちょっと汚いって、意地汚いってあるから、
ちょっとした実績になったなっていうところで、
すごいやった感あって、めちゃくちゃ嬉しいなっていうのは最近ですね。
それはやっぱり嬉しいですよね、エンジニアとしてはね。
プルリク取り込まれるって。
自分の名前が刻まれてるというか、
コミットログにあるみたいなところはやっぱり嬉しいですね。
こうやってOSSにハマっていくのかみたいな気持ちになってますね。
OSSに対してのハマり方、いろいろあると思うんですけど、
そのパスはいいですよね。テンション上がって。
ただこれにも前置きがあって、
最初1,2週間くらいプルリク出して放置されてたんですよ。
それが結構そこそこへこんでてみたいな。
メンション飛ばしてレビューお願いしますみたいな感じでプルリク上でやって、
そしたら気づいたら取り込まれててみたいな。
でも良かったですねっていうのは、
問答無用でクローズするオーナーさんもたくさんいるわけじゃないですか。
そうですね。
OSSによっては。
大きいOSSだと、問答無用でクローズしないと収拾つかないんだろうな、
みたいな感じは思っちゃうんですけどね。
耳が痛いですね。
笑って聞いてるなって思ったのはそういうことなんですか?
いや、放置してしまってるとか、
12:05
多分相手にとってもしかしたら微妙かもしれないタイミングでクローズするとか、
経験としてはあるので、耳が痛いなという。
いろいろ作ってると、アクティブじゃないリポジトリの存在っていうのがたくさんあるわけで、
忘れた頃にプルリクがやってきて放置するみたいなのもあるでしょうね。
いろいろあるんですよね。
ちょっと違うんだけどなとか思う内容とかもありますし。
その辺聞きたい。
多分これの一番問題は、
私が英語が苦手だっていうことが一番大きい問題だと思ってるんですけど。
そんな頻繁に英文のプルリクみたいなのって来るもんなんですか?
私の持ってるリポジトリのプルリクエストは基本英語で来るんですけど、
例えばそこでこうしてほしいなとか、
これはもしかしたら設計思想的にワンステップ、ツーステップ噛まないと厳しいかなとか、
あとはどういうことですかみたいなことがあったりするときに、
その会話をするのが結構私が苦手なので、
多分私の英文が相手にどう伝わってるかそれはちょっと不安でしかないんですけど。
確かにですよね。テキストだけでネイティブじゃない言語でやると、
ちょっとした書き方でニュアンスが変に伝わったりとかありそうだなみたいな。
日本語でもそういうのがあるのに、外国語だったら絶対そのリスクあるよなみたいな気もしますよね。
そうですね。やっぱりそこはやるしかないのでやるんですけど、
あとやり取りをしていて、結局どっちが玉持ちだっけみたいな感じで終わってしまうまま放置とか。
すごくこうちょっと辛い話なんですけどね。どうしたものかっていうこともあったりとかしますね。
そうですね。いろんなOSSとかプルリクエストのやり取りとか、
一周のやり取りがどうかってあれですけど、
あれこれいろいろやったのにどうなったんだみたいなとかは往々にしていますね。
ありますね。
基本耳が痛いですっていう。
すいませんという気持ちです。
15:00
小山さんはたくさんOSS作ってると思うんですけど、
作ろうと思ってるものってメモってたり、急にアイディアが降ってきたりするものなんですか?
私はメモってますね。
じゃあ作りたいものがいろいろあって。
作るかどうかはわかんないけど、これがあったらいいだろうなメモはありますね。
なるほど。
これ画面共有できたら共有できるんですけど、残念ながらできないと思うのであれですけど。
そうですね。これはちょっとできないですね。会話の途中では。
メモしてますね。
そこ気になってて急に降ってきて作ってるのか、思いの丈が蓄積されてるのか、どっちなんだろうなと思って。
メモがあったんですね。
ありますあります。
そのメモを元にこのタイミングで今これかなみたいなのがあるんですか?今作るといいかもなみたいな。
作りたいと思う前のメモがあるので、作りたくなった時に作る感じの方が多いですね。
基本私は課題が見えないと作れない人なので、その課題をこう解決できたらいいんじゃないかなとかいう風に置いて書いて、結構寝かしておくんですよ。
ある時技術スタック的に繋がったりとか、書いておくと脳内にインデックスが張られるというか、気づけるというか。
ある時気づいて、これでいけるんじゃね?ってなって作り始めるって感じですね。
なるほど。
自分はバイタリティがなくなってきちゃってるので、使ってるOSSでどうしても自分ができそうなところだとか困ってたら、じゃあもう一個仕上げてなんとかやれるかな?みたいな感じですよね。
でもそれをずっとやってきてるのは関心でしかない。
多分だから趣味って言ってるんですけど。
そうですよね、趣味って言ってますね。
プラモデルとかそういうのに近いんじゃないのかな?とか思ってるんですけどね。
積み出るプラモがあって、その中から作りたいのを作って。
分かりやすい。
いい感じで塗れたとか、いやこれはもう少しこういう風に塗ってみようかなとかいう形でずっと細かくちまちまやって。
めちゃくちゃ分かりやすい例えでしたね。
18:00
よかった。
チャムホリさんと大山さんをお話しするきっかけになった元のOSSの話をしましょうか。
RANというOSSを使ってるんでしょうか?
そうですね、正式名称はRANNですけど、普段僕の所属しているチームではRANっていう風に呼んでますね。
RANっていうのを使ってるんですね。
はい、そうです。正式名称は大山さんよくRANNなんですよね。
そうですね、RANNですね。
あれね、今日これ読もうと思ってて、発音は書いた方がいいと思うよ。
なるほど。
エンジンXとか発音のページとかあるんですよ。
ほう、なるほど。
読みにくいOSSたくさんあるじゃないですか。
そういうのって、プロナンシエーションページが必ずあって、これはこう読みますみたいな。
確かに。私どこかのやつでそれを作った覚えがあるけど忘れたな。
そうですね。
RANNは作ってないですね。
そうですね、最初見た時はこれRANNって読むのが、Nってどう読むんだろうって思いつつ、RANってなって。
その正式でRANNって読むんだったら、次RANNって言い始めるんだろうなっていう気持ちになってますね。
RANNって書いてはあるけど、読み方は書いてないですよね。
そうですね、Meansでしか書いてない。
Meansでしか書いてないですよね。
はい。
読み方のページがあるといいなって。
ReadMeにもちょっと書いてあるといいなって思いました。
読みづらいやつですね。
はい。確かに。
これはどういったものなんでしょう?
これですか?
はい。
これはシナリオベースのオペレーティングツールなんですけど、
すごく汎用的に言うとオペレーティング自動化ツールみたいな感じなんですけど、
もう少し具体的な話で言うと、
例えばAPIのシナリオテストのツールだったりとかする使い方としては多分それが一番多いのかなっていう感じですね。
シナリオって言ってるので、APIってAPIのパス、エンドポイントみたいなのがあって、
そこにリクエストを投げて、レスポンスが返ってきて、
それで一つのテストみたいな形で言えるんですけど、シナリオなので、
それを一回API投げて、そのレスポンスを受け取って、
さらにそのレスポンスを使って次のAPIを叩いてみたいな、
21:00
ある作りたいシナリオみたいなのを書きやすくしているツールになりますね。
HTBリクエストだけじゃなくて、できるのが例えばGRPCとか、
あとデータベースへのクエリとか、
あと普通の任意のコマンド実行とか、
あとは最近はChrome DevTool Protocolに対応したりとかして、
Chromeを操作したりとか、いろんなものを使って、
結局一つのシナリオを作って、それを実行するツールですね。
これバッジみたいなのが作れるってこと?
作ろうと思えば作れます。
これ良いのでは?って今聞きながら思った。
本当便利ですよね。
以前の職場で取引先が作ってくれたAPIがあって、
その挙動が怪しいときって、
いつも自分たちで手動でポチポチAPI叩いて挙動確認してたんですけど、
このツールがあったら自動でやってくれるから、
おかしくなったらテストをすればいつでも分かるし、
これ便利だよな、みたいな感じは思ってますね。
じゃまこりさん、差し支えなければ具体的にどんな使い方をしてるんですか?
そうですね。
例えばいろんな各種APIってあると思うんですよ。
ログインしてから。
ログインのAPIもあればログアウトのAPIもありますし、
ログインしてからじゃないと叩けないAPIとかもあったりするわけじゃないですか。
例えば何かしら会員登録でプロフィール登録したいというシナリオがあったとして、
それはログインのエンドポイントに、
例えばEメールとパスワードでリクエストを投げて、
その後返ってきたレスポンス、
よくあるトークンとかが付与されて返ってくるわけじゃないですか。
それを付与してまた別の会員専用のエンドポイントに対して、
プロフィールを登録するとか削除するとか編集するとかっていう、
エンドポイントに対して情報を付与して投げて、
ちゃんと会員登録されたねとか情報編集されたねとかっていう、
そういうテストでよく使わせてもらってるって感じですね。
はい。だから今までそうなんですよ。
最悪ポチポチやってたりだとか、
あとはフレームワークで用意している機能テストというところで、
エンドポイントに対してリクエストを投げてテストをやるみたいなツールがあったんですけど、
こっちのツールを使うことによって、
それを最初から最後まであるユースケースなりシナリオがあったときに、
それを実現できるってところなので、
本当にすごく便利だなっていう感じで日々仕事で使わせてもらってます。
24:03
なるほど。ありがとうございます。
これは良いですね。
本当にありがたいです。
今までよくスワッカーとかであるじゃないですか、
スワッカーだと叩けるとか、
あれが全部ポチポチしなくても済むようになって、
一度何か記述をすれば、
それを叩けば、ランNを動かせば、
テストが最初から最後まで自動で動くっていう世界観。
はい、最高ですね。
最高らしいですよ、山本さん。
ありがとうございます。
そうですね、自分は作ったんですけど、
他にもいっぱい既存の同じようなツールはいっぱいあって、
例えば、メルペイさんとかだとシナリGOという、
同じようにYAMLでAPIを書いてリクエストを書けるツールがあったりとか、
最近出てきたツールだとStepCIとかいうのも、
同じようにYAMLで書いてっていうのができて、
やっぱり考えることはみんな一緒で。
1番じゃないかな、今の3つの中だと、
私のツールが2番目に出てきたツールですね。
ちょうど今StepCIを調べています。
海外っぽいデザインのプロフィールページで、
GitHubリンクで。
私の仕事でいうと、クラウドのVM立てて、
立てた後にオネオネして、オネオネして、みたいなことがよくやってるので、
その中にAPIの操作もあったり、DBの操作もあったり、
みたいなことがいろいろあるんで、
さっきの話を聞くと、
バッチ作ってはいるんですけど、
それの置き換えになりそうだなっていう、
ゴリゴリのプログラムではなく、
設定ファイルっぽい感じで。
そうですね。YAMLでどんどん書き方はあるものの、
それで記述していければ、
おきかえはできるはずと思ってますね。
今は職場のチームだと、
APIのシナリオテストとして使わせてもらってるんですが、
個人的に思うのは、
ブラウザの操作もできるということは、
ブラウザの自動化もある程度できるんだろうなって、
使ったことはないんですか?と思っていて、
これはブラウザ操作どうしてもうまく自動化できないとき、
これでやれればいい感じで動かせて、
仕事効率化とかもできそうだなって思っているものの、
まだちょっと具体的使い方はフォワッとしてる感じなんですが、
そういうブラウザの自動化を想定してたりするんですか?
そうですね。ただ、私が作った理由は、
27:03
エンドツーエンドテストまではいかなくても、
リグレッションテストに使えないかなと思ったレベルで作ったんですよ。
例えば、デプロイした後に、
ぶっ壊れたとか嫌じゃないですか、アプリケーションが。
テストも通って、プロダクションにデプロイした後に、
あれ、ログインできないんですけど、
お客様から問い合わせがあるの嫌なんで、
そこで例えば、軽くログインして、
ページを見るとかぐらいまでの操作がブラウザベース。
最近も本当に古き良きウェブアプリケーションがなくなってるんで、
ブラウザソースでないといけないんで、
なかなかそれをするためぐらいのレベルのものを作った感じですね。
はいはいはい。
エンドツーエンドテストを本気でやろうとすると、
多分そういうのに特化したツールがいっぱいあるので、
便利なツールがですね、ライブラリがいっぱいあるので、
そっちにはやっぱり軍配があるんですけど、
そうじゃなくてカジュアルにする最初の一歩みたいなところですかね。
そのために、このChrome Webツールプロトコルに対応したっていう経緯がありますね。
最近大山さんの中で熱いのはこのRAN Nなんですか?
自分がメンテナンスしている中で。
そうですね、今コミットが一番多いのは多分RAN Nですね。
他は他でやりたいことはあるんですけど、
とりあえず今これをある程度のところまで持っていきたいなという風に今やってますね。
僕が急に今パッと思い出したんですけど、
大山さんが作っているOSSの中で、
ここ1,2年でお世話になったのを思い出したんですが、
サーバースペックの元にしたアイディアを使ったOSSがあるじゃないですか。
AWSスペック。
AWSスペックありますね。
あれに非常にお世話になってですね。
よかった。
ある時、√53の大量のレコード更新を依頼をされて、
めちゃめちゃ触るの怖くて。
わかる。
とあるDNSから√53にレコード移したいと言われて、
めっちゃあったんですよ、レコードが。
めちゃくちゃあって。
これやりたくないなと思いながら。
でもお願いされたんで、やらなしゃあなくて。
そういえばあれ使ってみたいなと思ってたんだよなっていうのを急に思い出して。
テストが入って、レコード更新した後にそいつを流して、
30:05
ちゃんとレコードが登録されているのを確認できたんで、
すっごい助かりました。
よかった。ありがとうございます。
あれは本当に助かったですね。
そうですね。ありがとうございます。
そんな感じで、こんなOSSにお世話になったなみたいなのって、
いろいろあると思うんですけど、パッと思いつくのは何かありますか?
僕は本当にNWSPECがすごいお世話になったんですけど、
最近触ったやつとか、そういえばこれめっちゃ便利だったなみたいなので。
それで言うと、OSSつながりなんですけど、
OSSで作るとですね、リリースしないといけないんですよ。
リリースって各言語によって様々なリリース形式、方法があったりとかして、
私は最近はGoばっか書いてるんで、Goのリリースとしては、
バイナリーをGitHubのリリースページに置いたりとかタグを打ったりするんですけど、
そこら辺を結構手作業でやってたんですけど、ある程度は自動化したんですけど、
やっぱり最後は手作業だったんですけど、それが完全自動化するために使ったのが
タグPRっていうOSSを使って。
最近見た、そのツイート。
私もそれでブログとか書いたんですけど、
これはかなり、やっとこれで全部自動化できたという気持ちになったツールですね。
これを作った方が孫文さんという方なんですけど、
そのライブラリを使って、さらにですね、
ここから細かすぎて微妙なんですけど、
ホームブリューってあるじゃないですか。
ホームブリューって、自分でホームブリューの本件に登録しなくても、
自分たちでホームブリューのインストールする仕組みを作る。
ホームブリューでインストールできる野良リポジトリみたいなのを作れるんですよね。
それをタップって言うんですけど、
私の、例えばさっきのLAN-Nとかも、
実はホームブリューでブリューインストールでインストールできるんですよね。
その仕組みは野良タップを作っているからなんですけど、
野良タップを作るタップの設定ファイルのことをフォーミュラーって言うんですけど、
そのフォーミュラーの更新がめんどくさかったんですよ。
理由は、あるリポジトリ、これ本当に細かい話だな。
あるGitHubのリポジトリでタグを打つとかリリースをするっていうのは、
33:00
そのリポジトリの範囲で収まるんですよね。権限的に。
そうするとGitHub ActionsというCIの仕組みがあると思うんですけど、
そこにあるデフォルトの権限で済むんですよ。
ところがタップって、私は少なくとも別のリポジトリに置いてるんですよね。
そうするとリポジトリをまたいだ権限が必要になって、
その時に結構強い権限を渡さなきゃいけなくなるので、それが嫌だったんですよ。
だからずっと手作業でやってたんですよ。
それを解決してくれるツールをSOMの方が作ってくれていて、
それとタグPRで合わせて1本でリリースが自動化されたっていう経緯があって、
それが私の中で最近の推しですね。
じゃ森さん、何かそういうの最近あります?
最近ですか?
自分が一番最近あるのは、自分はLaravelメインで使わせてもらってるんですけど、
そことプロジェクトのコード品質を何とかしたいっていう感じがあって、
PHPスタンとPHP CS Fixerなんですが、
あとはPHP StormのIDを使ってるんですが、
PHP Storm上でうまくPHPスタンとPHP CS Fixerを連携させて、
ファイルが保存走ったらスタンが走って型チェックが走り、
CS Fixerが走ってコードが自動で整形されるっていう世界線を作って、
それに今、最近めちゃくちゃ感動してるというか、
これ便利みたいな感じでやってますね。
なんで今までやってなかったんだ、こんなことをみたいな。
そういうちょっとしたところですけど、いいですよね。
ほんとこれ最高だなって、
プルリクのレビューでここの半角スペーサー開いてるんで、
ちょっと帰ってください。
いやここコイド必要なんですっていうところとか、
ここ1行開けてください、開けなくていいですみたいな。
そういうのねっていう。
なしにしたいですよね、レビューでは。
それでCS Fixer、ようやく最近ちゃんと設定して入れてやり始めたんですけど、
これ今までなんでやってなかったんだろうなっていう後悔が、
最近がすごい僕の中であるって感じです。
あとOSSなのかな?あれGitHubがあるからきっとOSSだな。
クラウドのAWSだけじゃないんですけど、いろんなクラウドに対応してたと思うんですけど、
スカウトスイートっていうのがあって、こいつは何かっていうと、
36:01
クラウドでいろいろ設定をしたりとか、VM立てたりとかすると思うんですけど、
そういう自分が設定した内容がセキュリティ的に弱くないかみたいなのをチェックしてくれるツールがあって、
いろんなクラウドに対応してて、三大どころのメジャーなのは対応してるんですけど、
例えばAWSでそいつを動かすと、このセキュリティグループ全開放されてるよとか、
そういうのが一覧でバーって出てくるんですよ。
チェックをして、HTML形式だったかな。
最終的に画面に表示できるみたいなのがあって、
セキュリティ的に非常にやばい、ちょっとやばい、みたいな段階がHIGHとかLOWとかMEDIUMとか出てきて、
特に気をつけて修正しなきゃいけないみたいなところは、警告表示を出してくれたりするツールがあって、
それを使って、非常にこれは便利だなと思った記憶があります。
三つの大きなクラウドベンダーの三つに統一的に対応してるのがいいですね。
確かに統一的にできたと思う。
それぞれだと、それぞれがサービス出してるじゃないですか。
例えばAWSだとセキュリティハブとかですかね、確か。
統一的なのがいいですね。
ちょっと事前の準備が、それぞれのクラウドベンダーって必要ではあるんですけど、結局いろんな情報を読まなきゃいけないんで。
なんだったかな、ちょっと忘れたな。
そういうIAMが専用であるんですよ、AWSは。
セキュリティチェックする用のIAMの権限用のアカウントがあって、アカウントじゃないな、あれなんて言えばいいんだ、忘れた。
IAMロール?
ロール、ロール。ロールがあって、そいつを付与したアカウントでこいつを実行すると、
なんかいい感じにチェックしてくれるっていうのが便利だったっすね。
カジュアルにできるのいいですね。
本当にこれが便利だなと思いました。
あとコードチェックの話をさっきしましたけど、僕は最近Pythonを書いてて、Python初心者なんで自分のコードに自信がないからですね。
僕のコードがいけてないのをすぐ可視化してくれるRADONっていうツールがあって、こいつが何かっていうとRADONはあれですね、循環複雑度と呼ばれるものをチェックしてくれて、
39:11
お前のコードが複雑すぎるからメンテナンスしづらいぞ今後みたいなのを教えてくれるやつ。
はいはいはいはい。
臨闘の分野のものはですね。
そうですね。
Pythonは何で書かれてるんですか?PyCharmで書いてたりしますか?
PyCharmですね。
インテリジェ信者なんで。
いらっしゃった。よろしくお願いしますって。
どういうこと?
僕もインテリジェ信者でPHPストーム信者でして。
でもあれなんですよ。
僕Vimじゃないと書けないんですよ。
Vimじゃないと書けないのでインテリジェにVimのプラグインを入れてます。
ありますよね。
でもこれは良くないことでショートカットをいろいろ潰しちゃうんですよ。
インテリジェのとても良いショートカットたちを。
なのでぶつかっちゃうんですよねショートカットキーが。
はいはいはい。
だからかなり効率の良くないことをやってると思います。
なるほど。なるほど。
ショートカットって移動できるんじゃないですか?できないんですかね?
変えればいいんでしょうけど僕はもうVimで慣れてるやつをそのまま使いたいので変えたくないなと思って。
インテリジェの方です。
そうなんだけどそこまでやってないです。
なるほど。
話がそれちゃいましたね。
何の話をしてたっけ?
使って便利だったOSSの話でしたね。
じゃあ次の話題は何にしようかな。
大山さんそんなOSSの開発をしてたら
OSSをメインでやってる会社に入りたいとかそんなことは思ったりしないんですか?
そのOSSの開発をメインとしてるみたいな。
そのOSSで商売をしているみたいな会社ですかね?
そういう思いには。
あんまりかっこいいなと思うんですけど
あんまりそこまで思ったことがないかな。
たぶん私のOSSとみんなが思ってるOSSがちょっと違っていて
私のOSSは小さいんですよ基本。
自分のプラモデルみたいな感じが好きなんですよね。
42:00
チーム開発も好きなんですけど
私のOSSでチーム開発に思いっきりしなかったのは本当にないんで
たぶんコントリビューターはいろんな方にしてもらってるんですけど
チーム開発をするとかOSSの次のマイルストーンを決めるみたいなことにまで
大きく発展したOSSは自分にないんですけど
大きいOSSってどうなるんだろうっていうのは想像つかないんですよね。
話してもらった中に自分が作りたいものとか
自分の課題解決したいときに作るみたいなことだったので
もともとあるOSSにジョインして同行っていうのはないのかもですね。
最近というとセキュリティツールのプリビーというツールがあるんですけど
あの方が結局自分で作ったツールで
イスラエルのアクアセキュリティ社に買収されて
それで今OSSの開発者としてそこにジョインしているという流れがありますけど
それはすごいなと思いますね。
だいぶOSS話をして
めっちゃ時間使ってた
全然いいんですけど
ここまでOSSの話で盛り上がると思ってなかった
そういえばインフラエンジンの中津さんにお勧めしたいOSSがあるんですけど
何でしょう?
私が作ったやつですよ
シェアハートアタックっていうOSSがあるんですよ
すげえいい名前ですね
それは何をするOSSなんですか?
何をしてくれる?
サーバーの中で
VMとかベアメタルのサーバーの中で
メトリクスを
いろんなメトリクスを見て
ある条件を超えたときに発火してくれるツールなんですよ
発火とは?
例えばですけど
私もインフラの面倒を見る時期があったので
そういう意味で言うと
何故かわからないけど
このタイミングでCPUの使用率が上昇して
アラートになったが
後で調べてみてもちょっとよくわからない
でもそれがあるタイミングで時々起こると
その時の情報が知りたい
例えばCPUが上がった時に
とりあえずいろんな情報を取りたいってあるじゃないですか
45:01
トップコマンドを取ってみたりとか
それをするためのツールです
なるほど
良さそうじゃないですか
ワンコマンドでまずインストールまでしてくれます
しかもインストールして
そこからコマンドを実行すると
何をメトリクスに取りますか
どういうコマンドを取りますかっていうのを
インタラクティブに全部聞いてくれて
それが終わって
必要であればStackのWebhookのURLを付けて
実行しておくんですよ
そうするとログがローカルに測れつつ
ある一定期間
例えば1日なら1日
7日なら7日
30分なら30分だけ起動し続けて
メトリクスを監視してくれる
何かがあったら発火してくれる
そいつ自体の負荷は低いんですか
メトリクスを取っているだけですからね
少なくとも私がそれで問題になったことはないです
そいつは何かエージェント的なものがずっと動いているんですか
そうですねそのタイミング
発火させたタイミングで
フォアグラウンド
フォアグラウンドで動かせる感じですかね
アンパサンドで動かせるじゃないですか
だから本当にテンポラリーなデバッキングツールみたいな形で使えるやつです
ぜひ使ってみてくださいもし
タイミングがあれば
必要ですよねそういうの
分かんなくなるんですよ
似たようなことはやってはいるんですけど
でもずっと取り続けると
ログも飛大化するし
そうですそうです
そうなんですよね
ずっと取り続けるのがやっぱりメトリクスとしては素晴らしい
いいことなんですけど
それが一番計画と実装としてはいい流れなんですけど
時々あるじゃないですか
あれ分かんないな
とりあえず仕込んどくか
そうなんですよね
ずっと取り続けていると
全部見れるんでいいんですけど
今度探すのも大変になるし
飛大化はするし
さじ加減が難しいなと思って
かといって
ローカルじゃなくて
全部S3に飛ばそうとすると
今度S3のお金がむっちゃかかるし
困ったなって感じじゃないですか
色々やろうとしてくる
どこに持っていくかっていうのが
ありますね
いいツールですね
一応実践で何度も使ったことのあるツールなので
次の話題に移りますか
はい
何の話をしましょうか
話しやすいとこから行こうかな
あれですね
ベチパー会議ですね
ベチパー会議の話をしましょうか
ぜひぜひ
2人ともプロポーザル出したんですか
48:02
2人ともプロポーザル出したんですか
私は2つ出しました
やるな
私は出してないですね
まだ
まだってことは出す可能性があるんですか
そうですね出したいなという思いはあります
そのやる気はどこからくるんですか
出そうかなと思ってはいるけど
まだ全然アイディアが浮かんでなくて
なるほど
じゃあもほりさんはもう2つ出したってことは
タイトルが決まってるってことですね
決まってますね
何についてお話するんですか
先ほど話したPHP CSFixerとPHP Stunnerを
PHP Stormと組み合わせてVBに行きますせっていう
なるほど幸せになった話をする
幸せになった話
本当これが幸せなんですよ
本当に
本当に幸せすぎて
嬉しそうな顔してる
すごい嬉しそうな顔してる
これみんなやろうよみたいな
いろいろな理由でVSコード使われてる方も
PHP Storm使われてる方も
それぞれがPHP CSFixer経由でやると
みんながそれぞれ統一したコードでフォーマットされるので
幸せな世界線に行けるんじゃないかなとか
思っているので
とりあえずそういうコードラビューで
そういう指摘をしたくないので
そこはもう終わってる段階にしたいですよね
はい
動作だったり
使用面でのレビューになるようにしたいので
注力したいですね
ボイド警察とか反核スペース警察とか
そういうのやりたくない
そうですね
そんなので小さな揉め事とか起きてほしくないし
そうですね
よくあるのがifの開ける開けない問題とか
決まったルールでみんな同じにしたい
そういうのをいろいろとやって整備していきたい人ですね
最近自分は
もう一つのプロポーザルはどんな内容ですか
何でしたっけ
リポジトリパターンについてっていう感じで
これまでリポジトリパターンいろいろやってうまくいかなかったり
なかったんで
どうしたらネタをこかないリポジトリパターンが
できるかなっていう感じの思いがあって
それで失敗から学ぶリポジトリパターン
っていうタイトルか忘れちゃったんですけど
そういう感じでプロポーザルは出させてもらったなっていう感じですね
設計の話ってことですか
そうですそうです設計パターンの話ですね
ちゃまほうりさんは設計にすごく興味ある人ですよね
51:04
そうですね
なんかいかにこう
最近なんですか
いやもうここ2年近く3年近く
結構長いですね
はいいろいろとアーダコーダーがありますね
やっぱり苦労することが多いので
設計に苦労することが多いんでそういう目がもういったんですかね
何かきっかけがあったんですかね
そうですねなんか自分が最初なんとなしに書いたコード
後から見たらしんどかったんで
これどうしたらいいのとか
これめちゃくちゃじゃんみたいなことが書くあったりして
どうしたらうまくできるのか
どうしたらメンテナブルでやれるったらいいんだみたいな感じが
思いがすっすと出てきて
そこからなんかこう
DDDだクリーンアーキテクチャだみたいな考え方があるんだなっていうところを知って
そこからいろいろとどういう風なアプローチすれば
いい感じのコードを書けるのかなっていうところを模索してるって感じですね
その目を向けてる対象は自分が管理してるコードなんですかね
それともチームでやってて
チームの設計方針として考えてる話なんですかね
よくしていきたいっていうのは
どっちもですね
自分も含めて関わる人みんな幸せになりたいし
させたいって言ったら結構拒ましいですけど
幸せになる方法って何なんだろうなっていうところは考えたりしますね
なんか僕の偏ったツイッターのタイムラインかもしれないんですけど
PHP触ってる人設計の話してる人めっちゃ多いイメージなんですけど
なんか最近多いですよね
そんな印象ないですか
私はずっと思ってます
本当です僕もそれ思ってて
なんでみんなそんな設計の話すっごいしてんだろうなと思って
ペチパワー多くないと思って
カンファレンスで話す内容にも多いと思いますよ
多いですよね
僕テーマもなんか設計の話多いなと思って
なんでみんなそうやって設計に
もちろん大事なんでしょうけど
それもよくわかってるんですけど
設計の話よく見るな
単純にバカ図が多いんじゃないですかね
その人々が経験しているPHPでの
なんかそんなイメージがすっごくあるんですけど
ってことなんですかね
最近ってことでもないね
ここ何年もなんか
PHP界隈は設計の話をよく見るなっていう
印象は
確かにですね
僕の偏った感覚だと
54:01
5から7になって
より固く描けるようになって
8になってさらに色々と
環境も整ってきた中で
そこがうまくフィットしてるんじゃないかなとか
ってのは思ってますね
今やゆるふわなPHP描いたら
めっちゃ怒られそうだもんな
いやー
本当ゆるふわだからこそ
PHPのメリットでしょみたいな感じあると思うんですけど
老害って言われるかも
私今PHP描けないですよそれ
描けないですか
描けないそれでそれ言われると描けないですよ多分
今のPHP
だいぶ変わってますからね
できることがすごい増えてるんで
描く方もちゃんと透けられるしみたいな
私のPHPの前世は
ケークPHP2だから
廃列天国だったですからね
廃列天国
廃列天国
地獄じゃないですか
いやねこれは
色々な考え方があるんで
やめろよ
いやいやそうそう
色んなものがあっていいと思う
何か悪く言うのは良くない
そうですね
そういう意図は僕はないです
廃列なんか考えなしにカジュアルに使って
カジュアルに廃列を返してみたいな
その後はシルク的な描き方もしてきたところだったんで
エクスキューズがすごくないですかお二人とも
何かを言ったら
そのままそのセリフが自分に返ってきちゃいますからね
たくさん返ってきてるしそういうのも
はい
ペチパー会議な
なんか出そうかな
出しましょうよ
ペチパー会議が一番懐が広いんで
私は出しやすいんですよね
何話してもいいみたいな感じありますもんね
ペチパーとはみたいな
そこはGOで殴り込んで欲しいというか
GOで話してもいいなと思うんですけど
一方で今回面白いのが
GOでコンポーザーを作るみたいな話があって
これ面白いじゃないですか
ありましたね見たら
GOで描くんだみたいな
大山さんなんでGOにハマってるというか
GOを触り始めたんですか
最初は
最初はミドルウェアを作る必要があるなと思った時に
GOしかないかなとか
その当時思ったっていうのが一つと
ミドルウェアっていうのは
レモンとして動くサーバーというか
レモンとして動くものを単体で動かす必要が
57:01
単体っていうのは一番大事だと思うんですけど
当時はラストがそこまでできてなかったので
っていう意味で
GOがやりやすかったし
選択肢が強かっただろうなと思って
そこから学んでたのが一つと
それで結局ポータビリティが強くて
強力なんですよ
さっきのシェアハートタッグも
いきなり印象的に
ポータビリティが強くて
ポータビリティが強くて
ポータビリティが強くて
強力なんですよ
さっきのシェアハートタッグも
いきなりインストールって
別にバイナリポーン機なんで
そうですよね
それはいいなと思います
だからインフロエンジニアの方には
いいと思いますよGO
今勉強を始めようとしてるところで
難しいなGO
何でも聞いてくださいよそれ
かっこいいセリフ出た
そういう場所があれば
全然質問してくださいよ
めっちゃ嬉しい言葉が聞けた
ありがとうございます
逆に私はインフロエンジニアの人が
例えばGOを学ぼうかなっていう時に
何がネックになるのかなとか
何を覚えれば武器になるのかな
っていうのを知りたいんですよ
という意味で言うと
博士さんが載ってくれると
結構自分は嬉しいんですよね
なるほど
そういうフィードバックがもらえるから
はいはいはい
僕もポータビリティの高さを考えると
GOを勉強した方がいいなと思って
いいですよ
頑張ろうと思ってる所存です
ぜひぜひ
GOをやろうやろうちょっといじって
中途半端でなってる状態が
もう3年ぐらい続いてます
さすがにバッシュは辛いんでね
どこでも動くけど
きついんで
確か記憶だから
間違ってるかもしれないですけど
シンバラさん
PHP界で有名なシンバラさんですね
シンバラさんとかは
シルスクリプトの代わりに
GOのスクリプトを置いて
GOをランするという使い方をする
みたいな話を聞いた覚えがありますね
何でそれがいいかというと
さっきのシルスクリプトが辛いのって
型がなかったりとか
書き方に癖があるとか
一人おりますけど
そういうのでそこを
GOのスクリプトで書くみたいな
別にコンパイルせずに
GOをサーバー環境に置いて
GOをランするみたいな
確かに
結構確かに便利だな
という感じはしますね
はいといったところで
1時間経ちましたね
あら
あっという間だった
めちゃくちゃあっという間
1:00:00
すげー楽しかったです
今日一番話したかった
OSSの話が
すごいしっかりできたんで
よかったなと
ありがとうございます
では
この辺で第24回は
締めさせてもらおうと思います
最後にもう一度
ツイッターのハッシュタグについて
お知らせです
ツナギメFMです
ツイートお待ちしています
はいということで
今回のツナギメFM第24回は
大山さんとジャマホリさんを
お迎えしてお話させてもらいました
お二人とも今日はどうもありがとうございました
ありがとうございました
ありがとうございました
01:00:44

コメント

スクロール