futabooo blog

色々手をつけすぎてすぐに忘れるので備忘録

Choco60 rev.2でレイヤーを使ったキーマップを使ってみる

だいぶ左右分割にもなれてきて、最近はホームポジションからの移動やトラックボールへの手の移動を何とかさせたいなーと思うようになってきました。 標準のキーレイアウトから離れるのはあまり気乗りしないものの、ほぼ家で自分のキーボードしか触らないのでやることにしました。

Choco60 rev.2はviaを使ったキーマップの変更に対応しておりブラウザでポチポチするだけでレイヤーへのキーの設定を追加することができました。

www.caniusevia.com

設定した内容は一旦ホームポジションからの移動が激しい端っこにあるキーを別のレイヤーに設定してみるやつで始めてみようと思います。

レイヤ−0

右手親指のスベース左にあるキーには短く押すとエンター、押しっぱなしにするとレイヤー2への切り替えとなるようにAnyキーを割り当てました。

他のレイヤーに当てたキーを無くすのはまだ怖くてやってないですがレイヤー切り替えになれ始めたら消そうと思います。

レイヤー1

数字キーや記号を集めたレイヤー カッコの左右を手の左右にすることができるのわかりやすそう

レイヤー2

もともとfnキー押しながらやっていたようなキーをここに設定した

自動化ツールMake(旧Integromat)を使ってTwitterに#FitBoxing2の投稿をしたらPOST requestを作成する

FitBoxing2の記録をつけたいなーと思いZapierで最初やろうと思ったけどPOST requestするのに月2千円は払えないなぁと思ってしまったのでMake(旧Integromat)を使ってやってみました。

全体像

今の所運用してるワークフローはこんな感じ。

大まかな流れ

  1. 15分に1度5件ツイートを取得する
  2. #FitBoxing2のハッシュタグがあるツイートは次のステップへ進む
  3. ツイートIDがData storeに保存されていなかったら次のステップへ進む
  4. Routerで処理を2つに分岐させる
  5. 1つはData storeへツイートIDを保存する、もう一つはPOST requestを発行する

ツイートの取得

Zapierのようにツイートするごとにトリガーするようなものが無いので時間間隔を設定したり、特定の時間を指定したりしてトリガーを設定できます。

今回は15分に一回5件のツイートを取得するようなトリガーを設定しました。

またモジュール(Makeでは、丸いのがモジュール)間の点はフィルターが設定することができるので、次のステップへ進むのは画像つきで#FitBoxing2のハッシュタグ付きツイートだけというフィルターを設定しました。

Date storeにツイートIDが保存済みかどうか確認する

画像つきで#FitBoxing2ありのツイートだけ すでにPOST requestを作成したトリガーとなったツイートIDは最後にData storeへ保存しているので、そのIDが存在するかを確認しています。

ツイートIDが存在しなければ次のステップへ進みます。

Routerで処理を2つに分ける

未処理のツイートだったらData storeへのID保存をPOST requestの作成をやるようにRouterで処理を2つに分岐させています。

POST requestする

ツイートの画像URLとツイートした日時を特定のURLにPOSTします。 受け口はCloudRunを用意していてそこではCloudVisionAPIを使って消費消費カロリーを抽出、pxelaへPOSTして記録するという流れを実装しています。

pixe.la

おわりに

これでフィットボクシングしたらSwitchからツイートすることで消費カロリーの草を生やすことができるようになりました。

https://pixe.la/v1/users/futabooo/graphs/fitboxing2-kcal

それにしてもMake(旧Integromat)ってなんて検索しづらいんだ、、、ほとんど日本語の情報出てこないですね。

2022年の振り返り

年が明けて仕事も始まってしまいましたが昨年2022年の振り返りです。

これまでの振り返りはこちらです。 何年かTwitterのタイムラインで振り返ることをやってましたが、これはそんなに頭使わないでやれるので今年は普通に書いていきます。

2021年の振り返り - futabooo blog

2020年の振り返り - futabooo blog

2019年の振り返り - futabooo blog

2018年の振り返り - futabooo blog

仕事

Stailerの新規導入開発

