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

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

Ubuntu 22.04 にCodeDeployエージェントを入れる

この記事は、Ubuntu 22.04 で動かしているマシンに、AWSのCodeDeployのエージェントをインストールする手順等について述べた記事です。
※数日前にtweetしていた内容をブログ記事としてまとめて補足しただけの内容ですので、日頃から筆者のtweetを見られている方向けの新規の情報はそんなにありません。

続きを読む

PhpStormが重いのをどうにかした話

ここ数週間ほどPhpStormが重くて困っていたのですが、無事に解決できたのでその記録です。
JetBrains社さんのIntelliJ系列のIDEなら基本的にどれも同じだと思いますが、私はPHPを最もよく使うせいか症状と改善はPhpStormでのみ体験したので、表題はPhpStormとしました。

続きを読む

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のリクエストを受け付ける。
続きを読む