Posts for: #Device

fitbit おもしろい

2時に寝て6時半過ぎに起きた。これまで眠れない状況の記録のためにこれを書いてきた。しかし、今後は fitbit が記録してくれるからここに書かなくてもよいかもしれない。

今日の運動は腕立て,スクワット,散歩をした。統計を 運動の記録 にまとめる。

fitbit で睡眠時間を観察

fitbit を付けたまま眠ると睡眠時間や睡眠の質も計測できることに気付いた。昨日の睡眠時間がこれ。運動するまでは3時間ほどしか眠れなかったのが、体調がよくなって4時間眠れるようになった。睡眠スコアというものがあってほとんどの人は72〜83のスコアになるらしい。高いほどよい。ぎりぎりだけど、私もまだ普通のクラスにカテゴライズされている。これは意外だった。これも運動の記録のスプレッドシートに一応つけておく。

昨日は午後に fitbit が届いたので半日しか付けてなかった。今日はフルで付けていて22時の時点だと次のような数値になる。今日は意識して歩く機会を増やしてみた。遠くのお店へ買いものへ行ったり、トランクルームへ箱を持っていったりした。30分ほど歩くとゾーン時間を稼げる。ゾーン時間とは心拍が上がってトレーニングできているような時間らしい。315分になっていて、平日にこんなずっと歩いていたわけではないので、日常のちょっとした負荷の高い動作でもゾーン時間にカウントされるみたい。毎日このぐらいの運動をしていれば、食べる量さえ調整できれば体重はどんどん落ちていくのではないか?

ながいさんから fitbit 対応の体重計もあると教えてもらって、いくつかググってみているうちに Anker Eufy (ユーフィ) Smart Scale C1 が機能と値段のバランスがちょうどよいプロダクトにみえたので購入してみた。

歯医者で治療

前回の定期歯科検診で、歯の掃除をしてもらっているときに奥歯の銀の詰めものが外れてしまった。いつ治療したのかも覚えてないぐらいの昔 (10年以上?) のものなので寿命だろうと思う。歯医者さんが言うのは選択肢が3つあるという。

  1. 銀の詰めものを付け直す
  2. 別の詰めものを付け直す
  3. 虫歯の治療をして別の詰めものを付け直す

詰めものの下は虫歯になっていたらしい。せっかくの機会だから虫歯も直した方がよいだろうと思って3番目の治療をすることにした。今日は虫歯の治療で歯を削る日になる。麻酔をしてくれたものの、麻酔が全然効かなくて最終的には6回追加で麻酔した。マンガによくあるような「こいつ、毒が効かないのか?!」みたいな毒耐性を発揮して薬も効かないキャラクターみたいになってしまっていた。もはや途中から歯を削る恐怖よりも麻酔が効かないんじゃないかの恐怖とたたかっていた。痛くないように麻酔うってくれているのに、めっちゃ痛いんやからね。これはこの世のわりと高いのレベルの恐怖やわ。なんとかやり終えたが、もう今日は何もしないと思うぐらい疲れた。fitbit はこの心拍数の上昇をゾーン時間と勘違いしたのではないか?

トランクルームのその後

オフィスに電子レンジを購入したのでその箱を歩いて持っていった。借りているスペースの半分ぐらいは埋まりつつある。これだけの箱を部屋に置いておく邪魔さを考慮すると借りてよかったなと思える。明日はモニターの箱も歩いてもっていこう。この歳になるとモチベーション管理が難しい。居住環境でストレスになるものはお金で排除していって集中力を維持できるようにしたい。

fitbit を買ってみた

2時半に寝て5時過ぎに起きてホットクックで玄米ごはんをスタートしてまた寝て6時半に起きた。

今日の運動はレッグレイズ(椅子),腹筋ローラー,スクワット,背筋をした。統計を 運動の記録 にまとめる。

トランクルームへの搬出

昨日、契約をまとめたので祝日の深夜0時過ぎに車に荷物を積み込んで搬出した。繁華街の通り沿いにあるビルにトランクルームがある。繁華街でもさすがに平日前の深夜には誰もいなくて狭い通りではあるけど、車をビルに横付けしても迷惑にはならないように思える。サーバー類の箱、ホットクックの箱、その他、大きめの箱、あともともとオフィスに備え付けされてた椅子をマンションの部屋で保管してもの、防災向けの水と食べもの、置いておくだけの場所を大きく取っていたものをトランクルームへ移動させた。邪魔なモノがなくなって部屋が広くなって快適。

fitbit charge 6 を購入

運動の盛り上がりを支援するため、歩数と距離を取得するために購入した。お昼過ぎに届いて充電してそれから付けている。初期設定するとき、ある程度、充電しないとデバイスとスマホアプリの初回同期が途中でローバッテリーとやらでエラーになる。何度かやってみてダウンロードを始めるもののすぐにエラーになっていた。しばらく放置して充電してバッテリーが50%以上の状態になってから成功したような気がする。

