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

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

EC2上にRedmineを構築(Ubuntu 22.04 / Nginx / Puma / UNIX Domain Socket 版)

業務上、非プログラマも混在したチームで新規プロジェクトの課題管理をする必要に迫られたので、EC2上にRedmineを建てた。
近年では他にも色々と選択肢はあるんじゃないの?という話もあるけども、どうしてもサーバにインストールするタイプのものが必要だったのでRedmineを選択した。それでも他に選択肢はあるだろうけど、選ぶ時間がもったいなかった😇
この記事の本題は、issue tracking system の製品選択の理由や経緯ではなく、「EC2上にRedmineを構築する」ときの作業手順等の記録である。

2015年に似た作業を実施していたが、その時は Amazon Linux 1 / Passenger / Apache という構成だった。
tmotooka.hatenablog.jp

2024年の現在では、取るべき構成や、ハマりポイントなどは大きく変わっているので、改めて記事にした。

続きを読む

CakePHPのTableRegistryでのテーブル探索

CakePHP 5.x で新しいアプリケーションを開発して、いざ本番環境に初めてdeployしたところ、以下のようなエラーに遭遇しました。

error: [Cake\ORM\Exception\MissingTableClassException] Table class for alias `{テーブル名}` could not be found

この記事は、このエラーの原因のうち、筆者が遭遇したものについてのメモです。

長いので3行まとめ

  • Macのデフォルトのような case-insensitive なボリュームで開発されたコードは、case-sensitive 環境では動作しないことがある(PHPの auto_load が)
  • CakePHPTableRegistry::getTableLocator()->get();が本来想定しているのは、テーブル名ではなく、Tableクラスのクラス名から「Table」を取り除いた文字列(documentから読み取れる情報)
  • そんな文字列はバグの原因になるから渡したくねーよ、という私のような人は FooBarTable::class みたいな形で渡すと幸せになれる🥰
続きを読む

トロンボーン試奏メモ

新年早々、トロンボーンを買いました。

購入するにあたって、色んな楽器(いずれも細管テナー)を試奏させてもらったので、その雑なメモをここに書き記しておきます。
試奏の様子は録画していたのですが、隣の部屋で試奏していたTrumpetの方の音が沢山入り込んでいるので、動画は公開はしません。

それぞれの楽器の感想は私個人の感想であって、科学的・客観的な評価からは遠くかけ離れたものです。知らんけど。

続きを読む

2023年の成果物まとめ

晦日ですね。例によって今年の成果物のまとめを晒しておきたいと思います。

過去記事はこちら。

続きを読む

CloudWatch Agent が起動しないトラブルの対応メモ

先日、お仕事で久しぶりに、AWSのEC2に CloudWatch Agent を入れる作業をしていたところ、ちょっとハマったポイントがあったのでここにメモしておきます。

目指す状態

  • CloudWatch Agent が起動して、メトリクスを CloudWatch に送信している状態
  • CloudWatch Agent が起動して、Webアプリケーションのログを CloudWatch Logs に送信している状態
    • 本当はNginxとかOSの一部機能のログとかも送るけど、本メモの主題とは離れてるので、この観点での情報は割愛
続きを読む