@kotyのブログ

PythonとかAWSとか勉強会のこととかを、田舎者SEがつづります。記事のライセンスは"CC BY"でお願いします。

bundle install時にmysql2のインストールでこける件

突然Railsの話題。

FAQらしい。よく見かける対応方法は

$ bundle config --local build.mysql2 "--with-cppflags=-I/usr/local/opt/openssl/include"

$ bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib"

だが、自分の場合は

error: unsupported option '--with-cppflags=-I/usr/local/opt/openssl/include'

というログが出ていたので、 .bundle/config から当該オプションを削除したらインストールが成功した。

間違ってbrew upgradeしちゃったときにトラブル気がするので、根本対応はdockerコンテナに入れてmacから開発環境を切り離すのが良いのだろう。やれやれ。

ちなみにパーフェクト Ruby on Railsは良書でした。仕事で使うようになって1年、ようやくRailsの全体感をつかめた気がします。Rubyはいまだによく分からんけど。

Django for Professionals と Django for APIs 読了記録

諸事情で、今時点でのDjangoのベストプラクティスを知りたくなり、手にとった。

そもそもDjangoって時点で和書が少ないのにあっても入門レベルのものばかりで、仕方なく洋書をぽちった。Djangoを使うくらいの人は普段(仕方なく)英語を読む機会は多いので、この本もどうにか読めるんではと思う。

Django for Professionals

Django for Professionals: Production websites with Python & Django

Django for Professionals: Production websites with Python & Django

  • 著者はDjango Software Foundationの人。Django podcastもやってる
  • 自費出版らしい
  • Django3対応をうたっている
  • 1章はのっけからDockerについての説明でDjango関係ないじゃんと思ったが環境構築するうえで必要だったんだろう。
  • 自分はAPIとしての利用を考えているので、template部分の説明は読み飛ばした
  • 個人的には、あまり詳しくなかった1章のDockerによる開発環境構築と、18章のherokuへのデプロイが参考になった
  • Stripeとの連携の話があるので、これから導入する人には参考になるのでは
  • ほか、for Professionals を名乗っているだけあって実践的な内容だった。この内容の和書があると良いのだけど。

Django for APIs

Django for APIs: Build web APIs with Python & Django

Django for APIs: Build web APIs with Python & Django

  • 同じ著者
  • こちらはDRFDjango Rest Framework)初心者向けという感じで、少し物足りなかった
  • あると良いなと思ったのは、CSRF対策、フロントエンドも含めたプロジェクト構成とデプロイ方法、ネストしたオブジェクトの更新 あたりか。と思ったが、akiyokoさんの本ではどれも言及されていた。DRFに関しては良い和書があった。

というわけで、 Djangoについて知りたいなら「Django for Professionals」はおすすめ。DRFについて知りたいならakiyokoさんのDRF本がおすすめ、という所感。

後付け自動窓開け閉め装置「ムーブウィンドウ」をプログラムから操作する

背景

自分は暑いのが苦手で仕事のパフォーマンスは落ちるしQoLは落ちるしで、夏はいつも憂鬱な日々を過ごしている。 特に夜に気温が下がらないのが辛い。かといって夜中エアコンをつけるのもそれはそれで冷えるので無理。

この対策として以下をやりたいと常々思ってきた。

  • エアコンをタイマーで稼働させておき、就寝後1,2時間で切れるようにしておく。
  • 一定の温度になったら窓を開ける

イケてる人だったらハンズで材料を買ってきてサーボモーターか何かで窓を開け閉めできるようにするんだろうけど、 あいにく自分にはそのスキルが無い。

しかし最近になってホームオートメーションのデバイスやエコシステムががそろってきた。時はきたれりである。

今回以下を導入してみた。 www.thanko.jp なかなかのお値段がするが、QoLのためなので仕方がないし、これでハッピーになるならむしろ安いくらいだ。

設置

取説通りにやればOK。取り付けたかった窓はこの製品が対応する幅よりも狭いので、10cmほど切断した。 切断方法も取説に書いてあるので大きな問題はなかった。金ノコがないと切断は厳しいかも。

Smart Lifeアプリから操作できるところまで確認できた。 しかしアプリから操作したいのではない。アプリは不要。ほしいのはAPI。アプリなんて飾りなのです。

