モヒカンメモ

髪色が定期的に変わることに定評のある(比較的)若者Webエンジニアの備忘録

エンジニアリング

PHPerKaigi 2024 参戦 & 登壇記 #phperkaigi

2024年3月7日 - 9日に「中野セントラルパークカンファレンス」で開催された、(広義の)PHPer向けの技術カンファレンス「PHPerkaigi 2024」に参加 & 登壇してきた。 phperkaigi.jp PHPerKaigi 2024 わたしとPHPerKaigi PHPerKaigiへの初参加は去年、今回で2回…

docker build時に署名検証失敗エラーが出たが、真の原因はファイルサイズ上限だった件

Docker for Macで docker build していたところ apt-get で署名検証失敗エラーが出たが、真の原因はDockerイメージの保存用ファイルがfullだったからだった。 ざっくりまとめ Docker for Mac全体でのDockerイメージを保持するためのファイルのサイズ上限を決…

DockerHub MySQLイメージのベースOSがOracleLinuxへ変わった件

タイミング的には2017年ぐらいのイベントだけど、歴史のあるプロジェクトを保守する時たまに踏むので備忘録がてらまとめておく。 DockerHub MySQLイメージのベースOSはOracleLinuxへ変わった github.com これまでのベースOSは debian だったが、2017年ぐらい…

Redashのログが無限に貯まり続けたせいでdisk fullで死んだ

セルフホストしているRedashのログが貯まり続けたせいでdisk fullで死んだ。 OSS版Redash をEC2でセルフホストしてそのまま運用していると踏むトラップだと思うので各位気をつけられたし。 ざっくり要点まとめ Redashは結構ログを吐く Docker Daemonはデフォ…

ECS上のPHPアプリからAWS SDKを使うとmetadata endpointへアクセスできない問題の備忘録

ECS (Fargate) 上で動くPHPアプリからAWS SDKを使ったとき、metadata endpointへアクセスできない問題を踏んだのでそのことを残しておく。 ざっくり要点まとめ AWS SDKなどがしれっと見に行く metadata endpoint にはEC2用とECS用で分かれており、 AWS_CONTA…

パフォーマンスチューニングコンテストISUCON13に参加しました

毎年参加している、LINEヤフー社 主催のパフォーマンスチューニングコンテスト「ISUCON」に今年も参戦しました。 isucon.net 去年のブログ blog.pinkumohikan.com チーム ここ4年ほど同じメンバーでISUCONに参戦していますが、チーム名は毎年変更しています…

PHPカンファレンス2023で登壇しました

2023/10/8 (日) に 大田区産業プラザPiO で開催された PHPカンファレンス 2023 にて、「安全にPHPでWebアプリ開発するために実践していること」というテーマでお話してきました。 トーク PHPは言語仕様が年々堅牢になりつつありますが、より安全に仕様変更や…

PRテンプレートの「レビュイーだけに伝えたいこと」をHTMLコメントで書いてレビュー負荷を下げるテクニック

PRテンプレートを用意する際に「レビュイー (PR作成者) だけに伝えたいこと」をHTMLコメントとして書くと余計な情報をレビュアーに見せずに済むテクニックがあるので紹介する。

DBマイグレーションツールのロールバック機能は使うな

データベースマイグレーションツールのロールバック機能は安全に使えないので使うべきではない、という話。

【GitHub】 マージ済みのremote branchを一括削除するコマンド

GitHub上のマージ済みremote branchをコマンドで一括削除したくなったときの備忘録

Docker ComposeでDBコンテナの起動を待ってからAPIコンテナを起動させる

Docker ComposeでDBが完全に起動し終わる前にAPIがリクエストを処理すると500になっちゃう問題に対する対処方法

【 PHP 】 preg_match関数に渡せる正規表現の長さには上限がある

超長い正規表現をPHPのpreg_match関数に食わせたところエラーになった。公式ドキュメントにはこの振る舞いは記載されていないので調べたことを残しておく。

ISUCON12 予選に参加して無残な敗退を喫した💀

恒例行事となっているISUCON予選に今年も参加し、無残な敗退を喫してきた💀

指定したサイズ以上のファイルを見つける

どこにあるか分からないけどデカいファイルがあって悪さしていそうなので探したいときなどに、findコマンドのsizeオプションが便利

