モヒカンメモ

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

エンジニアリング

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

GitHub Activityをグラフで可視化してくれるGitHub Readme StatsでGitHub映えを狙う

Webエンジニア御用達のソースコード管理ツール "GitHub" でのアクティビティを可視化してくれる GitHub Readme Stats というおもしろツールが、結構映えるグラフを作ってくれていい感じだったのでご紹介します。

useraddコマンドをAmazon Linux2へインストールする

Linuxユーザを追加するときに使うuseraddコマンド。Amazon Linux2のdockerイメージではデフォルトでは入っていなかったのでインストール方法を調べたたときの備忘録。Amazon Linux2に限らず、Linuxのminimal環境にuseraddコマンドを入れるのに使える方法だと…

80番ポートを使っているプログラムをlsofコマンドで特定する

Linux環境で特定のポートを使いたいけど先に使われていてどのプログラムがそのポートを使っているか知りたいとき、lsofコマンドが便利。 lsofコマンド 「lsof」はオープンしているファイルを一覧表示するコマンドです。 www.atmarkit.co.jp lsofコマンドに-i…

Nginxに "413 Request Entity Too Large" と怒られる原因と対処法

Nginxをリバースプロキシとして使っている環境でファイルアップロードなどを行おうとしたとき "413 Request Entity Too Large" というエラーレスポンスが返ることが有る。 nginx.org 413 Request Entity Too Large 原因 Nginxへ送信されたコンテンツのサイズ…

FileReader.readAsDataURLで得られるのはData URIであって純粋なbase64文字列じゃないぞ

ファイルをFileReader.readAsDataURLを使って文字列化したものは純粋なbase64文字列だと思っていたけど、decodeしようとしたら出来なくてなんでやねん!と思ったので残しておく。 まとめ 画像とかの添付ファイルをJavaScriptで扱うときにFileReaderを使う Fi…

海外へWebコンテンツを配信する際はアクセシビリティの法律に気をつけるべし

ふとしたtweetをきっかけに、海外向けにWebコンテンツを配信する際には現地のアクセシビリティに関する法律に気をつける必要があることを学んだ。 アクセシビリティを頑張っているところに、そのモチベーションを聞きたい— ぴんくもひかん (@pinkumohikan) 2…

Lambda@Edgeではオリジンのデータを部分的に書き換えて返すことはできない

Lambda@Edgeのfunctionにoriginからのresponse bodyは渡ってこないので、responseの一部を書き換えて返すみたいな使い方はできないっぽい