コンテナ詰め詰め大作戦2022冬

この記事は KMC アドベントカレンダー 19 日目の記事です。

adventar.org

背景

世界にはたくさんの不便・だるい・面倒があり、われわれ人類は様々な道具を作り使うことで不便・だるい・面倒を粉砕してソシャゲ周回する時間を捻出したり異常な旅程の旅行に出ています。

続きを読む

電源周波数観測はじめました

京都に帰ってきて電子工作する元気が出てきたので、電源周波数の観測を始めてみました。

www2.zxvf.jp

1分単位の周波数変動グラフ
10分中央値グラフ

1分単位のグラフをChart.jsで描き、10分中央値*1グラフをVictoriaMetrics + Grafanaで描いています。

*1:最初は平均値グラフ描いてたけど、欠測時にグラフがおかしくなったのでやめた。

続きを読む

鴨川🦆べりで今日から始めるCircleCI

この記事は川見てる Advent Calendar 2021およびMoney Forward Engineering Advent Calendar 2021 17日の記事です。

はじめに

マネーフォワードでことし10月から京都や鴨川🦆の良さを社内にひたすら宣伝しながらGoやYAMLなどを書いているwalkureです。
入社時の部署自己紹介で「趣味は鴨川🦆です」と言ったりSlackの分報へ鴨川🦆の写真をひたすら貼り続けていたところ、カモグルイ*1とか呼ばれるようになりました。
殆どの仲間は東京にいるので、あづまの地に鴨川🦆の良さを広めるべくこれからも尽力してまいります。

朝の鴨川🦆

*1:実際晴れた週末は結構な頻度で鴨川🦆河川敷に行って一日ひなたぼっこしてるので反論の余地が一切ない。

続きを読む

Slackの各チャンネルにある発言をひとつのチャンネルに集約する

KMCのSlackには#everythingという「全public channelの人間による発言を表示する」というパワフルなチャンネルがあります。

会社のSlackにもこれが欲しいなぁと思ったので、Event APIをSocket modeで拾うbotをGoでシュッと作ってみた*1

github.com

問題は会社のSlackが4000チャンネルぐらいあるのでアクティブ時間帯にはchat.postMessageのrate Limit(1秒ごと)を即座に突き抜けそう*2なこと。全部見るとか無理っぽいです。どうしよ*3

今後のアイディア

分報だけ集約するのが良さそうな気がする、どうやって判別しようか。

  • 「#times_」のようなprefixで判別
    • naming rulesとかだるくない?
  • botをinviteすることで判別
    • inviteそれはそれで面倒な気も。

いっそ自分がjoinしてるchannelだけ拾うという案もある。

*1:オリジナルの実装はRTM APIだった。

*2:Event APIって30000events/60minsのrate limitがあるけどsocket modeはどうなんだろう。

*3:作る前にチャンネル数見とけば良かったな。

ドコモメールをSIMフリースマホで使う

ドコモ謹製SIMフリー端末向けドコモメールアプリがあるけど、ストア評価*1は驚異の☆2。

play.google.com

ドコモSIM回線で繋ぎGoogle Play Storeのキャッシュを消したらインストールは出来たけどdアカウント認証が通らない。

なんやこれ。

IMAPで送受信

www.nttdocomo.co.jp
ドコモメールはIMAP対応しているので、適当なMUA見繕えば送受信はできる。

GMailアプリもIMAP MUA機能があるけど何故か必ずHTMLメールで送るので宛先がiPhoneのMMSメールだと相手に「Attachment.html」という表示しか出ない。

いかんでしょ。

色々探して調べた結果、K-9 Mailでテキストメールを送ることが出来た。
k9mail.app

バックアップと新着通知がほしいしフォルダ分類をよしなにしてほしい

この状態だと、メーラがポーリングしないと新着メールが取れない。ポーリングしてるとスマホの電池がゴリゴリ減るので、何らかのプッシュ通知を考える必要がある。

また、昔からキャリアメールをGMailへ転送してバックアップしてる*2ので、これも引き続き必要。

ぐぐるfetchmailでやる方法がいくつかヒットしましたが、ドコモメール上でフォルダ分けしてるとそのままでは動かない。

ドコモメールでフォルダを作るとIMAPサーバ上に対応するメールボックスが出来て分類されますが、IMAPでメールボックスが複数存在していると面倒が溢れることがわかった。

  • IMAPメールサーバのlong pollingであるIDLEはメールボックス単位*3
  • fetchmailもメールボックス単位で設定を書く必要がある
  • GMailアプリはINBOX(受信トレイ)しかポーリングしてくれないので、分類されたメールはわからない。


設定側で対象フォルダを意識すると必ず事故る*4ので、勝手にフォルダを認識してくれないと困る。

仕方ないので自分でサーバ上のメールボックスなめる実装を書くことにしました。

通知をどのように送るか

GMailIMAPでのメール追加時に通知を出してくれたら良いんですけど出ない

新着メール通知表示ごときでAndroidアプリ作りたくないので、既存のものを組み合わせてやる方向で考えた。

Web Push/Notification

試してみたけど、スマホゲームのようなCPUもりもり食べるアプリを起動するとブラウザタスクが殺されるのかService Workerが死んで通知が出なくなるのでやめた。

Slack

安全牌なので作ったけど、安全すぎて面白くない。

Outlook.com

Outlook.com ならIMAPで転送したメールも受信トレイ宛なら通知を出してくれる*5ことがわかったので、GMailと同時にOutlook.comへもメールを転送することにした。

当たり前ですがメールサービスなので、これが一番自然な通知を表示してくれる。

つくったもの

Python使って、ドコモメールの全フォルダ(全部と言ってもゴミ箱とかは除く)からGMailOutlook.comにメールを転送してSlackに通知を投げるスクリプトを書いた。
github.com

適当なサーバでcronないしsystemd-timerにより定期的に実行されるイメージ。

キャリアメールさっさと捨てたいねぇという気持ちを強くして終わる。

*1:2021年6月3日時点

*2:むかしはau使ってたので自動転送サービス使っていたが、ドコモメールにはない。

*3:メールボックスをまたぐIMAP NOTIFYという仕様もあるけど、ドコモメールサーバは非対応

*4:新しく作ったフォルダが転送されないとか絶対やるミス。

*5:なんで受信トレイ以外は表示してくれないのか、ぐぐると困ってる記事ばっかり出てくる。

SC16IS750+MH-Z19B+Python/Go(Raspberry Pi)でCO2観測

在宅勤務になったので、会社よりも自宅のCO2濃度をちゃんと観測しなきゃな、って思うようになりました。

CO2観測用のセンサは昔やったことあるしいけるやろ、ということで挑戦。

続きを読む