職業プログラマの休日出勤

職業プログラマによる日曜自宅プログラミングや思考実験の成果たち。リアル休日出勤が発生すると更新が滞りがちになる。記事の内容は個人の意見であり、所属している(いた)組織の意見ではない。

ReactのuseStateのcallback実行タイミング

Reactのお世話になって開発しているアプリで、慌てるあまりにお行儀の悪いコードを書いていたら、見事に刺されました。この記事は、その反省文です😇

3行まとめ

  • useState() が返す setXxxx() 関数にcallback関数を渡して使う時、このcallback関数は、即時実行の時と遅延実行の時とがある。
  • お行儀の良いコードを書いていれば、前述の差は特に意味は無いはずなので、良い子になりましょう。
  • Reactのソースを読むのは練習が必要そう。
続きを読む

CakePHPをLBの裏側で使うときのリダイレクトを正しくする

先月、新規システムをCakePHPで作ったときに表題のことを久し振りにやったのですが、色々と忘れていたのでここにメモしておきます。

問題

CakePHPのControllerにて以下のようなリダイレクトを返すとき、リダイレクト先のURLをHTTPSつまり https://example.com/ で返して欲しいのに平文HTTPつまり http://example.com/ で返されてしまいます。
その結果、LBでは平文HTTPを受け付けていないので、Webブラウザはサイトにアクセスすることができなくなります。

return $this->redirect(['action'=>'index']);
前提条件

以下のような、古典的なシステム構成での話です。

  • Load Balancer(負荷分散装置、代表例はAWSのALB。以下、単にLBと言う。)では、外部からHTTPSTCP/443)のリクエストのみを受け付けて、平文のHTTP(TCP/80)のリクエストを受け付けない。
  • PHPが稼働するアプリケーションサーバでは、Nginx+php-fpm や Apache 等が稼働しており、LBからの平文のHTTPのリクエストを受け付ける。
続きを読む

簿記3級 合格

日商簿記3級に合格しました。

これで 2022年の目標 を1つ達成したことになります。
この記事は、勉強方法などを書き記したものです。

Tweetからこの記事の投稿までに日が開いているのは、合格証書の受領を待っていたからです。

f:id:t_motooka:20220408220312j:plain
簿記3級の合格証書をスキャンしてマスクしたもの
続きを読む