2017年ぐらいに JJUG イベントで会ったときに元同僚が fitbit を付けていて、いろいろ話しを聞いて当時もよさそうにみえたけど、私は運動とかやらないなと思ってそのときは買わなかった。なぜそのときから運動しなかった、自分という、後悔先に立たず。いま運動の記録に散歩の距離を、私の感覚で適当に付けている。実際の数値は全く当てにならない。そして別に意図的な散歩ではなくても、たまたま遠くの飲食店へ行ったとか、出張であちこち移動したとか、そういう日もある。今日も近所のクリニックに歩いて往復しただけで距離数やエネルギー消費を稼いだ。今後は運動のための散歩という形態ではなく、その日の歩数と距離数として運動の記録に付けていく。bluetooth 接続でスマホアプリと fitbit が同期する。

私が fitbit 初心者なので他にどんな指標が役に立つのか、まだよくわかっていない。消費エネルギーがカロリーとして表示される。これで毎日 3000-5000 ぐらい消費するように運動すればいいといった目安になる。

fitbit に詳しい人がいたら使い方を教えてほしい。公式に日本語の Fitbit コミュニティ も用意されていた。これはカスタマーサポートの工数削減が目的かな。また暇なときに眺めてみる。

睡眠外来に行く

格闘家に学ぶ体脂肪コントロール 本に代謝には疲労回復を促す睡眠が大事だと書いてあった。最近、運動していていつもより眠れるようになった気はするけど、運動する時間の分だけ可処分時間を圧迫して作業やお仕事の時間が削られて終わらなくなって、その補填に睡眠時間を削るという悪循環になっている。どうせ寝ても3時間しか眠れないのだからと睡眠は諦めていたものの、代謝をよくするためには睡眠も改善していく必要がある。私はいびきもあるのでそれも改善できれば睡眠の質がよくなるのではないかと考えた。

近所のクリニックの睡眠外来へ行ってみる。一通り状況をお医者さんに説明して、まずはいろいろ検査してみましょうということで、後日、検査キットを使って睡眠時無呼吸症候群の検査も行う。今日のところは肺活量と血圧と採血をした。血圧は高めだったらしく「普段どのぐらいですか?健康診断のときは?」と聞かれて「健康診断はもう5年ぐらいやってないです。覚えてません。」と答えたら、看護師が「こいつ、やばいやつだ。」みたいな空気になって、それ以上はなにも聞かれなかった。

コロナ禍以降、不摂生な生活を続けてきたので身体の数値は悪いだろうと推測する。それも含めて今年はカラダを整えていくことに注力しようと思う。

かきまぜという進化

2時過ぎに寝て6時半に起きた。晩ご飯食べてからちょっと自転車で走って運動してオフィスで軽く作業するつもりが、ブログ読んだりして結局意図した作業ができなかった。

今日の筋トレは腹筋ローラー:5x1,スクワット:20x1,縄跳び(両足跳)30x3をした。腹筋ローラーは腹筋も使うけど、肩や腕の筋肉もパンパンになっている。

ストレッチ

筋トレを継続しているので軽い筋肉痛を引きずったままストレッチを受ける。トレーナーさんもストレッチしていて、体が硬めにみえるという話しはあるものの、筋肉痛をストレッチで伸ばすのは悪いことではないので問題ないという。昨日ルミナリエの案内に歩き回ったせいか足も腰もやや疲労していた。お尻の後ろのツボのようなところも普段平気なのに効いた気がする。トレーナーさんとネットで調べた情報をベースに筋トレの話しをしていて、毎日同じメニューをこなすよりも違うメニューをやった方が筋肉が回復する日を設けられて効果的らしい。ちょうどいま習慣化できてきたタイミングでいくつかメニューを増やそうとしているので1週間の筋トレのメニュー作りをしてもよいかもしれない。今日の開脚幅は開始前152cmで、ストレッチ後156cmだった。

縄跳びの跳び方

筋トレのメニューの1つにしようと FEELCAT なわとびを購入してみた。

今日届いたので長さを調節して早速オフィスの近所の駐車場へ行ってやってみた。縄跳びなんか学校の体育でやって以降やったことないんじゃないかとすら思えた。最初はどうやって跳ぶんだっけ?みたいなところから始めて、段々記憶が戻ってきてリズムよく跳べるようになった。長さ調節の説明書に初心者は少したるむ感じの長い方がよいと書いてあったから長めに調節していたものの、跳んでみると縄がたるんだ分の回転するリズムが自分の感覚と違って返って跳びにくかった。戻ってきてさらに短く適性な長さに調節した。ひとまず両足跳び30回を3セット跳んでみた。これだけで息が切れた。

縄跳びの動画をみていて回数をこなすよりも跳び続ける秒数を測った方がよいようにみえる。これなら縄跳びが上達することで同じ時間でも回数が増えて負荷を上げていくのにちょうどよさそうに思える。まだ両足跳びも怪しいので慣れてきたら時間に移行していく。他のいろんな跳び方にも挑戦したい。

能楽の勉強

4半期に1回ぐらいの「能のことばを読んでみる会」へ行ってきた。前回の所感はここ 。久しぶりで最寄り駅は阪急芦屋川駅なのに、なぜか阪神だと勘違いしていて阪神芦屋駅に行ってしまい、そこから速歩きで20分かけて芦屋能楽堂に辿り着いた。1kmほど歩いた。そのせいで10分ほど遅刻した。よい運動にはなったけれど。

