Guzzleで空配列のパラメータをオブジェクトとして送る方法
GuzzleでJSONをリクエストボディにセットしてPOSTリクエストを送る際、空配列のパラメータは空配列としてJSONに変換される。これはPHPの仕様として仕方ない部分がある。 しかし、空のオブジェクト {} として変換したい場合もある。 例えば弊社で作っているPrintgraphのAPIでは、params というリ…
GuzzleでJSONをリクエストボディにセットしてPOSTリクエストを送る際、空配列のパラメータは空配列としてJSONに変換される。これはPHPの仕様として仕方ない部分がある。 しかし、空のオブジェクト {} として変換したい場合もある。 例えば弊社で作っているPrintgraphのAPIでは、params というリ…
10年ぶりぐらいにXcodeとSwiftを触っている。 もはや何もわからない。 Google Mapsのライブラリを使おうと思ってAIに聞いたら、最近はCocoaPodsじゃなくて、SPM(Swift Package Manager)で入れるのが主流らしい。(まじ?) それで、AIにSPMを使ってパッケージを追加する方…
Next.jsのApp RouterでFirebase Authを使いたい。 その場合に問題になってくるのがRSC(Server Component)での認証をどうするかというところが一番の重要なポイント。 セッションCookieを利用する RSCは従来のサーバーサイドでのセッションCookieの管理と同じ仕組みでいい…
https://twitter.com/naoya_ito/status/1965918219539198122 このツイートを見て色々と考えていた。 確かにAI時代になってコーディングをする機会が大幅に減った。 それに対して違和感を感じなくなっているが、本当にそれでいいのだろうか? とりあえずAIの最新を追うのに疲れ…
9月9日から10日にかけて、会社の研修で富士山に登ってきた。 これまで何度も富士登山をしているが、吉田ルートから登るのは初めてだった。 また、いつもは日帰りで登っていたが、今回は初めて山小屋に泊まった。 鎌岩館 今回はグループで行ったので、鎌岩館の個室を利用した。想像以上に綺麗で驚いた。 最近の山小屋はここまで設備が整…
ATOTO X10を購入したので、とりあえず自宅で起動してみた。 本当は車に取り付けたいんだけど、まだ納車日が未定なので、事前にアップデートや必要なアプリのインストール、Googleログインなどを済ませておきたかった。 電源問題 そもそも自宅でカーナビを起動する場合どうすればいいんだろう、という疑問から始まった。 社内…
自宅のトイレの玉鎖が切れてしまって、「小」で流すことができなくなってしまった。 業者に頼んで直そうと思ったけど、なんかもったいないのでとりあえず自分で替えてみることにした。 おそらく玉鎖が切れたんだろうと思ったけど、念の為トイレタンクの蓋を開けて確認したらやはり玉鎖が小のほうだけ切れていた。 ということで玉鎖をamaz…
https://twitter.com/polidog/status/1959082986491752458 最近Linux環境で開発しようと思い、余っていたノートPCにUbuntuデスクトップを入れて開発環境を構築した。 環境構築にはOmakubを使い、快適な環境を手に入れることができた。 ただ、最近はやはりMacB…
polidog/kilar (キラール)というライブラリを作った。 どういうライブラリなのか? kilarは、Rust製のプロセス確認・削除CLIツール。 macOSとLinuxで動作する。macOSならhomebrewで簡単にインストールできる。 brew tap polidog/kilar && brew inst…
プログラマとして働くようになって約20年。 フルリモートワークになって約10年。 文字を全く書かない生活になってしまった。 文字を書かなくても基本的には問題はないのだが、一つだけ困ることがある。 それは漢字がものすごく書けなくなっているということ。 子供が生まれてから、特に問診票などを書くときに苦労している。スマートフ…
弊社は毎週火曜に全体MTGがある。 各メンバーがそれぞれ違うプロジェクトに関わっているので、そこ以外で他のメンバーと話す機会はほとんどない。 先々週は会社がお盆休み、先週は自分が休暇を取っていたのでまじで2週間ぐらい会社のメンバーと話していない。 しかも、プロジェクトが違うとどうしてもSlackでもそれほど会話するわけ…
先週末にShizuokaTECH #1に参加した。 久しぶりのオフラインの勉強会で、様々な発表を聞いていてどれも素敵だったし、刺激をもらえた。 知っている話を聞くこと もちろんすべて初めて聞く話ではなくて、もともと知識として知っている内容もいくつかあった。 知らない話題の発表を聞くことは自分の知識を広げるために大切だ。…
LazyVimでMarkdownをプレビューするために、iamcco/markdown-preview.nvimを導入しました。 導入方法はとても簡単で、まず ~/.config/nvim/lua/plugins/markdown.lua ファイルを作成し、以下の設定を記述します。 return { { "iamcco…
Shizuoka TECH #1に参加してきました。 仕事仲間であり友人?でもある@hota1024 さん が主催で勉強会をやるということでパーティーハード社でも会場費のスポンサードをさせていただきました。 久しぶりの発表 スポンサーLT以外でオフラインのイベントで発表するのはものすごく久しぶりでした。 自分はもともと…
omakubで開発環境を構築して開発をするようになった。 今のところはすごく快適に開発できている。VSCode使いたいとは全く思わない程度に。 LSP使えるから結構便利なんだけど、プロジェクト単位で無効化したいことがある。 そんなときは .lazy.lua ファイルを用意して以下のように記述すればいい。 return …
最近、vim環境の改善のためにlazyvimとzellijを導入しました。zellijは高機能なターミナルマルチプレクサーで、パネルの操作にAlt + キーの組み合わせを多用します。 しかし、macOSでGhosttyを使用している場合、デフォルトではOptionキーがAltキーとして認識されません。そのため、zell…
DHHがMacやめたということで、自分も脱Macしようと思って使ってなかったWindowsのラップトップにUbuntuをとりあえず入れてみた。 もちろん、omakubを使って環境を設定している。 特にまだubuntuマシンで作業(仕事)しているわけではないので、そこまで良い/悪いの判断はつけられない。 しかし、思ったよ…
Claude Codeで /doctor を実行したら /migrate-installer をするように言われたので実行したら、VSCodeでのClaude Codeの連携がうまくいかなくなりました。 何が起きたのか VSCodeのタブの横にある「Claude Code」のアイコンが消えた 右クリックしたときのコンテ…
Next.jsでFirebase Authenticationとswr-openapiを組み合わせて使う際、トークンの管理が課題になることが多いです。今回は、Firebase Authのトークン管理に特化して、swr-openapiでのmiddleware活用方法を解説します。 Firebase Authのトークン管理…
Rust入門:基本的な概念と機能の解説 Rustは安全性、パフォーマンス、並行性に優れたシステムプログラミング言語です。この記事では、Rustの重要な基本概念について説明します。初心者の方からRustに興味を持った方まで、参考になれば幸いです。 目次 Cargoの--featuresオプション 構造体とアクセス修飾子 …
はじめに SupabaseでSlackログイン機能を実装する際、ローカル開発環境で直面する最大の問題は一つです。それは、Slack側が指定するredirect_urlがhttpsでなければならないという点です。この記事では、この問題を解決するための実践的なアプローチを紹介します。 問題の背景 Supabaseにはcon…
最近、開発効率化のためにDocker DesktopからOrbStackに乗り換えることにしたのですが、その際にFirebase EmulatorとPostgreSQLのデータを移行する必要がありました。OrbStackは軽量で高速なDockerの代替ツールとして注目されていますが、環境を移行する際にデータの引き継ぎは…
はじめに 単体テストを書く際、外部依存関係をモックすることは避けられない作業です。特にNext.jsやVue、Reactなどのモダンなフロントエンドフレームワークを使用したプロジェクトでは、コンポーネントやサービスの独立したテストを行うためにモックが必須となります。 Vitestは、Viteをベースにした高速なJava…
HTML5バリデーションとE2Eテストの課題 E2Eテストでは、実際のユーザー操作をシミュレートしてアプリケーションが正しく動作するかを検証します。HTML5のフォームバリデーションは多くのWebアプリケーションで使われている基本機能ですが、Playwrightなどのテストフレームワークで適切にテストするのは少し工夫が…
はじめに 複数のFlutterアプリケーションやパッケージを開発している場合、それぞれを個別のリポジトリで管理するのは非効率的です。そこで役立つのが「モノレポ(モノリシックリポジトリ)」という開発アプローチです。今回はFlutterプロジェクトのモノレポ管理に特化したツール「Melos」について詳しく解説します。 モノ…