私が歌川です

@utgwkk が書いている

YAPC::Nagoya::Tiny 2019で「他言語ユーザから見たPerlのおもしろさ」という話をします

yapcjapan.connpass.com

採択されていました。さいきん業務でPerlを書いており、Perlの言語仕様やエコシステムについての知見をどんどん吸収しているという状況なので、思ったことをまとめてお話ししようと思います。

KMCの例会講座とかではバンバン話してるけど、外部登壇は初めてな気がします。やっていきましょう。

トーク概要

私はふだんPythonを書いているのですが、このたび業務でPerlを書くこととなりました。このトークでは、業務でPerlを書くにあたって気になったことやおもしろかったことについて、主にPythonとの比較を交えつつお話しします。

例として以下のようなトピックを取り上げる予定です:

  • Perlのデータ構造とリファレンス
  • サブルーチンとbless
  • DESTROYメソッド
  • CPANというエコシステム

名古屋の思い出

名古屋については、柳橋テラスというワイマーケット*1直営のレストランが最高ということだけを知っています。

tabelog.com

大きな肉を焼いたりビールを飲みまくったりして最高だった記憶があるので、なんとかしてまた行きたいですね。

名古屋に行くといつも世界の山ちゃんに行ってる気がします。会場からいちばん近いのはたぶんここだと思う。

tabelog.com

*1:ワイマーケットのドメインcraftbeer.nagoyaなのでかっこいい

Slack workflowで遊んでた

Slack workflowは今日リリースされた機能で、フォームで申請書や問い合わせ文章を作ったりボタン押してリアクティブにしたりすることができる機能。課金してるworkspaceなら使えると思う。

slackhq.com

本来は問い合わせ文章とか楽に作れるようにする機能なんだろうけど、フォームからメッセージを送信、みたいなのをコード書かずに実現できるので大喜びで遊んでいた。

遊びまくっていた結果ふつおた*1が送れるようになった。フォームにおなまえとおたよりを入力して送信したら、パーソナリティーのuser group宛にメンションが飛び、暇なパーソナリティーが答える、という構図。 workflowこんな感じで、たぶんimportとかしなくても1分あれば作れると思う。

gyazo.com

ボタン押したら返信できるとおもしろそう、と思ってそのようにしたりもしたけど、これだとパーソナリティー1人だけが答える構図になってワイワイ感が出ないと思ってやめた。 そのときのworkflowはこんな感じで、formで送信した内容に対して返信できるようにするためにformで返す、というふうに一工夫入っている。

gyazo.com

遊びまくってたら通知が崩壊した。

workflowまだまだ開発中という雰囲気で、気づきがあったらどんどんフィードバックを送ってる。 今日だけで4個ぐらいフィードバックを送った。

ワークフロービルダーにより、ユーザーは日常的な業務の自動化を実現し、スムーズなSlackでのプロジェクト進行が可能になるという。また、ワークフロービルダーの機能は今後も拡充予定とのこと。 ASCII.jp:Slack タスクのシームレス化が可能なワークフロー作成ツール

これだけだとフォーム作れるだけじゃんとなるけど、ボタン押したらメッセージ送れたり、add reactionに反応してなんかできたりもする。 将来的には外部サービスと連携できてIFTTTみたいな感じになるのではないか。

*1:ふつうのおたより

献血した

献血した。これで9回目。全開の様子はこちら。

utgwkk.hateblo.jp

ゆにさまのクリアファイルがもらえるという話題もあったけどとっくに配布終了してた。

【キャンペーン】金髪美少女吸血鬼YouTuber「赤月ゆに」コラボ(9/21~)|新着ニュース・プレスリリース・イベント|京都府赤十字血液センター|日本赤十字社

献血記念グッズとして防災セットがもらえてタイムリー感あった。

献血すると体内の血液が一時的に失われて、しばらくすると回復する。 ふだん直接的に血を抜くという出来事はなかなかなく、非日常感がある。

2019/10/18 追記

血液ビッグデータを更新した。ついにγ-GTPが基準値を超えた。