今回のお題は「難波」という、世阿弥の祝言能だという。世阿弥が自筆した本物の文献は国の重要文化財としてお寺に保管されている。その文献をすべて写真に撮ったものを影印 (えいいん) と呼び 世阿弥自筆能本集 として販売されている。講師の朝原さんがその本を持ってこられてみせていただいた。おそらく難波の詞章もそこに書かれていたのだと思う。現代人は世阿弥の自筆をそのまま読めないが、びっしりとカタカナが書かれていた。発音どおりの表記をするために意図的に漢字やひらがなを使わずにカタカナで書いたと考えられている。この文献は世阿弥が自筆したことは間違いないが、書いてある内容がすべて世阿弥のオリジナルかどうかまではわかっていない。世阿弥が活躍したのは室町時代なので本は書き写すしかなかった。他人の創作物や文献を世阿弥が書き写した可能性もある。

朝原さんによると、現代に伝わっている難波の詞章の内容と、世阿弥が自筆した文献に書いてある内容はいくつか食い違っているという。その理由としていくつかの仮説が考察される。

  • 世阿弥が書いたものは編集中の草稿だったのではないか
  • 世阿弥が書いたものを現代まで伝わる過程で誰かが改変したのではないか
  • 実は難波が誰かの創作物で、世阿弥はそれを書き写したものの、それはオリジナルではなかったのではないか

難波の次第は次の言葉から始まる。

山も霞みて浦の春。山も霞みて浦の春。波風静かなりけり

七・五・七・五・七・四と七五調になっている。この冒頭の音を聞くだけで、いまから始まる物語はきれいな美しい物語を展開するよという意図が込められているという。また「波風静か」とは能の中では世の中が平和ですよという意味をもっているという。

やまもかすみて うらのはる やまもかすみて うらのはる なみかぜしずか なりけり

といった具合に、この1文だけで解説が10分といった、いつも通りの詳細な解説で進んでいく。

難波は 仁徳天皇 の仁政を讃える内容となっている。所々、仁徳天皇の徳によってなにもしなくても平和で穏やかで人々は幸せに暮らしているみたいな表現が出てくる。現代人が習った仁徳天皇という呼び名は、奈良時代中期に中国を真似て漢字2文字で天皇の名前を表すようになって以降の話しだという。したがって奈良時代に成立した 日本書紀 では仁徳天皇という名前は出ておらず、仁徳天皇を表す大鷦鷯尊 (おおさざきのみこと) という日本式の名前が使われている。難波の中でもその名前で出てくる。こういった漢字2文字で天皇の名前を表す以前の日本式の天皇名前を 和風諡号 と呼ぶらしい。

咲くや木 (こ) の花 冬籠り

「木の花」は「こそあど」言葉の指示語としての「これ」の意図がある。わざわざ「木の花」とあるのは 木花開耶姫 (このはなのさくやびめ) と掛けているのだという。しかし、木花開耶姫は桜の女神 (または火山の女神?) として現代では伝わっている。難波の物語で出てくるのは梅についての問答なのに木花開耶姫が出てくるのはそもそもおかしいのだけど、当時は梅の女神でもあったのか?それともただ言葉を掛けただけなのか?といった複数の考察ができるという。

難波の物語自体は仁徳天皇がいかに素晴らしくて、その治世によって世の中は平和で美しくて、様々な情景を浮かべるような表現がたくさん出てくる。もし能をみて幻視できる人であれば、暖かくて穏やかで華やかな景色をたくさん眺められるのだと思う。いつもどおり和歌や漢詩の引用があちこちにあって、朝原さんも解説しきれないぐらいの背景の脱線しまくりしながら進めていた。おもしろかった。

ホットクックに初挑戦

先週末に 部屋のレイアウト変更 してホットクックのための居場所を作った。その翌日の日曜日は出掛けてそのまま外食して、平日はなぜかいろいろ忙しくて、夜に用事があったり、寒くてスーパー行くのが億劫で冷凍食品で晩ご飯を済ませたりしているうちに1週間が過ぎてしまった。今日は満を持してスーパーへ出掛け、食材を購入してきた。最初は作り方や材料をよく知っていて慣れたものがよいだろうと思ってカレーにした。ホットクック は KN-HW24G を購入した。大き過ぎたかな?とも思ったけど、実際に作ってみたらスーパーで買ってきた食材を使い切って3食分ぐらいの作りおきにするにはちょうどよいサイズに思える。

牛すじカレーを作ってみた。約1時間。レシピはこんなところ。

  • 牛すじ 400-500g
  • 玉ねぎ x 2
  • にんじん x 1
  • さつまいも x 1
  • じゃがいも x 2
  • ミディアムトマト x 8
  • しめじ
  • 水 100 cc
  • 業務カレールウ 1箱 (業務スーパーで売っているPB)

私はどろどろカレー派なので水分の少ないこういうカレーは好みの方。牛すじも思ったより煮込めていてよい感じだった。従来の圧力鍋で作ったカレーと食べ比べしないとわからないぐらいには、いつも作っているカレーの水分少なめのカレーが出来上がった。普通においしかったと思う。食材を切って鍋に入れるところまでは圧力鍋と同じだが、カレールウまで最初から入れてしまうというのが従来の調理と大きく異なる。圧力鍋なら火を通した後に蓋を開けてからカレールウを入れてかきまぜるという調理が必要になる。さらにホットクックでは調理中にも食材をかきまぜるから 味がしみ込む という。圧力鍋とホットクックの大きな違いの1つとして「かきまぜ」を自動化したことで手間をなくして料理の質も上げたようにみえる。素材の栄養も逃げないからこれは素晴らしい。

