名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。

tmuxでよく見てるもののメモ

比較的ググってるものの私用メモです

あと .tmux.conf で個人的にindexを1から始めるのはすごく良い。下記の記事の引用。

tmuxをちゃんと使っていくために設定を見直した - andooown's blog

# ウィンドウとペインの番号を 1 から開始
set -g base-index 1
setw -g pane-base-index 1
# ウィンドウを閉じた時に番号を詰める
set-option -g renumber-windows on

AWS Chalice を触ってみた

概要

AWS Chalice を触って、API を立てるのをやってみました。

Discord の Webhook に投げるための中継点として使得ないかなと思い、試しています。

やったこと

要はこう

f:id:MireiMixin:20200622064847j:plain
イメージ

できたもの

コード

真面目?に書いた部分だけ

@app.route('/test', methods=['POST'], name='TweetTest')
def send_tweet_test():
    import urllib.request
    import json

    json_body = app.current_request.json_body
    app.log.info("received: %s" % json_body)

    webhook_url = os.environ.get('WEBHOOK_URL')
    method = "POST"
    headers = {
        "Content-Type" : "application/json",
        # User-Agent 指定なしだと怒られるため
        "User-Agent": "Yumechi WebHook/1.0",
    }

    # TODO: コンテンツはこの辺を見て増やしたい
    # https://birdie0.github.io/discord-webhooks-guide/discord_webhook.html
    values = {'content' : str(json_body)}


    # 典型的なリクエスト処理
    # refer: https://qiita.com/neko_the_shadow/items/324976c7b54623e82b26
    # refer: https://qiita.com/hoto17296/items/8fcf55cc6cd823a18217
    json_data = json.dumps(values).encode("utf-8")
    request = urllib.request.Request(webhook_url, data=json_data, headers=headers)
    with urllib.request.urlopen(request) as response:
        response_body = response.read().decode("utf-8")
        return {
            'status': 'ok',
            'res': response.read().decode("utf-8"),
        }

学び

  • めっちゃ簡単に API 立つ
    • Serverless Framework より楽かも
    • AWS 謹製なので完全に相性が考慮されてるんだろうなぁ
  • chalice local が超便利
    • ローカルで API のテストができる
    • AWS のほかサービスとつないでいる場合はわからないが、自分は受け取ったリクエストを右から左に受け流すだけだったので、実用に耐えた
  • chalice deploy が便利
  • ログも設定ができる
  • IFTTT の Twitter 連携が下記の形でないとうまくいかなかった
    • 置換が string なら string というわけではなく、確実に ダブルクォーテーションで囲う必要がある
    • エスケープは不要ということだったが、将来的にはまるパターンを考えると先にやっておいて損はなさそう
{
    "text": "<<< {{Text}} >>>",
    "user_name": "<<< {{UserName}} >>>",
    "link_to_tweet": "<<< {{LinkToTweet}} >>>",
    "created_at": "<<< {{CreatedAt}} >>>",
    "tweet_embed_code": "<<< {{TweetEmbedCode}} >>>"
}

展望

まとめ

Serverless Framework やってたおかげか、すっと頭の中に入ってきて、しかもわかりやすいなと思いました。

Python でやるならこれで十分かもという感じ。

ほかの言語でやりたい場合は Serverless Framework のほうが良いかもしれないですね。

自分はパッとかけるのは Python なので、パッと書かなきゃならないときは活用していきたいです。

オンラインもくもく会の振り返り(2020/06/20)

イベント

[オンライン!] TeckUpもくもく会 #9 - connpass

運営していました。なおソロ運営…。

振り返り

Y

  • 一人でも開催した
  • 前日まで宣伝した
  • 継続的な開催をしている

W

  • 一人運営でも参加者が少なければなんとかなる
    • 参加者は自分含め 3 人だったので平和に回った
  • 前日時点で参加者がいなかったので、声かけ頑張った感
    • 大事
  • 毎週開催している
  • 運営一人だと Slack に連動しているツイート流す奴が見れない
    • 察知するために使っているが、そっちを見ている余裕はない

T

  • 運営人数を増やして作業時間は 4 時間くらい取りたい
    • 現状の運営メンバーは忙しい人が多いので、動ける人が少ない
    • もくもく会はかなりはかどるので、僕自身はかなり開催したい気持ちが強い
  • Slack と二重管理チェックしないといけないのを減らしたい
    • 会が進行しているときは Discord だけ見るというルールにしている
    • しかし得られる情報に差が出てしまっている現状がある
    • Discord の Webhook を利用して解決していきたい

その他

  • 倍くらいは常に参加者が欲しい管
    • KPI を参加者に置くという案もある
    • とはいえ、現状のメンバーへの負担を考えると難しい
  • 運営メンバーを増やす方法を考えないといけないかも
    • この情勢で動けるメンバーが減ってきた感じがする
    • ほかのコミュニティと協力するとかの方法もあるかも
    • 解決策はそのうち探す
  • 自分は発表用スライドを作っていた

まとめ

参加者はもう少し増えてほしい一方で、自分一人でコントロールできる範囲は限られるので、やり方を試行錯誤しないといけないのかもしれません。

宣伝するというのも十分にできていないですし(これまで 2 週間前には出す、みたいにしてましたが、最近は結構ゲリラ的にイベントを立てている)、リソース不足感が否めないです。毎週やるにしろ、月・火の時点では情報出せるようにしといかないといけないかも。

これに関しては運営メンバーを増やしていくことで解決につながるような気がしますが、あんまり整備しきれていない部分もあるので、なんか考えないといけないのかもしれません。

コミュニティは難しいですね…。

単にもくもく会したいだけであれば、別のところにのっかるのもありなんだよなあと思いつつ、自分自身は運営するのも楽しんでいるので難しいところです。