docs.google.com

映画「ジョーカー」見た

wwws.warnerbros.co.jp

見た。映画見たの2年ぶりとかそういうオーダーな気がする。

バットマンの文脈は一切知らないまま見たけど演出がよかった。 主人公は自分の意思とは関係なく笑ってしまう病気を持っており、場違いなシーンでもとにかく笑いを上げるのが、作品全体に不気味な雰囲気を漂わせていたと思う。

人間失格」と通じるものがありそうだなとふと思った。どちらも悲哀があり、人生は悲劇なのか喜劇なのか、というところが共通していると思う。

今日のおすすめSlackチャンネルBOTを簡単にHerokuにデプロイできるようにしました

utgwkk.hateblo.jp

今日のおすすめSlackチャンネルBOTをHeroku Buttonクリックで簡単にデプロイできるようにしました。ご活用ください。

Deploy

github.com

確認画面でSlack BOTトークンとチャンネルIDを入れればデプロイできて、スケジューラの設定をすれば毎日おすすめしてくれるようになる、という世界観になっています。

おもしろプロダクトを使ってもらうには、とにかく導入の敷居を下げることが大事だと思うので、やってみました。

Heroku Buttonの置き方

あまり難しいことはしてなくて、公式ドキュメントを読みつつapp.jsonを書いてボタンを置くとだいたいできます。

ハマりどころ

Heroku Button かなりすんなり設置できたけど、1つだけハマりどころがあったので共有します。

公式ドキュメントの formationスキーマが間違っており、GitHubにあるものが正しい

app.json validate というコマンドでapp.jsonスキーマに従っているかのvalidationを行うことができるのですが、以下のような身に覚えのないエラーが出て少し詰まりました。

Found an app.json file, but it's got some issues:

- formation must be of array type

結論から言うと、公式ドキュメントにあるスキーマは間違っており、app.jsonGitHubリポジトリにあるものが正しいです。

github.com

つまり、

"formation": {
  "web": {"quantity": 0}
}

ではなくて、

"formation": [
  {"process": "web", "quantity": 0}
]

のように書きます。

Slackのワークスペースごとにアイコンを変える

Slackのワークスペースが、大学のサークル、アルバイト先、研究室、と増えてきている。どれがどれかはまだ分かるけど、じぶんの発言を見るとどれも同じアイコンでそこに違いはない。

そこでワークスペースごとにじぶんのアイコンを変えてみることにした。 インターネットで普段使っているアイコンとは別のものを使うので、違いが生まれておもしろい。

フリーアイコンいろいろなところで入手できる。たとえばpixivにある。

フリー アイコンの画像投稿作品の検索 [pixiv]

Picrewとか使うと、パーツを組み合わせて最高かつオリジナリティのあるアイコンを作ることができて便利。利用規約には注意する必要がある。

Waifu Labsとか使ったことないけど自動生成されそうなのでいかにもよさそうに見える。

waifulabs.com

今日のおすすめSlackチャンネルBOT

サークルのSlackには、publicなチャンネルが660個ほどある。 その中には、100人以上がjoinしているチャンネルから、数人しかいないチャンネルまでさまざまある。 これだけチャンネルがあると、おもしろいチャンネルかもしれないけど人が少ない、とか、実はこのチャンネルでこんなことが話されている、みたいなことがあるかもしれない。

そこで、毎日おすすめのチャンネルをサジェストしてくれるBOTを作った。

github.com

こんな感じで、毎朝9時におすすめチャンネルを教えてもらうようにしてみた。

gyazo.com

チャンネルのサジェストだけど、#general とかサジェストされてもおもしろくないので、人が少ないチャンネルからランダムでおすすめしてくれるようにしている。

チャンネル多すぎて把握しきれない、どのチャンネルで何を話しているのか分からない、そういった問題に一石を投じるために作りました。 実行ファイルを落として README にあるようにtokenや投稿先チャンネルを書いてやって実行すると動きます。cronとかで動かすとよさそう。ご活用ください。

github.com