またホットクックは料理を作った後にそのまま保温ができる。今回作ったカレーをひとまず保温にしてみた。但し、この保温温度は75℃と細菌が繁殖しない設定になっているのでご飯の保温には向かないとのこと。保温と似て非なる機能が予約調理になる。予約調理は次の図のように、まず一旦火を通した上で適温をキープして最後の仕上げになる。夜に予約したら深夜のうちにできてしまって朝まで保温するような仕組みにみえる。夜にセットして朝食べるか、朝にセットして夜に食べるか、どちらのパターンもありそう。

理想的な1日だと6-7時頃に起きて8時過ぎにオフィスへ行って18-19時までお手伝い先のお仕事をして、一旦家に帰ってきて晩ご飯を食べて、またオフィスへ戻って21-24時ぐらいまで自分の会社のお仕事をする。晩ご飯が遅くなっても若い頃はなにも起きなかったが、いまは寝る前に晩ご飯を食べると最悪の状況では吐く。ここで21時頃に家でくつろいでいると、もう働きたくなくなってオフィスへ戻らないときもちょくちょくある。要はさぼってしまう。人間が弱い。

オフィスには 冷蔵庫 もあるから、ホットクック用の食材セットを冷蔵庫に保管しておいて、オフィスにも小さいホットクックを置いといたらそのまま晩ご飯を食べられるのではないかと考え始めた。フロアには給湯室もあるからご飯を食べてからホットクックの鍋を洗うこともできるだろう。徒歩5分で家に帰れるのだから帰ったらよいと普通なら考えると思う。当初は私もそう考えた。オフィスにいたらいくらでも働けるのに、家に帰ったらもう働きたくないという誘惑に打ち克つのはなかなか厳しい。理想的ではない1日だと18-19時頃にお手伝い先のお仕事を終えて、そのまま22時頃まで自分の会社のお仕事をする。そうすると晩ご飯が23時をまわってしまい、そのまま寝たら気分が悪くて3時頃に食べたものを吐いて眠れないというのが最悪の状況になる。それも何度かやってもう慣れたけれど。

閑話休題。調理に「かきまぜ」という進化をもたらしたことがこれほどすごいことだと理解できていなかった。ということでオフィス用に一番小さい KN-HW10G を購入してみた。また今度、家とオフィスのダブルホットクックの運用も考えてみる。

会社でもテックブログを読む会を始めた

昨日は疲れて21時頃から横になってうたた寝したりしながら何度か起きて6時半に起きた。

今日の筋トレは腹筋:10x2,腹筋ローラー:5x2,腕立て:15x1,スクワット:20x1,背筋:10x1をした。

筋トレのメニュー追加

だいぶ筋トレにも慣れてきてもう習慣化の壁は超えたかな?といったところ。そろそろ同じメニューばかりしているのも飽きてきたのでいくつか追加してみようと思う。過去に働いていた会社で腹筋ローラーをみんなでやったことがあったとふと思い出した。探したら家のクローゼットの奥から出てきた。久しぶりに腹筋ローラーやったらめっちゃしんどい。筋肉が落ちているんやな。さらにストレッチのトレーナーさんと話していて背筋もやったらどう?とアドバイスを受けたのでそれも追加してみることにした。

社内版テックブログを読む会をやってみた

年末のふりかえりイベントで西原さんにテックブログを読む会のこと を教えてもらった。その後、公けにやっているそのイベントに参加させてもらって、やり方の流れやコツなどを実際に参加して学んでいた。1ヶ月ほど通ったのでその経験をもとにお手伝い先の社内でも導入することに、半ば、私が強引に決めた。メンバーから開発の時間が少なくなるという懸念の声も上がった。それは私も理解できる。しかし、これはやった方が中長期でみてよいはず。「おれのサイドエフェクトがそう言ってる」気がする。

私は会議が嫌いな方なので、できる限り、チーム参加型の同期イベントを増やしたくないという思いがある。そんな私からみても、このイベントには価値があるとコミュニティイベントに15年以上参加してきて直感的に感じるものがある。たった30分のイベントだが価値がある。価値のあることだけを30分に凝縮している。洗練されている。一般人は内容も中身もシンプルですごく簡単に思うかもしれないが、このイベントを企画するには多くの試行錯誤を経ていることが私にはわかる。「恐ろしく速い手刀。オレでなきゃ見逃しちゃうね」と一般人では気付けまい。

第1回をチームでやってみた。30分でメンバーは記事を読んで所感を話して意図したようにうまく進行できたと思う。毎週30分。まずはこれを1ヶ月継続してみてメンバーの感想を聞いてみようと思う。

間接照明の受け取り

ジモティーでアジア雑貨風の照明を500円で購入した。ニトリ製のようだ。これも実家のコワーキングスペースで使おうと考えている。もともと1000円で出品されていて、悪くはないけど、1000円はやや高いかなと見送っていた。何ヶ月かしてから値下げして500円になったので問い合わせしたら交渉が成立した。当初は東灘区まで取りに行くつもりが、出品者の実家が三ノ宮にあったそうで三ノ宮で受け渡しできた。電球をもっと明るいのに取り替えたら十分に間接照明として使えそう。