事前にサンコー社のサポートにAPIによる操作ができるか確認してみたら、「APIは公開しておりません」との冷たいご回答が返ってきた。 しかし調べてみるとSmart Life対応デバイスはtuya APIなるプラットフォームで操作できるらしい。できるではないか。 サポートさんはちゃんとしてほしい。

APIからの操作

初期設定

基本的には以下に記載されている手順でできる。 qiita.com

WiFiのAPが複数ある場合は、狙ったAP以外は切っておかないとうまく接続できなかった。ここがかなり苦労した。

操作方法

取得した情報を使って以下のコマンドでデバイスの状態を取得できるようになる。

tuya-cli get -all --id <id> --key <key>

各dps値の意味

しかしこの値の意味が分からない。ググってもどこにも情報がない。

{ devId: 'xxx',
  dps:
   {
     '6': false,
     '101': 0,
     '102': 'pause',
     '103': false,
     '104': '6',
     '105': '7',
     '106': 'left',
     '107': 'cancel',
     '108': false,
     '109': false } }

仕方がないので、取説に掲載されているアプリの画面を参考に各dps値の意味を予測しつつ、値を実際に変更してみた。

以下のコマンドで全開する。

tuya-cli set --dps 102 --set open  --id <id> --key <key>

まとめたのが以下。必要なdps値しか実際に動かしていない。

{ devId: 'xxxx',
  dps:   {
      '6': false, <— アラームロック
      '101': 0, <- 1以上全開 0全閉
      '102': 'pause’, <-現在の状態。指定も可。open/close/pause
      '103': false, <- ロック(たぶん)
      '104': '6’, <- 動作速度(たぶん)
      '105': '7’, <- Anti clamp strength
      '106': 'left’, <- 窓を開く方向
      '107': 'cancel’, <-infared control
      '108': false, <- infered fortification
      '109': false <- Manual start(たぶん)
   }
}

dps値102にopenコマンドを送って途中どこかでpauseコマンドを送ればちょっと開けることができる。

しかし動作遅延の関係で、open送出してから何秒後にpauseを送出すれば良いのかよく分からんし、そもそも再現性が怪しい。 現実的には、ストッパーか何か(つっかえ棒?)を使って所望の位置で止まるようにしとくってもんかな。

CLIだと使いにくいのでWeb APIを直接叩けないかとCLIのソースをざっと眺めると、httpじゃないっぽいな。MQTTかな。なので、CLIでがんばってみる。

今後の展望

何らかの手段で温度を取り、一定のしきい値を超えたら窓を開閉したい。

目の前にRasPi Zero Wがある。これで何とか。

鼠径ヘルニアで入院&手術した話

突然入院&手術することになった顛末記

最初に

このマンガ本をもともと持っていたのだが、入院中に読み直したらさらに面白かった。当エントリーはこれを紹介するために書いたと言っても過言ではない。さあポチるのです!!!

ぽちっていただけたら以下は特に読まなくて良いです。。

発端

5月の頭に、終日薪を切っていたら夕方下腹部に違和感でてきた。シャワー後に目視すると何か出っ張りがある。これは、、、キ◯タ◯が入り込んでしまったのか?乳児だとそういうことあるけど大人でもあるんだろうか?と一瞬思ったのだが、いつもの場所にいつもの数がちゃんとあった。であるならばこれは何だろう。

ググって調べるとどうやら鼠径ヘルニアらしい。仰向けになると引っ込むし。

鼠径ヘルニアというのは中高年の男性に多いとのこと。男性が多いのは体の構造上から、中高年に多いのは筋膜が弱ってくるから。筋肉ではなく筋膜という鍛えようがないものが弱ってくる点が大事である。したがって、筋肉が弱っているのが原因なわけではないことを震え声で主張したい。治療には手術しかなく徐々にヘルニアが悪化する(出っ張りが大きくなっていく)ので、部位が部位だが恥ずかしがらずに受診してほしい。

そして、発症のきっかけになるのはお腹に強い力を入れたときとのこと。これは心当たりがある。数日前にプランクをやったんだよな。おそらくあれがトリガーであろう。。。

というわけで、医者に行ってみることにした。

近所の消化器外科受診

連休の谷間に受診。場所が場所だけに診察時は「もろ出し」である。しかし気にしてはいられない。

予想通り鼠径ヘルニアの診断が出た。受診した個人医院では手術できないとのことで(なんで外科を名乗ってるんだ?)紹介状を書いてもらった。

紹介先受診