引き続き10Xでソフトウェアエンジニアとして働いています。パートナーローンチチームに所属し新しくStailerを導入するパートナーの開発を主にやっていました。

振り返ってみると1年で6社のパートナーのローンチに関わっていました。2ヶ月に1社のペース!!(実際は仕込み期間がそれぞれあるのでもうちょいかかってる)

北陸エリアNo.1スーパー「アルビス」がStailer導入。店舗受け取り型ネットスーパーを2/21より開始 | 株式会社10X

中部電力ミライズコネクトが10XのStailerを導入。中部地域初!コストコ商品が買える買い物代行サービスを開始 | 株式会社10X

ドラッグストア「クリエイトエス・ディー」が ネットで注文、店頭・車上で受取可能な買い物サービス 「REMO CART」(リモカート)を提供開始 | 株式会社10X

大手ドラッグストア「スギ薬局」がStailer導入。アプリで商品注文、店頭・車上で受け取り可能に | 株式会社10X

長野のスーパー「デリシア」がStailer導入。 「デリシア ネットスーパー」アプリを9月30日より提供開始 | 株式会社10X

近畿・北陸・東海に展開する総合スーパー「平和堂」がStailerを導入 「平和堂ネットスーパー」を12月9日より提供開始 | 株式会社10X

Stailerはプラットフォームとして成長しているのでこれだけの短期間でのローンチができました。一方成長痛みたいのも発生してきているので、リファクタリングなどの守り?の動きも活発化してきています。

輪読会

輪読会を開催しました。 チームトポロジーの輪読会は以前も書きましたが、アジャイルな見積もりと計画づくりも輪読会を行いました。どちらも定期的に手にとって読み直したい本です。

futabooo.hatenablog.com

しばらく間を空けてしまっているので次の本の輪読会を計画したいです。

オンボーディング

新入社員向けのオンボーディングでアジャイル開発とは?」というような内容の話をする機会を作ってもらいました。人に向けて説明することで自分の中でも整理されていくのでやってよかったと思います。一方ですでにスクラムを経験してきていたり、アジャイル開発について学んだことがある方もたくさんいたので2パターンのオンボーディングに作り変えるのを今年に入ってからやろうと思っています。

新しい技術にふれる

10XではGCPのプロダクトをたくさんつかっています。これまでAndroidしかやってこなかった僕ですが、10Xに入社してからはServerSideの開発をすることも多く、GCPもちょこちょこさわるようになりました。とはいえすでに環境として用意されているものを運用でさわる程度で0から構築するようなことはやったことがありませんでした。またFlutterを触る機会も実際のところそんなになく、まだ雰囲気でWidgetを書いてる状況です。

2023年ははもうちょっとFlutter書きたい。

プライベート

個人参加フットサル

プライベートで一番の変化は個人参加フットサルに行くようになったことです。3月に前職の同僚をソサイチをやった時に身体の動かなさに失望してから体力向上のために通うようになりました。去年の回数を数えたら27回参加していたので月に2,3回はやってたことになります。最近は前職の同僚とのソサイチに参加した時に見てわかるレベルで動きが良くなったと言ってもらえました。

素振り活動

あんまりできてないです。今年の素振りはこのあたり。

GitHubPrjectsでストリーポイントの合計を表示する拡張

GitHub - futabooo/chrome-extension-github-project-beta-story-point

ストアのレビューをSlackに投稿するOSSのバグ修正

fix fetch app store info by futabooo · Pull Request #52 · TradeMe/ReviewMe · GitHub

ドキュメントのtypo修正

docs(graphql): fix typo by futabooo · Pull Request #1042 · zino-hofmann/graphql-flutter · GitHub

もうちょっと素振り活動を増やしていきたい。

総括

全体としてはこなすという年だったと思います。2023年はさばく年にしたいと思います。

2022年に買ってよかったもの

今年買ってよかったものをまとめてみます。 昨年のリンクも置いておこうかと思ったのですが、昨年は書いてませんでしたorz

家電

popIn Aladdin 2

天井のシーリングにつけるタイプのプロジェクターです。。リビング横のスペースに設置しています。 僕が買ったタイプはもう買えないっぽいですね。2Plusっていうのが後継機みたい。