田んぼ休暇

1時に寝て5時半に起きてだらだらしてゲームをちょっとやって7時半に起きた。なぜか分からないけど、実家で寝ると普段3時間ぐらいしか睡眠できないのが4-5時間に伸びる。気圧?空気?土地の守りみたいなもん?夕方には神戸に戻ってきていたが、寒さで凍えたのもあってそれから作業する元気がなかった。

田んぼ

8時からトラクターで田んぼを耕す。昨日は暖かったのに一晩寝たら急に冷え込んだ。うちのトラクターは旧式なのでエアコンはついてなく、風を遮るものもないので風の強い気温の低い日はめっちゃ寒い。3時間ほど耕して畝を作った。写真は撮り忘れた。今回耕したところの畑は高低差ができてしまってよく耕せるところとそうじゃないところができて、あまりうまく耕せなかった。いずれ平坦にならさないといけない。

田んぼを終えてから近所の観光客向けの食堂でぶり丼を食べた。これで1,250円とやや割高ではあるけれど、ぶりの刺身は新鮮で質のよく、久しぶりにおいしいお刺身を食べた。若い子にとっては量が物足りないかも?だが、中年にとってはこのぐらいの量でちょうどよい。

スマートキーの電池交換

車のメーターパネルにスマートキーの電池残量低下という案内が出るようになった。調べてみると、スマートキーは常に電波を放出しているので短くて1年、長くても2年で電池が切れるという。ちょうどいま1年近く乗ったところなのでうちのスマートキーは1年程度で電池が切れるようだ。電池が切れたら車に乗れないのかな?と調べてみたらそうでもなくて、スマートキーに内蔵キーと呼ばれる物理キーも用意されていてそれでドアの施錠の開閉ができて、さらにエンジンのスタートも電池が切れていてもできる仕組みになっているそうな。そりゃそうか。電池切れる度に車に乗れなくなっていたら世の中もっと混沌としている。

ストレッチ

土日は実家に帰っていたので日曜日の夜にストレッチを受ける。土日に車で実家との往復をすると腰に負荷がかかる。さらに田んぼを耕すためにトラクターに数時間座って操作しているのでさらに追加で負荷がかかる。その目論見の通り、トレーナーさんの言葉からも、自他ともに今日は腰がもっとも疲弊していた。今日の開脚幅は開始前152cmで、ストレッチ後156cmだった。ストレッチ後に晩ご飯食べてからオフィスで作業するつもりが、外が寒くて出掛けるの億劫になってそのまま家でだらだらしていた。

クラウド経由で tapo を制御する方法がわからない

0時に寝て7時に起きて8時過ぎまでだらだらしてた。オフィスのエアコンの効き具合がよくなくて昼間暑くてやる気にならなかった。

先日 ifttt で tapo p105 の制御 を行った。これが動くということはなんらかのクラウドの api 経由で tapo p105 を制御できている。次の記事をみながらやってみようと試してみた。結論から言ってクラウドの api 経由ではできなかった。

アクセストークンを取得する。terminalUUID は適当に生成すればよい。

$ curl -s -X POST -H "Content-Type: application/json" -d '{"method": "login", "params": {"appType": "iphone", "cloudUserName": "xxx@example.com", "cloudPassword": "***", "terminalUUID": "bf63e1d0-d5dc-4636-abf1-7eeada585935"}}' https://wap.tplinkcloud.com/ | jq .
{
  "error_code": 0,
  "result": {
    "accountId": "142785160",
    "regTime": "2023-06-11 04:59:43",
    "countryCode": "JP",
    "riskDetected": 0,
    "email": "xxx@example.com",
    "token": "***-***"
  }
}

ここで取得したアクセストークンを使ってデバイスの一覧を取得する。

$ curl -s -X POST -H "Content-Type: application/json" -d '{"method": "getDeviceList"}' https://wap.tplinkcloud.com/?token=***-*** | jq .
{
  "error_code": 0,
  "result": {
    "deviceList": [
      {
        "deviceType": "SMART.TAPOPLUG",
        "role": 0,
        "fwVer": "1.3.6 Build 20230308 Rel. 52591",
        "appServerUrl": "https://aps1-wap.tplinkcloud.com",
        "deviceRegion": "ap-southeast-1",
        "deviceId": "802241DA5175CF114E567DE8D72A3094210CB12D",
        "deviceName": "P105",
        "deviceHwVer": "1.0.0",
        "alias": "U21hcnQgUGx1ZyAoS2F6YW1vcmkgT2ZmaWNlKQ==",
        "deviceMac": "482254AC1D25",
        "oemId": "495AC9D888EB711C42A28BECF62071CF",
        "deviceModel": "P105",
        "hwId": "58070BD9D8ECC915CD3D6F20A2172712",
        "fwId": "1D18AD293A25ABDE41405B20C6F98816",
        "isSameRegion": true,
        "status": 0
      }
    ]
  }
}

ここまでは従来のスマートプラグと同様に動く。ここから先の手順は従来の hs105 と tapo p105 では手順が異なるみたい。passthrough というメソッドを呼び出してみてもエラーが返ってくる。

