Android の HTTP Shortcuts アプリで Slack Status 変更と勤怠打刻をいい感じにする

※ [2020-05-24-1] の Android 版です。 [2020-07-14-1] に書いたとおり、iPhone から Android に乗り換えました。そうなると、勤怠関係の iOS ショートカットも移植しないといけません(よね?) Android には同じ機能はなさそうでしたが、ちょっと調べたら HTTP Shortcuts というアプリを見つけました。ほぼ同等の機能で移植できましたので、ご紹介します。 使い方 アプリ内にこのようにショートカットを作りました。各ショートカットはホームに配置することは出来ますが、誤タップを避けるためにこうしました。 使用感はこんな感じです。誤タップすると面倒なので、すべて確認ダイアログを出しています。 ショートカット構成 動作確認しやすくするために、ショートカットをモジュール化しています。 ①②③④が直接呼ぶショートカットは以下のとおりです。 ① = ⑨ → ⑤ ② = ⑥ ③ = ⑦ → ⑧ → ⑨ ④ = ⑨ ① 出勤 長押しして Edit を表示した画面です。 Trigger Shortcurts をクリックすると、前述の通り「⑨ /jobcan_touch」 → 「⑤ slack status 出勤」の順に実行するショートカットだと分かります。 Require confirmation before execution にチェックを入れて、実行前に確認ダイアログを出すようにしています。 実行された様子。ずっと「仕事開始」も変なので、この Status は 30 分で消えるようにしています(後述)。 ② ランチ 長押しして Edit を表示した画面です。...

2020-07-17 (Fri) · masutaka

『第5回 データアーキテクト(データ整備人)を”前向きに”考える会』に参加した #前向きデータ整備人

第5回 データアーキテクト(データ整備人)を”前向きに”考える会 - connpass 前回 [2020-06-09-1] に続いての参加。大きな組織に所属されている方が多いのかな。 当日の #前向きデータ整備人 Tweet 以下、個人的なメモです。 抽出の仕事をうまくやるために必要なこと 主催者のしんゆうさん ヒアリングは重要だよなあ。少なくとも、データ整備にかける時間の半分はそれに使っても良いと思う。誤ったヒアリングをすると、誤ったデータ整備をしてしまうので。 雑用扱いはされてないので、その点は恵まれている。私がそもそもデータ整備人というよりエンジニアだからね。 片手間でもできる!BIレポート整備人のためのガイドライン ウィルさん ガッツリ専業なので、今の状況には当てはまらないけど、片手間の人は大変そうだな。 「#前向きデータ整備人」を参考にデータ基盤を立ち上げた話 おおたさん 分析基盤構成は興味深かった。マネーフォワードも Looker 使っているんだね。 DataOpsという観点からデータ整備人を考える ぼうさん こちらの発表に限らないけど、大企業所属の方が多いのかな。 今はビジネス職の人と二人三脚でやっているので、お互いを理解して、まずは動くものを実装していくフェーズ。役割がシンプルなので、今のポジションを深く考えていない。始まったのが4月からというのもある。 ゼロから作ったデータサイエンス組織で意識した事 高橋光さん 「データドリブンな会社にする」 それな!

2020-07-14 (Tue) · masutaka

iPhone X から Pixel 3a XL に乗り換えて一週間経った

[2017-11-18-1] に iPhone X を買って 2 年半。当時の購入価格で 12 万円だったこともあり、iPhone はもう最後かなと思ってた。スマホに 10 万円超は払えなくはないけど、選択肢がないのは健全ではないと思った。あと、iPhone 飽きた。 10 年前に iPhone(4) を初めて買った時は「スマホでネイティブコードを動かさない Android 意味分からん」と思っていたのに、随分な変わりようです。 Android は [2016-11-01-1] から ZenPad のタブレットを使っているし、最近は iPhone とそう変わらないとよく聞くので、思い切って乗り換えてみました。 Pixel 3a XL にしたのは、SIM フリーの Felica 対応 Android があまりなかったからです。Android に土地勘がないので、もっと良い選択肢はあったかもしれません。 ただ、このスペックで定価の 6 万円は割高に感じられました。そこで Google アラートを仕掛けて待つこと 2 ヶ月。やりました! loading... タイミング的にも最後だったみたいです。そろそろ Pixel 4a が出るそうですが、今回は安く Android に乗り換えるのが目的だったので、後悔とかはありません。 本当は LG G8X ThinQ の 2 画面のやつが良かったんですけどね。CPU は Snapdragon 855 と速いのに、そこまで高くないし(7万円くらい?)。ソフトバンクの実店舗で契約して SIM ロック解除すればイケるという情報もありましたが、人気で品薄だったのと、最近の情勢でやりづらかったので今回は諦めました。 Pixel 3a XL に乗り換えて結果的にかなり満足しています。ただ、自分のマインドは一般的ではないと思うので、共感はされないかもしれません。 良かったこと 画面が少し大きくなった。iPhone X で十分だったけど、このくらいの大きさまでなら許容範囲。ホーム画面広い。...

