koudenpaのブログ

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

Tips

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…

OpenCVSharpで動画を処理した時の失敗メモ

先日から作っているダイスボットでは、Raspberry Pi上のAzure IoT Edgeデバイスで動作を処理したかった。 この際、OpenCVで処理すればどうにでもなるだろう+できれば全部C#(.NET)でプログラムを書きたい、と言った理由でOpenCVSharp*1を使用した。 ものは…

MackerelのURL外形監視でAzure App ServiceをAlways on

Microsoft AzureにはApp Serviceという便利なPaaSがあって、趣味でWebアプリケーションを作ったらとりあえずそのFreeプランでホスティングしている。 App ServiceのFreeなど無料や低料金なプランは、一定時間アクセスがないと動作が停止する。アクセスがあっ…

Amazon EFSへのリソース配置をAWS CLI + 踏み台サーバでやってみる

先にAWS Lambdaの関数実行時にEFSをマウントしてみた。その時にはファイルの出力先として使ってみたのだけれど、入力ファイルの配置先としても使えると思う。Lambdaは何かと容量制限があるが、EFSなら容量制限とは無縁だ。Lambda + EFSの記事でも機械学習結…

AWS Lambda上のChromeでHTMLをレンダリングしてS3やEFSに保存した

Twitterのタイムラインを動画にしたいと思ったのでしてみた - koudenpaのブログ からの流れでHTMLをレンダリングして画像を取得することをいくらか試している。 先には.NET Framework、Windowsのローカルマシンで試したので、次はクラウドでと考えてAzure Fu…

Azure App ServiceのFreeやSharedプランでApp Service build serviceのデプロイに失敗した時にしていること

Microsoft AzureのPaaS、Azure App Serviceが好きでよく使っている。 アプリケーションのデプロイにはお手軽なApp Service build serviceを、使うことが多い。簡単な設定をするだけでリポジトリにPushした内容をビルド、デプロイしてくれてとても便利だ。 こ…

Blazor WebAssembly のSSRを試した

Blazor的にはSSRではなくプリレンダリング(Prerendering)と呼ぶらしいけれど、やりたいこと的にはサーバサイドレンダリングの方が通りがいいのではないかと思う。 どうすれば Blazor WebAssembly をプリレンダリングできるのか プリレンダリングするには前…

ページネート? そんなものいいからとりあえず全部よこせよ! Azure SDK for .NET 編

先日AzureのAPIを.NETのSDKから呼び出したのだけれど、ページネートを忘れていてAPIの結果が欠落した。 Fix pagenate by 7474 · Pull Request #2 · 7474/PostAzureCostToMackerelFunction · GitHub でFixした(つもり)。 ページネートという概念は多量のデ…