子供がお気に入りの動画を流しておいて、動画に集中してる間に掃除や洗い物をする時間が作れるので買ってよかったです。

Aladdin Connector

popin AladdinのワイヤレスHDMI接続機です。 Switchの画面やFireTVで見れる動画の画面をpoppin Aladdinでうつすのにつかっています。 Switchの画面映す場合遅延が気になるのでタイミングが重要なゲームはおすすめしません。僕はフィットボクシングをやってみたら全然タイミング合わなくてしんどかったです。 poppin Aladdinが未対応の動画サイトを見るのに重宝しています。

EH-NA0J-A

これまでドライヤーは乾かせればいいやろぐらいで数千円のものを使っていたんですが、家族で使うようになったしなんかいいの買ってみるかということで購入しました。 使ったあとの髪が潤いを取り戻したようになるので買ってよかったです。 顔に風を当てるモードも付いていてこれも顔がツルツルモチモチになる気がします。

WH-1000XM5

マンションの大規模修繕工事の音がすごくて家で仕事するどころではなくなっていた時に買いました。ノイズキャンセリングのおかげで無事に工事を乗り切ることができました。

MATECH BrightBar Remote

モニターライトです。手元が暗くなることもなくいい感じにモニターだけを照らしてくれるので目の疲れが軽減した気がします(個人差)

SOGU 9°ブックストッパー

本立て?というか本の下に引いて本立がなくても本を押さえられる代物です。デスクの上で数冊だけ置いてある本を固定するのに使っています。普通のスタンドだとでかいので。

キッチン用品

ティファール フライパン

もともとティファールのフライパンを使っていたのですが、長い間使っていたので何も考えずに同じティファールのシリーズを購入しました。以前使っていたものよりもめちゃめちゃ軽いので料理や洗い物が楽になりました。進化していますね。

育児用品

グスケット

子供が歩くようになって抱っこひもが荷物として持ってる時間が増えてきたので買いました。使うのにちょっとコツが要りますが散歩や買い物に行くときはこれを持っていっておけば突然あるきたくないとダダを捏ねられても片手で支えられるぐらいの重さに感じることができるようになります。

チェアベル

12/29日に買ってこのリストに入ってくるぐらい買ってよかったものです。子連れで外食するとなるとお子様椅子が必須です。勝手に降りようとしたり手を伸ばして何かを取って行ったりするので椅子に固定できるタイプがよいです。このチェアベルトはお子様椅子がないお店でも椅子につけて固定することができるようになります。外食の選択肢が増えて最高です。

Raycastを使い始めて見た感想メモ

はじめに

こんにちは!こんにちは! 最近は会社からの貸与PCがM1になってバ美肉に精を出しています。

さて、これまで僕はMacのランチャーアプリはSpotlightしか使ったことなかったのですがRaycastに手を出してみました。

Raycastとは

高機能ランチャーアプリです。LPにはこんな感じで書いてあります。

Raycast is a blazingly fast, totally extendable launcher. It lets you complete tasks, calculate, share common links, and much more.

www.raycast.com

似たようなのだとAlfredとか結構前からあります。

Alfred - Productivity App for macOS

よく使う機能

Create Database Page | Notion

Notionの特定のDBに新規ページを追加できるextensionです。

こんな感じでNotionのDBに入ってきます。

My Schedule

スケジュール管理のためのextensionです。Raycastのチュートリアルを進めると入れることになるのですが、便利なので入れてよかったです。

見たまんま予定の一覧が表示されたり、meetのURLがある予定ならここから参加できたりします。(加工したかったので画像で🙏) 今回のキャプチャにはないんですが、予定の直前でRaycastを呼び出すとすべての項目の一番上にその予定が表示されるのでmeetに参加したいときとかシュッといけます。

Clipboard History

名前の通りクリップボードの履歴を呼び出せます。snippetに保存とかもできます。

Search Project Manager | Visual Studio Code

VSCodeのProjectManagerというextensionと連携されるextensionです。VSCode側にもextensionを入れておくと、そのextensionに登録したプロジェクトをRaycastから開けます。devcontainerがうまい開けないのでやり方知ってたら教えてほしいです。