2020-07-14 (Tue) · masutaka

『第4回 データアーキテクト(データ整備人)を”前向きに”考える会』に初参加した #前向きデータ整備人

第4回 データアーキテクト(データ整備人)を”前向きに”考える会 - connpass 最近この辺の仕事をし始めていて会社の人が教えてくれたので、初参加してきました。YouTube ライブだったので、かなりお手軽な参加でした。 今回は LT 祭り。技術の話から温かみのある話まで、網羅的に話を聞けた気がします。 当日の #前向きデータ整備人 以下、個人的なメモです。 どうやって「データを整備すると良いことがある」を周りに伝えるか 主催者のしんゆうさん 使う人の気にすることを減らし、本来の分析に集中させるためにも、データ整備が必要。 データ分析する人は難しい SQL 書きたいわけではないですからね。データ分析をしたいわけでもないし、意思決定を素早くしたいはず。 データ整備に必要な「実装設計書」の作成とコミュニケーション事例 (フォーム URL を公開してよいか分からないので載せない) 小川 卓さん 分析の質は取得しているデータの質に依存する。いくら AI とかが発達してもこれは変わらない。まあそうだよね。 もう一度、表計算ソフトを愛でる 高比良 めぐみさん 秘伝のタレしがちだけど、使いどころによるという話。 個人的には、使い捨てのスプレッドシートや、BigQuery を介した機械的な利用には良さそうな気はしている。 スキル0が曖昧な領域を埋めるために人の流れを整備した話 TODO: 資料が公開されたらここに貼る 山崎 隆弘さん 今の会社は大企業ではないとは言え、関係性を増やすのは少し分かる。私がひきこもりニートなので、そんなには出来ないし、やりすぎないようにもしているけど。 embulk, digdagを用いたデータ基盤構築 土川 稔生さん BigQuery に集約するためのノウハウの話だった。 今回話には出なかったけど、Redash のクエリの数は辛くないのかな。 私もちょっと前まで Redash を構築したり、少し SQL 書いてたけど、Redash のクエリ数が多くて辛い問題はあった。 最近機会があって Looker を学習しているけど、「ビジネス職の方がかんたんにデータを扱えるとはこういうことか」と感動している。学習や導入が進んだらどこかで話したい。 未来を変える! Withユーザー志向 成瀬エールさん 多くの運用担当者は、“与えられた環境の中だけ” の発想で運用、改善を行います。かつ結構我慢強いものです。 この件に限らず、とても良くわかる。そのためにもこちらから踏み込んで、理解したり知ってもらうことは必要。 業務データ整備における課題と対応について (資料は連絡が来たら送るとのこと) 和田怜さん ここまで自由奔放なデータを扱う予定はいまのところなさそうだが、大変そうだな…。 “あえて"データ整備人になるメリットを前向きに考えてみた 香村貴之さん 意思決定の支援 意思決定の最大化...

2020-06-09 (Tue) · masutaka

エニタイムフィットネスを退会した #筋トレ

