なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

2025-01-01から1年間の記事一覧

Contentful の GraphQL API でコンテンツの更新日時を取得したい

ハマったのでメモしておく。 更新日時は sys.publishedAt、公開日時は sys.firstPublishedAt を使う。 どちらも DateTime が返される。 query SomeQuery { articleCollection(limit: 1) { items { sys { id " このプロパティを使う!" publishedAt firstPubl…

Roslyn で ISymbol から SyntaxNode を得たい

みなさん Roslyn いじってますか? Roslyn(正式名称:.NET Compiler Platform)は、C# をはじめとする .NET 系言語のコンパイラであり、同時に強力なコード解析 API でもあります。JavaScript/TypeScript エコシステムでいえば、ESLint や Prettier のよう…

HonoX で Next.js PagesRouter の getStaticPaths をしたい

みなさん、HonoX はお使いでしょうか? HonoX は、手軽に SSR(Server-Side Rendering)や Island Architecture を試せる優秀なパッケージです。シンプルな API で現代的な Web アプリケーションを構築できるのが魅力ですね。 Next.js の getStaticPaths と…

SignalR のリアルタイム通信で 32KB 以上のパラメータを受信したい

C#

ASP.NET Core 版の WebSocket 実装である SignalR では、 C# 側で実装したメソッドを、 JavaScript フロントエンドから呼び出すことができます。 その際、例えばバイナリの Base64 String を送るなどでパラメータサイズが 32KB を超える場合、以下のようなエ…

続:Cloudflare Workers でも画像のメタデータを取得したい:PNG の iTXt 編

前回の記事では、Cloudflare Workers で EXIF/XMP データを取得する方法について解説しました。 tech.natsuneko.blog 今回は PNG ファイルに焦点を当て、iTXt チャンクに埋め込まれたメタデータを取得する方法を紹介します。 まず、 PNG ファイルには任意の…

Cloudflare Workers でも画像のメタデータを取得したい

例えばサーバーレスな環境で、非同期的に画像のメタデータを取得してごにょごにょしたいこと、ありませんか?わたしはあります。 今回は、Cloudflare Workers を使って、画像のメタデータを取得してみようと思います。 まず最初に思いつくのが、Node.js 用画…

hanko.io の Flow API を使ってユーザー登録を実現したい

hanko.io という ID プロバイダーがある。 Passkey ネイティブ対応で、 Passkey の他に SNS アカウントでの認証 (X はない)、 OTP での認証など様々な認証形式をサポートしている。比較的最近 MFA にも対応していた。 そんな Hanko だが、 Hanko による認証…

ShareLink で Preview をカスタムしたい場合、 subject/message も指定しないと共有先のアプリが受け取ってくれない

Swift では、 ShareLink を使うことで、簡単に共有メニューを作ることが出来ます。 しかし、テキストを共有したいが、プレビューは編集したいとき、次のように ShareLink を定義すると、共有先のアプリではアイテムを受け取ってくれません: ShareLink( item…

HStack の要素を Flexbox のようにうまいこと改行させたい

HStack に並べている要素を下の画像のように、上手いこと改行させたい (要素毎に改行させるのではなく、最後の要素のみ改行させたい) 場合のやり方。 SwiftUI の標準の HStack では上手いこと改行されないので、自分でコードを書くか、ライブラリを使う必要…

SwiftUI で複数の要素を子要素として受け付ける View を作りたい

最近 Swift (iOS アプリ開発) を触っているわたしです。 タイトル通り、複数の要素を受け付ける View、つまりは ZStack とかのように、次のようなコードがかける View 要素を作りたい場合のやり方: ZStack { Color("BrandColor") Image("BrandIcon") .resiz…

Web3 ドメインの名前解決を Tailscale でやりたい (NextDNS は使わないが共存したい)

トップレベルドメインと言えば基本は ICANN が割り当てたものが使えますが、 Web3 界隈では例えば .eth/ や .namebase/ といった、独自のトップレベルドメインを運用することができる仕組みがあります。今回はそんな Web3 ドメインを名前解決できるようにし…

React Router v7 で Error: Objects are not valid as a React child が出続けるときは

React Router v7 でサイトを構築しようとして、なぜかずっとタイトル通りのエラーが出続けるという事象に遭遇した。 Unexpected Server Error Error: Objects are not valid as a React child (found: object with keys {$$typeof, type, key, props, _owner…

YAMAHA RTX1300 の各種メトリクスを Mackerel に登録したい

YAMAHA の 10G ルーター RTX1300 をフォロワーに貢いで貰った。 このままほぼデフォルトで使ってもいいが、せっかくの高級ネットワーク機器なのでいろいろやってみたい。 調べたところ SNMP というプロトコルで各種データが取れるようなので、それらを Macke…

Minecraft の Mod をアップデートする ~Fabric 編~

半年に一回の行事 Minecraft のアップデートの時期がやってきましたね!ということで自作 Mod もバージョンアップさせていきましょう。 毎回手順を忘れてしまうのでメモがてらブログとして残しておきます。 1. Gradle アップデート だいたい Gradle Wrapper …

GitHub Actions で PlanetScale の main ブランチに変更がマージされていなければチェックを落としたい

PlanetScale というサーバーレス DB サービスがあり、PlanetScale では Branching という git の branch のようなシステムが搭載されています。 planetscale.com planetscale.com めちゃくちゃ簡単に言えば、データベーススキーマに対しての Git の branch …

@react-three/fiber で複数の Canvas 間で OrbitControls の操作を共有したい

React で Three.js を扱うためのライブラリ、 @react-three/fiber で、タイトル通りのことをしたい場合の話。 r3f.docs.pmnd.rs 例えば、画面を4分割して4種類の 3D モデルを同じ角度から比較したい、などと言ったときに使える、複数の Canvas 間で OrbitCon…

Next.js on Vercel で Mackerel へ OpenTelemetry のトレースを送信したい

Mackerel とは別のチームで働いているわたしです。 今回は最近 Mackerel が OpenTelemetry のトレーシングにも対応した様子なので、 Next.js on Vercel でもやってみよう!というメモ書き記事です。 mackerel.io ということで、まずは OpenTelemetry 関連の…

Three.js で ArrayBuffer から 3D モデルを表示したい

Three.js 系列 (three / @react-three/fiber) で、例えば直接サポートされていない圧縮形式のリモートファイルをダウンロードして表示したい、みたいなケースがある。 そういうときは、 ArrayBuffer を経由して以下のようにすると、 3D モデルを上手いこと表…

Minecraft サーバーの状況を Mackerel で監視する

この記事は「はてなエンジニア Advent Calendar 2024 - Hatena Developer Blog」の36日目の記事です。昨日は id:hogashi さんの Redashではクエリ結果にHTMLを使えるので便利 長いカラムをdetailsで畳める ほか - hogashi.* でした。 わたしはプライベートで…