marketplace.visualstudio.com

おわりに

Spotlightでできることは当然できるので計算とかもできます。

まだ自分は使えてないのですがaliasやhotkeyの機能もあるのでRaycastのWindowをすっ飛ばして目的のことができるようにもなりそうです。

今の所無料ですが今後どうなるかわからないですが、その時は課金しても使い続けるかもなーという所感です。

会社でチームトポロジーの輪読会をした

最近話題(出遅れてる?)のチートポ本のオンライン輪読会を10X社内でやりました。

輪読会とは

wikipediaには読書会の一つの形式として書かれていました。

輪読会式: 特定のテキストを一区切りずつ読んでいく方式

読書会 - Wikipedia

(読んでみたら自分たちがやってたのは輪読会ではないのかもしれない。。)

今回我々は事前に指定した範囲は各自読んでくる、輪読会当日は読んできた内容を元にディスカッションするというような形式を取りました。

進め方のところで詳細を記載します。

Why 輪読会

10Xは人が増え、自分が入社した2年前から4xぐらいの人数になっています。人数が増えればチームが増えるので今後の組織を考える時期に来ています。そこで輪読会でチートポのチームタイプやインタラクションを学ぶことで共通認識をつくり、組織の話のコンテキストを合わせて議論をスムーズにしたいという狙いがありました。

輪読会の進め方

大きな流れは下記のように進めました。

  1. 事前に対象範囲を各自読んでおく
  2. 当日はジグソー法を使って対象範囲の要約を参加したメンバーで作る
  3. 会自体のふりかえりをする

事前に対象範囲を各自読んでおく

実は輪読会1回目は集まってその場で対象範囲を読むという方法でやってみたのですが、ふりかえりで事前に読んできたほうが時間を有効に使えそうということで2回目から各自事前に読んでくる方法に変更しました。

ある程度個人への負荷が増えてしまうんですが、これがいい塩梅の緊張感になって参加メンバーには好評だったので以降事前に対象範囲を読んでおく方式で進めました。

当日はジグソー法を使って対象範囲の要約を参加したメンバーで作る

ジグソー法とは、協同学習を促すためにアロンソンによって編み出された方法である。 1つの長い文章を3つの部分に切って、それぞれを3人グループの1人ずつが受け持って勉強する。 それを持ち寄って互いに自分が勉強したところを紹介しあって、ジグソーパズルを解くように全体像を協力して浮かび上がらせる手法。

ジグソー法

ジグソーパズルを解くように全体像を浮かび上がらせることからジグソー法という名前がついたようです。

流れは下記のように進めます。

  1. ジグソーグループと呼ばれるグループを複数作り、コンテンツを分割して担当を分ける
  2. 同じ部分を担当する別のジグソーグループの人と集まってエキスパートグループを作る
  3. エキスパートグループで読み込みと議論を行い、理解を深め合う
  4. ジグソーグループに戻り自分の担当する部分を説明する

図で表すとこんな感じです。最終的にいくつかのグループでの要約が作成されます。

ジグソー法

CoREFプロジェクト推進部門 知識構成型ジグソー法

余談ですが学生の学習法としてジグソー法での学習と宿題では学習成果に5x程度の差があるようです。(画像上の方の赤い枠がジグソー法、下の方の赤い枠が宿題)

visible-learning.org

会自体の振り返りをする

輪読会の最後には5分程度もっと会自体をよくするためにはどうするのがよいかふりかえりを必ずしていました。会を進めるごとに改善された内容をいくつか紹介します。

  • 当日集まって読むのをやめて事前に読む方式に変えたことで議論に時間をたくさん使えるようになった
  • GoogleMeetのブレイクアウトルームを使ってジグソーグループを作っていたが録画できず参加できなかった人が議論を見れないので事前にジグソーグループ用とエキスパートグループ用のURLを発行しておいて各自分かれるスタイルにしたことで録画できるようになった
  • カレンダーの招待をしていても開催時間が朝で突然予定が入ってこれないなどがあったのでリマインダーを設定することで人数を事前に把握できるようになった