先ほど退会手続きを済ませてきた。 特に必要なものはなくて、(当たり前だが)建物に入るためにセキュリティキーが必要なくらい。署名をして手続完了。セキュリティキーは返却不要。7/1 から使えなくなるだけ。 正式な退会日は 6/30 なので、入会日である [2018-06-30-1] からちょうど丸2年となる。止める時は町屋から引っ越す時だと思っていたので、我ながら意外な結末。 COVID-19 騒動が発端ではあるが、改めて考えてみると、複数の理由が重なった退会だった。1つだけだったら退会してなかったと思う。 自宅トレーニングを継続できてしまっている(#筋トレ from:masutaka )。むしろ以前より頻度が上がった 自宅トレーニングを 2 ヶ月半ほど続けて、特に太らなかった。逆に腕立て伏せのおかげか、大胸筋が少し大きくなった ジムと比べて、自宅トレーニングで時間を短縮できた 3 月のエニタイムは以前より混んでいて、バーベルが使えない頻度が増えた 私が非常に暑がりなので、マスクしながらトレーニング出来ない あと、改めて考えると、専属のトレーナーが 2 月に突然退職したことも影響したと思う。もし退職していなかったら、退会しなかったかもなという意味で。引力が減ってしまった。 退会者が急増しているのかと思ったけど、そこまでではないそう?東大の施設がまだ再開していないとかで、逆にそれ以上に入会者は増えているそう。それなら安心(?) 自宅トレーニングをいつまで続けられるか分からないけど、「やらなくちゃいけない」「やると決まっているのでやる」の精神で思考停止して継続していく。 自宅トレーニングで大いに参考にしたユウジさんの YouTube 動画。これを見て、ランジをかなり重要視してやってます。雨の日は室内でバックランジ。晴れたら広場でウォーキングランジ。腕立て伏せと腹筋はおまけ(それでもかなり息は上がるけど)。

2020-06-08 (Mon) · masutaka

iOS のショートカットで Slack Status 変更と勤怠打刻をいい感じにする

2 月からほぼフルリモートで仕事してます。 会社の勤怠管理システムはジョブカン が導入されています。物理出社していた時は、物理 Suica カードを NFC リーダーにタッチして打刻していました。 リモートワークでは物理タッチはできないため、Slack の任意のチャンネルで /jobcan_touch と POST して打刻しています。他の社員への共有も兼ねています。 ただ、毎日の /jobcan_touch が面倒になってきました。私は Slack status もゆるふわでセットしているため、追い打ちで面倒です。 いくつか試して今は iOS のショートカットに落ち着いたので、記事に残しておきます。 使い方 ホーム画面を右にスワイプすると現れるウィジェットに iOS ショートカットを登録し、直接使う3つのショートカットを表示させています。 使用感はこんな感じです。 誤タップして打刻してしまうと、取り消しの申請が必要になるため、確認ダイアログを出しています。タイマーのダイアログはなんとなくです。 ショートカット構成 動作確認しやすくするために、ショートカットをコンポーネント化しています。 ①②③が直接呼ぶショートカットは以下のとおりです。 ① = ⑩ → ④ ② = ⑤ ③ = ⑥ → ⑩ さらに④⑤⑥はそれぞれ⑦⑧⑨を使います。 ① 出勤 前述の通り、「⑩ /jobcan_touch」 → 「④ slack status 出勤」の順に実行するだけです。 実行された様子。ずっと「仕事開始」も変なので、この Status は 30 分で消えるようにしています(後述)。 ② ランチ 「⑤ slack status ランチ」を実行したあと、確認ダイアログとともに iOS のタイマーを 60 分にセットしています。...

2020-05-24 (Sun) · masutaka

Docker マルチアーキテクチャイメージのメモ

知らなかったのでメモしておく。 説明や利用方法はこちらの記事にまとまっている。 Dockerのマルチアーキテクチャイメージについて調べてみた|Developers.IO ・単一のDockerイメージで複数種類のOSやCPUアーキテクチャをサポートさせることができる。 ・このイメージを起動させると、Dockerが実行されているホストのアーキテクチャに応じて適切なイメージが自動で選択される。 ・Docker Hub上の公式イメージの多くはマルチアーキテクチャをサポートしている。 作成方法は公式ドキュメントに書かれている。 Leverage multi-CPU architecture support|Docker Documentation Experimental な buildx サブコマンドを使う。Docker Engine 19.03.8 から使える。 Docker for Mac の場合、Settings > Command Line から experimental features を有効にする必要がある。 Settings > Docker Engine で以下も設定する必要もあるかも。私はすでにこうなっていた。 { "debug": true, "experimental": true } 前述の公式ドキュメントの通りにやると Docker Hub に masutaka/demo:latest が push される。 https://hub.docker.com/repository/docker/masutaka/demo/tags ※ masutaka/demo:default は ‘$ docker build -t masutaka/demo:default .’ で普通にビルドした Docker Image。 builder は忘れずに元に戻しておく。 $ docker buildx ls NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS mybuilder docker-container mybuilder0 unix:///var/run/docker....

2020-04-11 (Sat) · masutaka

NHK Eテレのテキシコーメモ

テキシコー [総合 小学校3・4・5・6年生、中・高]|NHK for School 朝チラ見して良さげだったので、第5回まで全部見た。各回10分。以下メモ。 <第1回> Scene2 電車のおもちゃのつかみが良かった。こんなふうに動くんだ。 <第2回> Scene3 新幹線の座席のカバーを変えるやつ。プログラミング的思考とは何かが一番分かりやすいかも。 <第4回> Scene3 犬のフンを片付けるやつ。チラ見した時、おーと普通に感心した。 Scene5 うんうん、こういうのもそうだよね。

2020-04-02 (Thu) · masutaka

terraform を再帰的に実行する Makefile

[2019-05-07-1] に紹介した『Pragmatic Terraform on AWS 』に沿って設計すると、terraform のディレクトリは複数出来ると思います。 依存を分けることと、まとめて実行することはやや矛盾します。とは言え terraform や terraform provider がアップデートした時の terraform init/plan/apply はまとめてやりたいものです。 少し前に作って使っていますが、なかなか良い感じです。 使っている Makefile たち この辺りを工夫しました。 ・terraform init/plan/apply に失敗すると、即座に停止する ・make の -C オプションを使って、cd せずに make を実行できている。つまり cd .. とかで戻る必要がない。そういう理由で下位ディレクトリに Makefile 置いてる ・make の -w オプションを使って、以下のようなそれっぽいログを出している $ make init-r make[1]: Entering directory `/Users/masutaka/src/github.com/masutaka/masutaka.net/terraform/aws' (snip) make[1]: Leaving directory `/Users/masutaka/src/github.com/masutaka/masutaka.net/terraform/aws' make[1]: Entering directory `/Users/masutaka/src/github.com/masutaka/masutaka.net/terraform/heroku' (snip) make[1]: Leaving directory `/Users/masutaka/src/github.com/masutaka/masutaka.net/terraform/heroku' direnv 使う場合 terraform では credential を注入するケースも多いので、direnv も使うことは多いのではないでしょうか。ルートに .envrc があるだけなら別ですが、各ディレクトリにもある場合はこのパッチが必要になると思います。...

2020-03-26 (Thu) · masutaka

スレッドセーフでない Dir.chdir の使用を RuboCop で禁止する

週刊Railsウォッチ(20200225前編)RubyのShellwordsライブラリは知っておくべき、VCRはやはり有能、copを自作、Hix on Rails記事ほか|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社 RuboCopでコードレビュー支援: Net::HTTPを使わせないcop(Hacklines より) そういえば以前業務で似たことをやったので、メモがてら置いておきます。 Dir.chdir はスレッドセーフではない Sidekiq で Dir.chdir を使ったら、他のジョブと干渉してハマりました。 Feature #9785: Feature Proposal: Dir.chdir Thread Safety - Ruby master - Ruby Issue Tracking System ↑ こちらの Issue を見つけるまで、Dir.chdir がスレッドセーフでないことを知りませんでした。Dir.chdir はプロセス全体の working directory を変えてしまうようです。裏側を想像するに仕方がない気はしますが、ruby のドキュメントには書いてないです。 今後レビューで指摘し続けるのも大変なので、RuboCop の custom cop で解決できないか検討しました。 RuboCop の custom cop は作成も導入も割と簡単だった とは言え、rubocop-rspec みたいな gem を作るのは大げさです。 調べたところ、gem を作らずに、簡単に自作の custom cop を導入することが出来ました。 ruby 付属の ruby-parse コマンドで AST(抽象構文木)を得ることが出来ます。 $ ruby-parse -e 'Dir.chdir' (send (const nil :Dir) :chdir) $ ruby-parse -e 'hoge ?...

2020-02-25 (Tue) · masutaka