紹介先は小規模な病院だった。先生はこのへんの人なら誰でも知ってる病院の副院長を最近までやっていたらしい。なんでこんなひなびた病院に。。。医者の世界にも役職定年があるのかな。知らんけど。

簡単な診察を受けて、手術の日程を調整してもらった。手術まで10日ほどあり、長く感じる。

入院

奥さんに送ってもらって入院。ひたすらNetflixユニコーンガンダムを見ていた。最近のアニメらしくCGが使われておりきれい。全23話を無事完走した。

www.netflix.com

病院食はお世辞にもおいしいとは言えない。冷めてるし、調理のしやすさや咀嚼のしやすさを考慮してか煮物系が多い。

f:id:kkotyy:20200525142446p:plain

手術当日

朝からご飯抜きで、その代わりに浣腸を受ける。3,4分我慢してからと言われていたがそんなに無理だった。

手術室へは自分で歩いて自分で手術台に寝る。その後流れるように手術の準備が進んでいく。このあたりは文頭に紹介している「麻酔科医ハナ」に詳しく描写されている。

全身麻酔なので、マスクをあてがわれ数を数えるように言われ5か6くらい数えたところで意識が無くなった。ガスによるものか点滴によるものかよく分からん。

手術が終わって名前を呼ばれて目が覚めた。最初は状況を把握できず混乱した。数秒して、ああ手術を受けていたんだったと思い出した。子供のときの盲腸の手術では病室で目が覚めたんだけどな。手術台で目が覚めるのは勘弁。

術後

酸素濃度を測る器具、点滴、血圧計、足の血栓防止のためのマッサージ器、導尿(!)と様々なものが体にくっついていて全く寝られなかった。盲腸のときの夜もそうだったなと遠い昔を思い出す。

天井の図 f:id:kkotyy:20200525142644p:plain

おそるおそる創部を見てみると3つ絆創膏が貼られている。内視鏡による手術のためか思ったよりは大きくなかった。

隣の部屋では96だか97になる爺さんが看護師と昼夜問わず揉めていた。ナースコールもせずに「おーい!おーい!!」と看護師を呼びつけるし。医療関係者はお客を選べないから大変だ。。。

退院

シャワーを浴びれないことに辟易しながら日々回復して、手術当日を入れて4日目でどうにか退院した。もう少し家で養生して仕事に復帰する予定。

医師や看護師など病院の皆さんはプロの仕事をしてくれていたが、入院も手術もこりごりだ。早く元気になって私なりにプロの仕事をして社会に貢献したい。

健康第一。

その後

ウルトラワイドモニター LG-49WL95C-W レビュー

追記

付属のスタンドだと場所を取るのでアームを導入してみた。下を向かないようにねじをきつく締める必要がありますが、固定できました。快適です。

追記おわり

さらに追記

M1 Mac mini を導入しまして、こちらはUSB-C一本の接続で5120×1440の解像度を得られており快適に使えています。

メニューが左上に行ってしまい遠いので、MenuMateなるアプリを導入しました。ショートカットキーやmiddleボタンなどを割り当ててメニューをカーソルのある場所にだすことができます。これでメニューの遠さによる使いにくさは多少改善しました。

さらに追記おわり

去年発売されたディスプレイのレビューを今更書こうと思う。

昨年フルリモートで自宅で仕事することになったので、その際少し奮発して広いものを調達した。出社した日の帰りに、秋葉原ツクモに寄って秒速で購入。

49インチ、解像度5120×1440、32:9のウルトラワイドモニター。

入力端子は、USB Type-C×1、DisplayPort×1、HDMI×2

WQHD(2560×1440) で中央で分割してふたつの入力を同時に表示できる。

スピーカーもついているが、一応ついている程度なので期待しないほうが良い。

良いところ

当然だが、広い。ブラウザやwordは並べて4つ表示できる。vscodeintellijなどでも、3つくらいなら余裕で分割してソースコードを表示できる。表示が狭くて困ることはまずない。 zoom会議でみんなの顔を見ながら、相手の画面共有を表示しながら、自分のドキュメントを見る、なんてことも余裕。

悪いところ

4Kディスプレイと比べると画質が劣る

私はそこまで気になりませんが、気になる人はいるかも。

お値段

それなりに張る。仕事で使うからと買ったけど、道楽で使うだけだと自分も手を出さなかったと思う。

箱がでかい

玄関から設置場所まではできれば二人で運搬した方が良い。

解像度が出ない

