koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

Tips

Next.jsのpublic配下の画像をS3から配信したら画像が表示されなくなった

<Image src="/images/hoge.png" alt="" ... /> Next/Imageでの↑ように画像表示をしている状態で画像の配信構成を変えたら表示が全滅した。 before flowchart LR UA --> CloudFront CloudFront -- default --> Next.js after flowchart LR UA --> CloudFront CloudFront -- default --> Next.js CloudFron</image>…

C#で書いたPlaywrightのテストをGitHub Actionsで動かす

Playwrightは結構いろんな言語でテストを書ける。 C#でMicrosoft.Playwright.MSTestの場合、Playwrightのインストール用のスクリプトが付属している*1ため、それを実行してやればGitHub Actionsのワークフローで実行できる。 毎回インストールするのは不経済…

Azure Functionsの従量課金AppのZIPデプロイに容量不足で失敗したら発行時のアーキテクチャを指定するといいのかもしれない

タイトルが全て。.NETのバージョンは.NET6(関数アプリのインプロセスモデルが現状は6まで対応なので)。 あるFunction AppをGitHub ActionsのActionでデプロイしようとしたら There is not enough space on the disk.\r\n (\r\nが出力されるのが趣深い)で…

ECS Fargate + ecspresso + GitHub Actions 運用構成例

先日の記事でECS Fargate*1をアゲたので、どういう使い方の実感でアゲたのか軽くメモしておく記事。 AWS Containersのカレンダー | Advent Calendar 2023 - Qiitaにも登録しておいた。 手軽に箇条書きです。 ホスティング対象・条件など IaC デリバリ まとめ…

Contentlayer で Next.js の SSG 向けデータを管理する体験はなかなかよい

タイトルで全てが完結している記事です。 ↓これ。 github.com Next.jsのようなフレームワークで静的なサイトのコンテンツを生成する際には、元となるデータ(よくあるのはお知らせやブログ記事)を何かしらの形で管理しなくてはならない。 どうするのがいい…

Next.jsのApp Router下でハッシュフラグメントを得る

どうもNext.jsはURLの#以降の部分、Fragmentを使うことは推奨していないように思える。 前々からそうだったのだけれど、13で準備されているApp Routerではよりその方向性が強くなったのではないか。 Upgrading: From Pages to App | Next.js 辺りが該当する…

Node.js の readdir が便利になっていた

TypeScriptやJavaScriptのリポジトリでちょっとしたスクリプトを書くならまぁNode.jsで動かすのが素直だと思う。 package.jsonに開発用の依存関係を入れればよいわけだし。 先日は「リポジトリ内の画像ファイルをガーっと処理したい」と思ってディレクトリ走…

GraphQLのSubscriptionを試していてWebSocketが必ずしも要るとは限らないなぁと思うなど

最近GraphQLのSubscriptionを試している。 GraphQLはクエリ言語で、そのスキーマをどう実装するかは自由なわけだけれど、Subscriptionのようなサーバからクライアントへの通知の実装は「WebSocketでしょ! だからWebSocket使えないと厳しいよね」のような感…

GitHub Pagesのカスタムドメイン設定がデプロイのたびに消えていた話

GitHub Pagesのカスタムドメインをブラウザ上(リポジトリ > Settings > Pages)でなんとなーく設定していたところ、記事名の通りデプロイのたびにカスタムドメインの設定が消えて github.io に戻ってしまって「なんでやねん?」となっていた。 なんでかは当…

日本の祝日をAsanaに登録する

みなさん、来週の月曜日(2022-07-18)が祝日だって知ってましたか? 僕は知りませんでした。僕の所属チームには同じように知らない人が数名いました。 するとどうなるか? タスク管理ツール上、祝日に堂々とタスクが配置された状態になります。 これは良く…

LaravelのFilesystem S3アダプタ管理下のオブジェクトをバケット間コピー

Laravelには色んな種類のファイルシステムを操作する便利機能が用意されていて当然その対象にはS3も含まれている。 laravel.com ちょっとS3バケット間でファイルをコピーしたいと思った。 こんなメソッドシグネチャで考える。

ファイルアップロードのパターン整理

Webサービスに何かしらのファイルをアップロードしたい場面は多い。需要がある処理なのでやりようは幾らでもある。 幾らでもあると逆にどうするのがいいのか迷ったりする。 そんなわけでどのようなファイルアップロードの構成があるのか整理しておく。 前提…

Mermaid お試し記事

ここ最近 Mermaid での作図に慣れたいブームが少しだけ起きている。 mermaid-js.github.io のでブログ記事に埋め込むのをお試しする。 当然先人がいるのでパクる。 cartman0.hatenablog.com naosim.hatenablog.jp

phpMyAdminのDockerイメージにBASIC認証を追加する

人は何故BASIC認証を求めてしまうのだろうか? やはり安心のためだろう。 BASIC認証は兎に角お手軽だ。ユーザー名とパスワードの組さえ設定すればそれだけで認証できてしまう。 令和の時代になってもこれ程簡単に設定できる認証はそうそうない。 何となく未…

.NET で Twitter Bot につぶやかせるにあたっての備忘

Twitter APIは迷走していて、v2がリリースされた後もv1.1にしかない機能がまだまだあったり、とりあえずプログラムにつぶやかせるのがまぁまぁ面倒臭かったり、とても難しい。 ので、少し最近触った結果の整理をまとめておく。 登場人物 Bot につぶやかせる…