使われていない機能を積極的に消すべき理由

使われていない機能は積極的に消すべき慈悲はない

さくらのレンタルサーバ上で Node.js (npm) を使えるようにする

諸般の事情でさくらのレンタルサーバ上で Node.js (npm) を使いたくなったので、使えるようにする手順を残しておく。

PHPUnit実行時にメモリ使用量制限に引っかかる場合の対処方法

PHPUnit実行時にメモリ使用量上限を超えてエラーになる場合の対処方法について。

古めのLaravelアプリがComposer 2で動かない問題

少し古めのLaravelアプリケーションを保守していてComposer 2でcomposer install出来ない問題にぶち当たったので、これから躓くひとのために記録を残しておく。

ISUCON11予選 31位で惜しくも本戦出場ならず〜〜〜

今年もISUCON 予選に参加し、527チーム中31位で惜しくも本戦出場なりませんでした、ざんねん〜〜〜〜〜〜〜。

AmazonLinux2にMySQLクライアントのみをインストールする

AmazonLinux2にMySQLクライアントのみをインストールしたくなって方法を調べたのでまとめておく。

IPA 情報処理安全確保支援士試験に合格しました

IPA主催のサイバーセキュリティ知識の認定試験「情報処理安全確保支援士試験」(旧 セキュリティスペシャリスト試験)に合格しました 🎉

ウェブセキュリティ実務知識試験 (徳丸実務試験) に合格しました

Webセキュリティ界隈で有名な徳丸さん監修の「ウェブセキュリティ実務知識試験 (通称: 徳丸実務試験)」に合格しました🎉

DBでdateとdatetimeを扱うときのカラム名suffixの使い分け

これまでデータベースのカラム名を命名する際、日付 (date) でも日時 (datetime) でもsuffixには `at` を使っていたが、日付の場合は `at` よりも `on` のほうが適切である、と教えてもらったのでそれについてまとめた。

jqを使ってjsonの差分をスマートに確認する

jsonを比較する際にkeyとvalueの組が同じでもkeyの並びが微妙に違っていたりして余計な差分が出てキレそうなとき、jqを使ってkeyでソートしてからdiffを取ったりすると便利だよっていう小ネタを紹介する。 jq jqはjsonをいい感じに整形したり、色付け表示し…

php-fpmはリクエストが中断されても処理中のプログラムを中断しない

nginxでリクエストを受けてphp-fpmにpassするというPHPアプリケーションではスタンダードな構成において、リクエストが中断されたときphp-fpmの処理って中断されるんだっけ?されないんだっけ?というのが気になったので調べた。

ISUCON10本戦へ出場して「またあいま賞」を受賞しました

10/3 (土) に開催されたパフォーマンスチューニングコンテスト「ISUCON10」のオンライン本戦にて、チーム「牡蠣の鋭利な殻が指に突き刺さり利き手を負傷」として33チーム中20位でフィニッシュし「またあいま賞」を頂きました 🎉

ISUCON10予選を何とか突破出来たンゴ〜〜〜

9/12 (土) に開催されたパフォーマンスチューニングコンテスト「ISUCON10」のオンライン予選にて、チーム「牡蠣の鋭利な殻が指に突き刺さり利き手を負傷」として予選18位で予選突破しました ISUCON10 FINALIST認定証 isucon.net 初めての予選突破本戦頑張り…

CentOS8へremiリポジトリを使ってPHP7.4をインストールする

デフォルトリポジトリを使ってPHPをインストールするとCentOS 7系では5.4が、CentOS8系ではPHP 7.2が入る。それよりも新しめなバージョンのPHPを使いたいときの王道的な方法として、remiリポジトリを使う方法を紹介する。 PHP 7.4 前提 2020/09/20 (日) 時点…

Redash SaaSからRDSにアクセスするために調べたこと、考えたことまとめ

Redash SaaSからRDSへつなげるように出来るんだっけ、とか、どんなリスクがあるんだっけ、みたいなことを調べたのでまとめておく

mysqlコマンドの実行結果から枠線とカラム名を除いて表示する

mysqlコマンドの実行結果から枠線とカラム名を取り除いて表示する方法を調べたので備忘録がてらまとめておく