Blogs

4 / 39 ページ

2024

VercelでBEAR Sundayを動かしてみた

Vercelは、Next.jsなどのフロントエンドアプリケーションのproduction環境としてよく使われますが、実はPHPも動かすことができます。 vercel-community/php PHPerとしては、何かPHPのアプリケーションをVercelで動かしたいと思い、今回はBEAR SundayをVercelで…

BedrockとWpRestaを使ってWordPressで独自のAPIを作成する

WordPressをHeadlessCMSとして使いたいと思い、WordPressが用意しているREST APIではなく、独自のエンドポイントを作りたいと考えました。 通常、独自のエンドポイントを設定する場合は rest_api_initのアクションフックを使用します。 WP REST API を使って独自エンドポイン…

Nuxt2のnuxt-linkでaria-currentの属性が設定されなかった問題について

同じURIのリンクなのに aria-currentの属性がつく場合とつかない場合があって結構悩んだのでそのメモ。 どのような問題が発生していたのか? よくあるページネーションの実装で、1ページ目の/hoge?page=1はクエリを削除してリンクを表示していた。 ページ番号を削除したNuxtLinkにおいて aria-c…

BEAR.SundayでDoctrine Migrationsを使ってみよう

最近はHTTP Cacheまわりにかなり興味がでてきたので、久しぶりにBEAR.Sundayを触っています。 全く覚えていなかったので、素振りをしようと思ってとりあえずチケットチュートリアルをやりました。 無事に素振りが終わって実際に趣味のアプリケーションのコードを書き始めようと思いましたが、データベースのマイグレーシ…

Cloudflare DNS Proxyを経由した際のVercelでホストされるNext.jsアプリケーションのレスポンスが遅い問題について

VercelでホストされているNext.jsアプリケーションのレスポンス時間が600msに達していました。 特にローカル環境では遅い印象はなくて、なぜかvercel上で動かしているときだけ遅いという謎現象。 Edge Middlewareがロンドンで実行されていた レスポンスが遅い原因を調べるためにVercelのログを…

Dockerのマルチステージビルドで特定のステージを指定する方法

Dockerのマルチステージビルド(Multi-stage builds)で複数のステージを用意する場合があります。 マルチステージビルドを使うことで、一つのDockerfile内で複数のビルドステージを管理し、最終的なイメージサイズを小さく保つことができます。 今回はstaging, production環境でステー…

pnpmで依存関係があるパッケージすべてをフィルタする

turborepo + pnpmを使う際に欠かせないpnpmのfilterオプション。 addやtestやlintなど結構必要な場合が多いと思います。 特に、GitHub ActionsなどのCI環境でテストやLintを実行する場合、依存関係に含まれるすべてのパッケージをチェックしたいことがあります。 もちろん、複数の…

M3 MacbookProな環境でHaskellを動かす

年末にPCを買い替えてM1 mac miniからM3 MacBookProになりました。 今年こそはHaskellを覚えたいという気持ちからPHP環境よりも先にHaskellの環境を用意しました。 homebrewでインストールする brewの場合はGHCupを入れてしまうのが楽ぽいのでGHCupを入れるようにする $…

2023

正規表現を使うプロジェクトではeslint-plugin-redosを入れたほうがいいかもしれない。

ReDos脆弱性ってなかなか気づかないなぁと思っていて、なにかいい方法がないかなと思っていたらeslintのpluginがあったので試してみました。 見つけたきっかけ zodのemailのバリデーションの正規表現でReDos脆弱性があるという指摘を頂いたので、zodのプロジェクトのPRを見てたら以下のようなPRを見つけ…

Auth0で独自で生成したUUIDをCustom Claimsとして設定する

Auth0で認証周りを作ってて独自のユーザーIDの定義をどう扱うかを結構なやみました。 Firebase Authの場合はFirebase側でユーザーUIDを生成してくれますが、Auth0の場合は生成してくれない。 まあ、sub クレームの値を使えばいいといえばいいし複数のSocial Provider使われた場合でも…

nelmio/aliceでcurrentの値をintegerとして扱う方法について

ちょっと古いプロジェクトで、SymfonyのバージョンやPHPのバージョンを上げたいと思いましたがテストがないのでこわいなということで、テストを書き始めました。 nelmio/aliceを使ってテスト用のダミーデータを作っていましたが current まわりでちょっとつまずいてしまいました。 どのような問題が起きたのか…

Github Actionsでtimeoutを設定する

Github Actionsの設定って年に数回ぐらいしかしないので、毎回timeoutの設定を忘れてググっている...。 わすれないようにこのブログ記事でメモしておこうと思う。 デフォルトのタイムアウト時間は? 公式ドキュメントを確認したところデフォルトだと 360分 らしいです。 Github Actionsの課金に…

DoctrineのDQLを使ってPostgreSQLの配列型JSONでLIKE検索をする

前回「PostgreSQLの配列型JSONでLIKE検索をする」という記事を書きました。 今回はこれをDoctrineで検索させるかというお話です。 前回調べた内容で発行するクエリ JSONB型のデータに対してLIKE検索したい場合はサブクエリを使えば解決できました。 SELECT id, tags FROM tags…

PostgreSQLの配列型JSONでLIKE検索をする

PostgreSQLの配列型のJSONで検索したい人生でしたが無理っぽいということがわかって悲しみにくれています。 たとえばこんな感じのテーブル id tags ---- ------------------------------ 1 ["静岡", "沼津"] 2 ["相模大野", "東静岡"] 3 ["静修学園前"…

RemixでETagを使う

Remixアプリを作って実際にサーバにデプロイし始めてから、コンテンツに変更ないほぼ静的なページなのに、ステータスコードが200でレスポンスされていたのでちょっと嫌だなと思って、ETagで304レスポンス返せるようにしてみました。 ETagとはなにか? まずそもそもとしてETagとはなにか? ブラウザキャッシュを利用す…

Turborepoで複数のRemixアプリを同時に開発するためのport設定

TurborepoでRemixのアプリを複数用意するみたいなプロジェクトでちょっと細かい設定が必要だったのでここに書いていこうと思います。 なにが必要なのか portがかぶらない用に注意する必要があります。 このportに2種類あります devServerPortの設定 必要であればRemix App ServerのP…

サービスを作りたいと思う気持ちが強くなってきた

パーティーハードを設立して5年、受託開発や業務委託の分野でビジネスを進めてきた。 色々なシステムを開発して、経験値もだいぶ上がった気がする。 クライアントから求められるものを形にしていく仕事は、本当に楽しくて学びが多くて充実している。 だけど、最近は「このまま受託開発の会社でいいのか?」という疑問が強くなってきている。…

プロンプトエンジニアリング入門 - 効果的なAI対話を実現するための技術と戦略

この記事はChatGPT時代にどう生き抜くかを考えた結果、プロンプトエンジニアリングが必要だという結論に至ったpolidogがChatGPTに書かせた内容になります。 正しいかどうかは読んだ皆様の判断でお願いします。 この教科書では、プロンプトエンジニアリングの基本概念、技術、戦略、およびベストプラクティスを網羅的にカ…