ブログ記事や登壇スライドの作り方

この記事も含めて気が向いたときにブログ記事を書いたり、機会と気分が合えばIT系の勉強会でLTやもう少し長い登壇をしたりすることがある。 そんな時どんなことを考えて記事やスライドを作っているのか? のメモ。 動機 メモ 裏取り 整形 調整 例

プライベートなドキュメントをホスティングする2つの方法

最近プライベートなドキュメントを開発メンバーが見るのにこれはまぁ便利だと思う方法を2つ知ったり試したりしたのでメモしておく。 ここでいう「プライベートなドキュメント」は、Gitリポジトリで管理しているリソースをHTMLにレンダリングして閲覧する類…

GitHubのEnvironmentsとAzure Static Web Appsを関連付けてみる

GitHubにEnvironmentsという機能があって、環境毎にワークフローのルールを設けたり、認証情報(Secrets)を管理できたりして便利らしい。 が、そういう便利さより単に環境毎のデプロイ情報がリポジトリに表示されるのが良い。 なんか出るだけで楽しい 何か…

.NET Core 3 以降で任意の言語にローカライズする

ASP.NET Core のWebアプリケーションで国際化対応したければこのドキュメントに従えばよい。 docs.microsoft.com アクセスしてきているユーザーの言語向けの表示を行うことができる。 今回、ユーザーの言語でなく任意の言語で表示したかったのだけれど、すん…

まぜるな危険ライブラリ(Serilog と Microsoft.Extensions.Logging の場合)

Serilog と Microsoft.Extensions.Logging をまぜこぜで使っていたらログレベルの設定でちょっと失敗した話。 背景 出来事 対応

Jekyll の Just the Docs テーマのメニューを力業でカスタマイズ

したメモ。 以前 WinHelpをMarkdownにして編集しやすくする - koudenpaのブログ したのだけれど、単にMarkdown変換しただけだと閲覧性がイマイチで、結局 chm 変換したファイルをローカルで眺めていた。 いちいちローカルでファイルを開くのが面倒くさいし、…

Azure Static Web Appsの環境毎にE2Eテストしてみる

Azure Static Web AppsがGAしたようで、とてもうれしい。 直近のマイブームがE2Eテストなので、Static Web Appsの中でも特にいいなと思うGitリポジトリのPull Requestごとの動作環境に対してE2Eとビジュアルテストを仕掛けてみた。 E2Eテストは先日試したCyp…

System.Windows.Forms.ScrollBar をキー入力でスクロールしないようにする

Windows Forms には水平、垂直スクロールバー(HScrollBar, VScrollBar)コントロールがある。これらはフォーカスが当たっている際にテンキーの上下左右を入力するとスクロールする。この動作をなくしてマウス操作時だけスクロールするようにしたい。 すんな…

.NETでShift_JISからUTF-8に変換するNuGetパッケージを作った

VBのソフトをC#に移植していて、ちょいちょいShift_JISのファイルをUTF-8に変換したいことがある。 その都度スニペットをコピペするのも飽きてきたのでパッケージにしてみた。 www.nuget.org Package Description ダサいDescriptionだ。 github.com using Sy…

WinHelpをMarkdownにして編集しやすくする

最近弄っているOSSのヘルプがWinHelpで編集が厳しいので各ページをMarkdownに変換してみた。 WinHelpの構造もよく分かっていないし、特に汎用的な変換ツールにしたりはしていないのだけれど、こんな考え方で変換できるのでは? という事例になるかもしれない…

Blazor WebAssemblyのログ

がどうなってんのか気になったので少し見ていたメモ。 Blazor WebAssemblyのプロジェクトで依存しているDLLで無造作に.AddDebug()してデバッグログを見ていたのだけれど、Blazor WebAssembly上では特にコンソール上に何か出るわけでも、エラーするわけでもな…

MySql.EntityFrameworkCore で ASP.NET Identity

.NET(Entity Framework Core)を使うならSQL Serverを使っておけ、というのが正直なところなのだけれど、MySQLを使ってみたいと思うこともあるだろう。 ので試した。ASP.NETにはASP.NET Identityという認証ライブラリがあって、Webアプリケーション作成時に…

Visual Basic のプログラムを C# に移植してる感想

Visual Basicは.NETではないやつ。 具体的にはVB5から.NET5 Windows Forms。奇しくも同じ5。 趣味でやっている(完遂しなくてもいい)のでめちゃくちゃ場当たり的だし、仕事で今後やることもないだろうから完全な感想。 移植をこんな風に試してる人がいます…

PHP5時代のアプリケーションを docker-compose up した時のメモ

Laravel docker-compose up とかググるとそれっぽい構成が書かれた記事がヒットする。 だがそれでは太古の昔の、たとえばLaravel5のアプリケーションは動作しない。いつだって太古のアプリケーションを動作させたいという需要はあるものだ。最近も2020年のタ…

KUSANAGIがインストールするComposer

KUSANAGI は謳い文句としては高速WordPress向けの仮想マシンイメージなのだけれど、構築済みのLAMP環境としても使える。 PHPアプリケーションのライブラリ管理にはComposerを使うことが多い。KUSANAGIでも既定でComposerがインストールされる。 比較的最近 C…