$ curl -s -X POST -H "Content-Type: application/json" -d '{"method":"passthrough", "params": {"deviceId": "802241DA5175CF114E567DE8D72A3094210CB12D", "requestData": "{\"system\":{\"get_sysinfo\":null},\"emeter\":{\"get_realtime\":null}}"}}' https://wap.tplinkcloud.com/?token=***-*** | jq .
{
  "error_code": -20571,
  "msg": "Device is offline"
}

どうやら tapo シリーズはスマートプラグ自体が web api のエンドポイントを提供していて、ローカルからデバイスの web api を呼び出して制御できるらしい。例えば、次の記事でその手順が書いてあって、同様のやり方で実装した野生のライブラリもたくさんみつかる。

うちのシェアオフィスのネットワークはローカルの ip アドレスへの通信をすべて拒否しているようなのでこのやり方はうちのオフィスでは検証できない。しかし、tp-link 社のスマホアプリと ifttt の webhook 経由で p105 の制御ができているため、おそらくローカルのエンドポイントに接続する以外の別の手段があるのだと推測する。それをインターネット上で数時間探してみたものの、発見できなかった。この前 interop の展示で聞いた話しだと ifttt は非公開 api を使ってインテグレーションを実装しているという話しだったけど、どうやってクラウド経由で通信しているのだろう?と不思議に思った。

アイディアのコラボレーション

2時に寝て何度か起きて7時に起きた。今日は勉強会の登板なのになにも準備できてなくてどうしようとか思いながら寝た。

パッケージングとリリースのドキュメント

5月の落ち穂拾いの時期にプロジェクトの開発ドキュメントを刷新していろいろな要項を書き残している。最後に残ったまだ書いていないドキュメントに次の2つがある。水曜日から課題管理やコードレビューの隙間時間に書き出していって3日ほどかけて一通り書き終えた。私は文章を書くのが遅いのと、1回ですべての内容を網羅できなくて、書いているうちに思い出して追記したり、寝かした文章をあとで見返して推敲したりすることが多い。そのため、ドキュメントを1週間ぐらいかけて書いたりする。

  • パッケージング
  • リリース

たまたまメンバーにあるモジュールをリファクタリングのために再実装してもらっている。その開発を完了したら古いモジュールと入れ替える必要があるので、開発だけではなく、パッケージングやリリース周りの作業を把握してもらう、よい機会と言える。これまでパッケージングやリリース周りのインフラはほとんど私が作って運用をまわしてきたので徐々にそれらを引き継ぐタイミングとも言える。開発者はインフラのことを気にせず、アプリケーションを開発してコミットすれば後はすべて ci/cd が自動的にいろいろやってくれて便利ぐらいの感覚で扱えるようにするのが、外資系などではプラットフォームに投資しろと言われたりするものだと推測する。うちらが開発しているプロダクトはコンテナ、RPM、Windows インストーラーとパッケージングする種類が多い。その要項に加えて QA 責任の考え方などについても書いておいた。主には私がいなくなった後に役に立つドキュメントとなるだろう。

チーム勉強会

本当は go の generics の勉強会をやりますと先週宣言していた。しかし、私が遊んでいて全然準備できなかったので代わりに決済とスマートプラグの話しをした。先週末と月曜日 に作った決済とスマートプラグを組み合わせたもの。サービスや仕組みを簡単に説明して、実際にデモを動かして電球を灯す。

参加者からスマートプラグをラズベリーパイに置き換えてパワーリレーというモジュールを使えばもっとスマートにできるんじゃないかという意見が出た。たしかにラズベリーパイなら stripe の決済イベントを受け取るサーバーをデバイス内に同梱させることもできるかもしれない。そうすると、スマートプラグのような電源の on/off だけではなく、ラズベリーパイが扱えるセンサーとインテグレーションすることもできそう。また時間のあるときにやってみたい。コラボレーションって正にこういうことを言うとわかってきた。私が1人でこの仕組みを実装していたときにはラズベリーパイというキーワードはまったく頭の中になかった。他者の視点が加わるから新しいアイディアが広がる。

ネットワークからスマートプラグの制御

昨日は夕方に親が立ち寄るかもしれないというから待機していたのに空振りに終わった。0時に寝ようとしてあまり眠れなくて7時に起きた。ここ最近寝ているのか寝てないのかよく分からない眠り方になる。

決済してスマートプラグを ON にしろ

昨日の続き 。夕方に Tapo P105 が届いたので業務を終えてからさっそく使ってみた。

オフィスの wifi に接続して、tp-link 社のスマホアプリからデバイス登録する。スマホアプリからはすぐに on/off できた。スマホで電源の on/off を制御できてあまり嬉しいことはパッと思いつかないけど、プログラムから制御できるならなにか遊べそうな気もしてくる。ifttt というインテグレーションサービスがあって、それを使うと tp-link 社のデバイスと ifttt 社の web api 経由で制御できる。おそらくなんらかの web api が tp-link 社からも提供されているはず。それが公開されていれば ifttt を使う必要はないし、すでにハックされているものを使うのでもよいかもしれない。ひとまず動かすことを目的とするので ifttt を使う。スマートプラグに電球をつなげて、決済したら電球が灯って3秒後に消えるようなサンプルアプリを作った。一通り最後まで動かすことができておもしろかった。

