Zendesk APIでプライマリメールアドレスを更新する方法
はじめに Zendeskを利用しているとき、ユーザーのプライマリメールアドレスを変更する必要が出てくることがあります。特にAPIを使って自動化する場合、少し複雑な手順が必要になります。 今回は、Zendesk APIを使ってユーザーのプライマリメールアドレスを更新する方法についてご紹介します。 なぜ複雑なのか? Zen…
はじめに Zendeskを利用しているとき、ユーザーのプライマリメールアドレスを変更する必要が出てくることがあります。特にAPIを使って自動化する場合、少し複雑な手順が必要になります。 今回は、Zendesk APIを使ってユーザーのプライマリメールアドレスを更新する方法についてご紹介します。 なぜ複雑なのか? Zen…
はじめに Git を使った開発では、複数のブランチを行き来しながら作業することが日常的です。従来は git checkout コマンドを使ってブランチを切り替えていましたが、Git 2.23(2019年にリリース)から新しく git switch コマンドが導入されました。 この記事では、git switch コマンド…
https://twitter.com/phpcon_odawara/status/1910911200256573688 PHPカンファレンス小田原2025に弊社がスポンサーとして参加してきました。久しぶりのオフラインイベントだったということもあり、本当に素晴らしい体験ができました。今回は、その体験について書いていき…
はじめに モノレポ管理ツールとして人気のTurborepoを使用していると、複数のアプリケーションやパッケージ間での環境変数の扱いに悩むことがあります。この記事では、Turborepoにおける環境変数の管理方法、特にNext.jsアプリケーションでの設定方法を詳しく解説します。 Turborepoにおける環境変数の基本…
VS CodeでRooCode/Cline使用時にシェル統合エラーが発生した 最近VS Codeを使用していると、特にRooCode/Clineを使っている際にターミナルで2種類のエラーメッセージが表示されるようになりました。これらのエラーは開発作業の妨げになっていたため、それぞれの解決方法を紹介します。 エラー1: …
Vercelが提供するEdge Functionsは、世界中のエッジノードで実行されるサーバーレス関数で、低レイテンシーを実現しつつグローバルなデプロイが可能です。 しかし、Edge環境でデータベースにアクセスする際には、いくつかの制約や注意点があります。今回は、VercelのEdge FunctionsでPrisma…
はじめに 最近、当ブログのデザインをリニューアルしました。デザインの参考元として Tailwind UI の Spotlight テンプレート を使用し、AI アシスタント Claude と対話しながら改修を行いました。今回は、そのプロセスと技術的な側面について共有します。 リニューアルの目的 ブログのリニューアルには…
リポジトリの管理中、「大量にrebaseしてpushしてしまったコミットを戻す方法」という質問はよくあります。 特に、特定のコミットハッシュまで戻りたいというケースでは、Gitのrevertコマンドが非常に役立ちます。 結論から言うと、答えは「はい」です。Git revertを使えば、特定のコミットハッシュまで状態を戻…
2月でパーティーハード株式会社は創立8周年を迎えました。 関口との2人で立ち上げた小さなWebシステム開発会社も、皆様のご支援のおかげで8年の節目を迎えることができました。 心より感謝申し上げます。 2025年の新たな挑戦 以前Facebookでも触れましたが、今年は受託開発事業の拡大に注力してまいります。 昨年はPr…
QStashをローカル環境で使うためには2つの方法があります。 Local Tunnel(ローカルトンネル)を使う方法 qstash-cliを使う方法(Docker環境でのセットアップが可能) QStashはクラウド環境でのメッセージキューやジョブスケジューリングに便利ですが、開発時にはローカル環境でのテストが不可欠で…
JavaScriptでオブジェクトをJSON化する際、JSON.stringify を使うと、関数を含むオブジェクトをシリアライズしようとしたときに関数が自動的に削除される という仕様になっています。 JSON.stringify の仕様と関数の省略 JSON.stringify はデフォルトでは関数をJSONに含めま…
PHPでJSONを扱う際に、json_encode() 関数を使うとマルチバイト文字が \uXXXX 形式にエスケープされてしまう ことがあります。この挙動を理解し、適切に対処する方法について解説します。 json_encode でマルチバイト文字がエスケープされる問題 通常、PHPの json_encode() 関数…
SymfonyでTailwind CSSを導入する際、便利なバンドルとしてsymfonycasts/tailwind-bundleを利用することができます。このバンドルを使うことで、Tailwind CSSを簡単にビルドし、Symfonyのアセット管理と統合できます。 しかし、ある日 tailwind:build コマ…
Flutter周りのスキルを上げるために、Flutterでアプリを1つリリースする いい加減Haskellを覚えたいので、すごいH本を絶対に終わらせる vimを覚えたいので、実践VIMを終わらせる Rustに入門する AWSの資格を一個ぐらい取りたい ブログを週1回は更新する マネージメントスキルを上げるために、マネー…
2024年一年の振り返りをしようと思う。 仕事 今年はさらに会社の人数が増え、勢いを感じる一年でした。 日々、弊社に関わってくれるメンバーには感謝の気持ちでいっぱいです。 マネジメント メンバーが増えてきたことで、マネジメントの視点が必要だと強く感じた一年でもありました。 ただ、自分はマネジメントが得意ではなく、知識も…
GuzzleはPHPでよく使われるHTTPクライアントの一つです。 しかし、Guzzleを使う際に base_uri に関連するトラブルに頻繁に遭遇することがあります。この問題を解決するために、base_uriの使い方と、その際に注意すべき点をこの記事でまとめます。 base_uriの使い方 Guzzleのクライアント…
Vercelは、Next.jsなどのフロントエンドアプリケーションのproduction環境としてよく使われますが、実はPHPも動かすことができます。 vercel-community/php PHPerとしては、何かPHPのアプリケーションをVercelで動かしたいと思い、今回はBEAR SundayをVercelで…
WordPressをHeadlessCMSとして使いたいと思い、WordPressが用意しているREST APIではなく、独自のエンドポイントを作りたいと考えました。 通常、独自のエンドポイントを設定する場合は rest_api_initのアクションフックを使用します。 WP REST API を使って独自エンドポイン…
Dockerで用意した環境のphpでbasename関数をつかって日本語文字が消えてしまう問題が発生していました。 Googleで検索すると大体は setlocale(LC_ALL, 'ja_JP.UTF-8'); すればいいと書いてあったので脳死で設定してみましたが、ダメでした。 setlocale(LC_ALL, …
同じURIのリンクなのに aria-currentの属性がつく場合とつかない場合があって結構悩んだのでそのメモ。 どのような問題が発生していたのか? よくあるページネーションの実装で、1ページ目の/hoge?page=1はクエリを削除してリンクを表示していた。 ページ番号を削除したNuxtLinkにおいて aria-c…
最近はHTTP Cacheまわりにかなり興味がでてきたので、久しぶりにBEAR.Sundayを触っています。 全く覚えていなかったので、素振りをしようと思ってとりあえずチケットチュートリアルをやりました。 無事に素振りが終わって実際に趣味のアプリケーションのコードを書き始めようと思いましたが、データベースのマイグレーシ…
VercelでホストされているNext.jsアプリケーションのレスポンス時間が600msに達していました。 特にローカル環境では遅い印象はなくて、なぜかvercel上で動かしているときだけ遅いという謎現象。 Edge Middlewareがロンドンで実行されていた レスポンスが遅い原因を調べるためにVercelのログを…
Dockerのマルチステージビルド(Multi-stage builds)で複数のステージを用意する場合があります。 マルチステージビルドを使うことで、一つのDockerfile内で複数のビルドステージを管理し、最終的なイメージサイズを小さく保つことができます。 今回はstaging, production環境でステー…
PHPUnit11でProphecyを使おうと思ったら使えなかったのが事の発端です。 https://twitter.com/polidog/status/1762843240515199213 ただし、現在はphpspec/prophecy-phpunitのv2.2.0が出たのでphpunit11でもProphecy…
turborepo + pnpmを使う際に欠かせないpnpmのfilterオプション。 addやtestやlintなど結構必要な場合が多いと思います。 特に、GitHub ActionsなどのCI環境でテストやLintを実行する場合、依存関係に含まれるすべてのパッケージをチェックしたいことがあります。 もちろん、複数の…