輪読会をやってみて

オンラインでの輪読会は初めての試みだったのでうまくいくか不安でしたが、参加者のOwnershipにも助けられて会を重ねるごとにロジが洗礼されていき良い形の輪読会が作れたと思います。また、チートポ本を題材に選んだことで10Xの場合は〜というように議論が発生したので当初の目論見であったコンテキストを合わせるということもできたと思います。

アウトプットの一部を紹介します。既存の組織間のインタラクションモードのAsIsとToBeみたいな整理がされていて各インタラクションモードは共通認識としてどういったインターフェースでやりとりするのかをメンバーは理解しています。(ほぼモザイクですがw)

一方で参加してない人には本の中の言葉はスッと入ってくるものではない(参加者もカタカナにやられ気味だった)ので10X内部で使う用語に落とし込めるといいよねというようなふりかえりもありました。

共通認識をつくるための輪読会、おすすめです。

電気代見直しのために直近3ヶ月を振り返る

※追記 公開後に計算間違ってたことがわかったので表を更新した。今の生活のままだと会社とプラン変えるだけでは安くならなさそう、、、

固定費の見直しをするためにひとまず電気代見直しをしてみました

まずは現状を把握しないことには改善もできないので直近3ヶ月の時間帯別使用量を出してみるとこんな感じでした。こうまで時間帯の傾向がちゃんとでるのおもろい

いま使ってる東京ガスのずっとも電気1プランとその実績を元にシン・エナジーの基本プラン、夜生活フィットプランだった場合で比較をしてみたのがこちらです。そもそも電気使いすぎでは?みたいのはまぁあるけど寒い時期で暖房ガンガンつけてたのでしょうがないね

18-22の使い方が料金にかなり影響してそうなことがわかります。 最安叩き出してるシン・エナジーの夜生活フィットプランにするのが良さそうだけど、その場合22時過ぎてから洗濯機動かしたり食洗機動かしたりするのが良さそう

手順

一旦myTOKYOGASにログインして時間別使用量の画面を開きます

このへんとか開けば良いです

https://members.tokyo-gas.co.jp/api/mieru/elecGraphJson.jsp?xAxis=hourly&customerNo=0&supplyPointSpecificNo=0&xAxis=hourly&date=2022040123

inspector開いてリクエストをCurlとしてコピーを選びます

あとはレスポンスから必要な値だけとってきてcsvにしておきます

実際にcsvにするときこんな感じで月を指定して日付分for回してみたいにやりました

month='02'
for i in `seq 1 28`
do
  day=`printf %02d $i`
  curl 'https://members.tokyo-gas.co.jp/api/mieru/elecGraphJson.jsp?xAxis=hourly&customerNo=0&supplyPointSpecificNo=0&xAxis=hourly&date=2022'${month}${day}'00' \
    -H 'authority: members.tokyo-gas.co.jp' \
    -H 'accept: application/json, text/javascript, */*; q=0.01' \
    -H 'accept-language: ja-JP,ja;q=0.9,en-US;q=0.8,en;q=0.7' \
    -H $'cookie: {コピペした時の値が入る、セッションIDとか入ってる}
    -H 'referer: https://members.tokyo-gas.co.jp/services/mieru/electricity.html?no=0&date=202205' \
    -H 'sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="101", "Google Chrome";v="101"' \
    -H 'sec-ch-ua-mobile: ?1' \
    -H 'sec-ch-ua-platform: "Android"' \
    -H 'sec-fetch-dest: empty' \
    -H 'sec-fetch-mode: cors' \
    -H 'sec-fetch-site: same-origin' \
    -H 'user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Mobile Safari/537.36' \
    -H 'x-requested-with: XMLHttpRequest' \
    --compressed | jq -r '.hourly.thisHourAmounts | @csv' >> $month月.csv
done

まとめ

なんとなく安くなると思ってたけど使い方気をつけないと高くなりそうなことが分かって良かった

時間帯別料金は時間を意識して使えば安くできそう(それはそう)

東京ガスは日別はcsvで落とせるので時間別も落とせるようにしてほしい!

参考

home.tokyo-gas.co.jp

www.symenergy.net