スマートプラグ制御の調査

23時に寝てうまく眠れなくて5時に起きた。そのまま10時ぐらいまでだらだらしてた。

スマートプラグの通電テスター

昨日の続き 。スマートプラグを検索すると TP-Link 社の製品がよく出てくるのでミニスマート wi-fi プラグの Tapo P105 を購入してみた。この製品だとネットワーク経由で電源の on/off ができそう。ifttt というサービスが TP-Link Tapo インテグレーションを公開している。TP-Link 社も自前で TP-LINK Cloud というサービスを提供していて、どうやらその web api は公開されていないようだけど、おそらくそこで使っている web api を調べてライブラリにしたのが tplink-cloud-api のようにみえる。サイトをみる限りはカメラしかサポートしていないようにもみえる。スマートプラグのようなデバイスがハックしやすい性質のせいか、書いてある情報が曖昧で実際にどうやってデバイスを制御したらよいのかネット上の記事からよくわからない。実際に購入したもので試してみるのが早そう。明日届く予定。

このスマートプラグによる電源 on/off のテスターに、ダイソーで電球を購入してきた。電源ソケットアダプタが100円、電球は100円、200円、300円とそれぞれあったんだけど、100円の差異でどうせ買うなら精度のよいものをと考えて300円のものを購入した。LED で電力消費も少ない。

試しにオフィスにあった amazon 純正スマートプラグ経由で接続して alexa アプリで on/off したら意図したように電球が灯ってテスターの代替にできた。デモのために使うのでそれぐらいわかりやすいのがよい。

モロゾフ

昨日参加したもくもく会を借りていた 中央区文化センター には2フロアに渡って大小いくつかの会議室がある。それぞれの会議室には張り紙をしていて借り主の名前が外からわかる。たまたま通ったところに「モロゾフ労働組合」と書いてあって、どこかの会社の労組が会議しているんだなと覚えていた。今日になって来週の東京出張のお土産を探していたらモロゾフというお店があることに気付いた。モロゾフの歩み によると1931年創業の神戸本店の洋菓子の会社らしい。これもなにかの縁だと思って今回はモロゾフさんの神戸本店へ行って ブロードランド 15個入 をお土産用に購入した。

自分用にアーモンドケーキを買って食べてみた。しっとり食感で控え目にアーモンドの風味がして甘過ぎなくて後味のよいケーキでおいしかった。

yubikey bio を完全にマスターした

2時に寝て遅くまで飲んでいたせいか、やや吐き気もしながら朝起きてだらだらして11時ぐらいに起きた。

1password のロック解除を yubikey で行う

先日購入して触っていた yubikey bio の設定 の続き。1password のロック解除を指紋認証で行いたかったが、1password の 8.10.4 のアプリではロック解除をシステム認証で行おうとするとエラーが発生していた (バグってた) 。5月の頭に 8.10.6 がリリースされていてシステム認証のバグが直っていることに気付いた。1password のアプリケーションがどうやって linux のシステム認証を使っているかは次の1文に書いてある。

システム認証は、Linux のユーザーアカウントに組み込まれたアクセス制御機構を使用します。これは polkit と PAM (Pluggable Authentication Modules) という2つの Linux 標準に依存しています。この2つを組み合わせることで、安全な認証サービスを提供します

https://support.1password.com/system-authentication-linux/#about-system-authentication-security