で、一番のネックは、私が使っているMacbook Pro だとフル解像度の5120×1440が出ないことだ。ググると世界中でみんな悩んでいる。。。そして今の所のソリューションは入力をふたつに分け、画面分割で同時に表示すること。以下のポンチ絵参照。

f:id:kkotyy:20200426073050p:plain

これで結果としてフル解像度を出せる。よーく見ると左右で色合いが異なるのだが、慣れる。ダメな人もいるかもしれないけど私は大丈夫。

eGPUを使えば入力一本で大丈夫らしいので、おちんぎんに余裕がもし出たら考えようかな。

最新のPCなら大丈夫なのかもしれませんが特殊な解像度なので、可能であれば現物を置いてある店舗に自分のPCを持ち込んで接続して動作確認してみると安心です。

まとめ

というわけで、よーく見ると色合いが異なるけどそれを気にしないのならおすすめです。

登園自粛初日の所感

私が住んでいる市でもご多分に漏れず登園自粛願いが出された。

保育園に寄った妻の話だとあまり自粛はされていないようだ。そりゃそうだ、必要だから保育園に預けているのだから。。。

わが家は、もともと私が在宅勤務なこと、爺さん婆さんと2世帯住宅で同居していること、何とか私と妻でそれぞれ休みを取れそうなことなどから、登園自粛してみることにした。 初日の今日は、私が仕事をしながら面倒を見てみることにした。その所感。

状況説明

普段息子は保育園に通っており、私はほとんど残業せず息子が帰ってきたときには十中八九終業している。私の仕事中に家にいることはなかった。

AM

ここしばらく手を出してこなかったチャレンジのワークを妙にやる気を出してやり始めた。1ページごとに回答をチェックして花丸を書いたり、花丸シールを貼ったりせねばならない。

その後これまたチャレンジの実験道具を持ち出した。なぜ今日。実験内容は、リンゴ酸や尿素を溶かした溶液にBTB溶液を入れて色の変化を見るというもの。

この実験て中学でやるんじゃなかったっけ、すごいなぁと思いながらノートPCを見たり実験を見たりしていた。

レンチンできるもので簡単に済ました。

PM

外で遊びたいと言うので、庭で自転車に乗ったり木に吊るしたブランコ(なぜか自宅にある岩登り用のラダー)で遊んだりした。あまり運動をしないのもよくないので畑のなかをマラソンしたりした。

その後昼寝。保育園で使っている布団で寝たからか、1時間半ほどと結構寝た。その間に集中して仕事を進める。

起きた後はまたチャレンジ。何と溜まっていたワークをすべてやってしまった。ものすごい瞬発力だ。しかしなぜ今日に限って。

そのあとはAmazon Prime Videoでシンカリオンポケモンを見ていた。

18時くらいにいったん仕事を止めて、夕食、風呂。

22時くらいから仕事を再開。今に至る。

所感

予想はしていたことだけど、仕事も息子の相手もどちらも中途半端になってほんとうに精神衛生上良くない。

昼寝以外は常時割り込みがあるので、複雑なことを考えることはそもそも無理。答えが出ている作業をするにしても生産性は感覚的に半分以下である。 まあワークの相手をせずに終日動画を見せておけばもっと仕事に集中できると思うが、自分には無理だった。 一方で息子は息子で、父親が上の空で応対するので不満げである。

この状況がもう少し続いていけば、「父親が仕事をしているときは、一人で勉強するなり遊ぶなりしていなければならない」ことが分かってくるかもしれないけど、いきなり理解できるもんでもないと思う。

しかし爺さん婆さんに何かあるといかんので、息子を預けるのはためらわれる気がしてきた。どうしたもんかなぁ。まったく、早く終息してほしい。

ゴミアプリを更新した

データを2020年度版に更新した。

b-sw.co

なぜこんなことをやっているかの経緯は以下。コンピュータ読み取りしやすいオープンデータが出回る世の中になってほしい。

koty.hatenablog.com

アプリの方も更新した。日付の形式を 西暦年/月/日 から 月/日(曜日) にして、見やすくした。

play.google.com

  • 久々にflutterプロジェクトを起動したら flutter doctorからエラーしてデバッグを始めるまでに1時間ほどかかった。つらい。
  • 相変わらずバックグラウンドで通知を出せていない。つらい。
  • Alexa スキル はレビューでしぬほど叩かれている。つらい。多少直したので、そこからは改善しているはず。。。