私は polkit を使ったことがなくて初見でよく分かっていないが、どうやら polkit から pam を介して認証しているようにみえる。pam.d 配下の設定を調べてみると /etc/pam.d/polkit-1 がある。前回の設定で pam.d の設定とテストの方法を理解していた。ここまでくれば Module Arguments のドキュメントをみながらオプションを設定するだけ。1Password のロック解除をYubiKeyでやる の記事で origin/appid にホスト名を指定しているが、最新のモジュールだと指定しないときはデフォルトでホスト名が使われるようにみえる。

  • origin: FIDO 認証手順の party ID を設定する、値が指定されない場合は識別子 pam://$HOSTNAME が使用される
  • appid: FIDO 認証手順の application ID を設定する、値を指定しない場合は origin で使用されたものと同じ値が使用される (origin も指定しない場合は pam://$HOSTNAME)
  • nouserok: 認証しようとするユーザーが authfile 内に存在しない場合や authfile が欠落/不正確な場合でも、認証の試行を成功させるように設定する
  • cue: タッチすることを促すメッセージを表示するように設定する

これらを踏まえて u2f で認証が成功したらそれ以降の処理をスキップするように次の設定を先頭に追加する。

$ sudo vi /etc/pam.d/polkit-1
auth   sufficient   pam_u2f.so nouserok cue
...

cue を指定したことでパスワードプロンプトを表示せず、デバイスをタッチするように促される。よい感じ。

$ pamtester polkit-1 t2y authenticate
Please touch the device.
pamtester: successfully authenticated

これで pam の polkit の設定が正しいことを検証できる。この後に 1password のアプリケーションでロック解除するときに u2f を使って指紋認証できた。めっちゃ便利。

法人決算の続き

0時に寝て何度か起きて6時過ぎに起きた。休日は朝だらだらしてオフィスへ行くのが9-10時ぐらいになることが多いのだけど、今日は普通に8時過ぎに行けた。

法人決算

朝から法人決算の続き。昨日たまたま消費税の計算をして、祝日やのに e-tax 稼働しているんやと思いながら申告した。これまで休日や祝日は稼働していなかった気がするので時代の変化にあわせてシステムはなるべく24時間稼働するように少しずつ変わってきている。今日も法人決算の続きをやっていて、課税所得を確認して、カテゴリ的には3つに分類される法人3税と呼ばれる税金を算出した。具体的には6つの税金を算出しないといけない。

  • 法人税 (=> 国税 => e-tax)
    • 法人税
    • 地方法人税
  • 法人住民税 (=> 地方税 => eltax)
    • 法人県民税
    • 法人市民税
  • 法人事業税 (=> 地方税 => eltax)
    • 法人事業税
    • 特別法人事業税

過去の法人決算の経験からまず法人住民税と法人事業税を確定させてから法人決算の申告をすべきだというプラクティスがある。というのは、法人住民税と法人事業税の数値になんらかの誤りがあると法人決算で提出する別表の数字も修正しないといけないため、先に地方税を確定させた方が手戻りを少なくできる可能性が高い。電子申請するとそれぞれの書類の数値のバリデーションが機能するので手計算や手入力で誤りがあったときに発見できる可能性がある。これは電子申請をするメリットの1つでもある。

地方税を管轄するのが eltax で国税を管轄するのが e-tax で別システムになる。いまとなっては、事前にチェックしておけばよかったなと思うところだが、あとの祭り。e-tax は5月3-4日が稼働していて5-7日が休止している。eltax は5月3-5日が休止していて6-7日が稼働しているというスケジュールになっていた。双方のシステムが稼働していれば今日中に終えられたものが、なんともちぐはぐなスケジュールで申告を完了させるのは来週以降に持ち越すことになる。また来年やるときはこのそれぞれのシステムの稼働スケジュールを事前にチェックして法人決算の作業日程を決めるように法人決算の issue に書き込んでおいた。来年はもっとうまくやる。

今日のところは法人3税の税金を算出し終えて、それらと関係ない別表の大半を作成した。基本的には決算の試算表から数値を転記したり、特例措置の申請のための書類を作ったりでなにも難しくない。

iijmio と iphone で作るモバイル wifi ルーター

今年に入ってから 実家のオフィス化 の準備を着々と進めている。晩年は足が不自由だった祖父が生活できるよう、倉庫の一部を改築して車椅子でも生活できるような部屋になっていて、ある種の離れのようなスペースになっている。祖父が他界してからは誰も使っていない。トイレもお風呂もキッチンもついていて広さで言えば14畳ぐらいある。これまで使いにくかった理由は2つあってエアコンとインターネットがなかった。この前、母にお願いしてエアコンを購入してもらい、つい先日、設置が完了したらしい。

インターネットの回線をひくことも検討していたが、どうやら5000円/月ぐらいかかることがわかってきた。母はインターネットを必要としていないので月1回ぐらいしか使わないのに5000円も支払うのはもったいないなと一旦ストップしていた。スマートフォンのテザリングでお仕事できないわけではないから当初はそれでもいいかと考えていた。私の個人のスマホとインターネット回線は iijmio を使っていて iij さん好きなので同じように pocket wifi 的なものはないのかな?と調べたら正にそういう記事をみつけた。

よくよく考えたらデータ専用の sim を購入したらあとはモバイル wifi ルーターだけあればよいことに気付いて、それって iphone でできるやんということに気付いて、過去に使っていた古い iphone 11 を再利用できることに気付いた。さらにいまは esim という物理 sim を必要としないソフトウェアベースの sim もあるようで月額の料金も esim の方が安い。 音声通話なしのデータ専用プランで税込で次の金額になる。さらに使わなかったらデータ量は翌月以降に繰越できる。プランによって繰越できる期間が異なる。例えば2GiBなら翌月末まで繰越できる。繰越という概念はたまにしか使わない私の用途にぴったりでひとまず2GiBプランを選択してお試し運用してみることにした。

  • 1GiB: 165円/月
  • 2GiB: 440円/月
  • 5GiB: 660円/月
  • 10GiB: 1,100円/月
  • 20GiB: 1,650円/月

esim というソフトウェアベースのものだと、申し込みして5分後に設定できましたというメールが届き、すぐにアクティベートして iphone 11 に esim の設定をしたら10分後にはインターネットに接続できるようになった。その後 apn の設定を行ってテザリングもできるようになって、30分後には iphone 11 をモバイル wifi ルーターとして macbook からインターネットにアクセスできるかの疎通確認を終えた。

つまりソフトウェアベースで業務を行うことのワークフローの効率が半端なく高い。これが物理 sim なら数人の人手と待ち時間がかかることは容易に想像できる。物理的にしかできなかったことをソフトウェアベースにしてワークフローを洗練化させることの強力さを実感した。常々、私が課題管理の文脈でコミュニケーションコストを減らせれば生産性が上がると開発者に啓蒙していることと同じで自分がやろうとしていることの概念を追体験するような経験となった。ワークフローの効率を極端に落とすのは人間である。