koudenpaのブログ

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

.NET

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が出力されるのが趣深い)で…

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

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

.NETラボ 勉強会 2021年9月

で喋ってきたので記録しておく。 dotnetlab.connpass.com スライドはこれ。 Blazor WebAssembly と Windows Forms でのロジック共有例 from Koichi Ota www.slideshare.net ここしばらくずっとやってる*1SRC ネタだけれど、.NET 6 がGAするちょっと前に.NET…

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

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

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

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

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

3カ月ほど前に Visual Basic のプログラムを C# に移植してる感想 - koudenpaのブログ を書いた。 このSRC -Simulation RPG Construction-というスーパーロボット大戦ライクなSRPGのC#(.NET)への移植はまだ趣味の時間の過半を使う形で続けている。 リポジ…

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の構造もよく分かっていないし、特に汎用的な変換ツールにしたりはしていないのだけれど、こんな考え方で変換できるのでは? という事例になるかもしれない…

.NETでMIDIファイルの再生にほぼ失敗した

ので出来事として記録しておく。 https://github.com/7474/SRC を弄るうえで避けて通れないのがMIDIファイルの再生なので少し手を付けてみた。できれば移植性のあるコードで再生したいので依存関係に.NET Standard 2しか入っていないっぽいNAudioを使って試…

Blazor WebAssemblyのログ

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

C#でバイト単位でファイルを読んでみる

社内の勉強会でGoのメモリアロケーションの話があって、最後に『チャレンジ問題』があった。 こんなの。 チャレンジ問題 ファイルの内容すべてをバイト列に読み込む関数 ReadFile を (*File).Read などを用いて実装してください ヒント: リアロケーションが…

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。 趣味でやっている(完遂しなくてもいい)のでめちゃくちゃ場当たり的だし、仕事で今後やることもないだろうから完全な感想。 移植をこんな風に試してる人がいます…

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

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

リアルダイスボット完成度80%

ダイスボットを作りはじめた - koudenpaのブログ の続き。 「ダイスロールの様子が録画されていないようだが?」 「録画なんて飾りです」 とは言えない(結果の画像だけだと寂しい。出目が決まる瞬間を見たい)けれど『Twitterをインタフェースにして実際に…

ダイスボットを作りはじめた

昔、少しTRPGをやっていたこともあってサイコロを転がすという行為が好きだ。 記憶にあるごく初期のプログラム体験も掲示板CGIスクリプト*1にサイコロを振る機能を追加した事だ。 今やオンラインでのTRPGプレイは当たり前のもので、それをサポートするダイス…

Twitterのタイムラインを動画にしたいと思ったのでしてみた

のだけれど、とりあえず動画なったところで「こんなもんどう考えても動画編集ツールにデータ入力してレンダリングしてもらった方がいいじゃん」と正気に返ったのでやったことを備忘して終わる。 出来た動画(の一部分)。 youtu.be

Hack Azure! #1 - Azure Serverless でオンライン決済基盤をつくる

に(オンラインで)参加してきたのでメモしておく。 msdevjp.connpass.com ぼちぼち何かイベントに参加したいと思っていたところに、企画の1回目という入りやすく、サーバーレスでの決済というちょっと興味もあるテーマだったので丁度よかった。

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した(つもり)。 ページネートという概念は多量のデ…

WIP Blazor WebAssembly から EasyAuth で認証して Azure Functions でホスティングしているAPIを呼び出したい

のでライブラリを書いている。 github.com ↓の記事を参考にしている。記事は3.0の頃のものなのだけれど、今は3.2のプレビュー中だ。BlazorもASP.NET Coreもちょっとずつ構成(関連NuGetパッケージが細かく分れるなど)が変わっていたりしているのでその差分…

画像がえっちかコンピュータに合議制で判断してもらう

昨今画像が性的だとか話題になっています。どの辺りから性的なのか、えっちなのかは見る人の主観によるところが大きいです。 これに対して、昨今では無限のクラウドの力で画像が性的かは簡単に判定することができます。 それが正しいかは不明ですがブレない…

Blazor Server はウィザードで Azure App Service + SignalR Service にデプロイできてしまった他所感

どうやったのかと所感を書いておく。

Blazor WebAssembly を GitHub Actions で GitHub Pages に発行する

GitHubのみでリポジトリ管理からデプロイ、ホスティングが完結して非常にお手軽だ。

AWS IoT Greengrass備忘2020初春

CDKでのGreengrass管理をしてみた際の備忘。

GitHub Actions で .NET Core の NuGet パッケージを Push した

以前 NuGet パッケージを作った時にはローカルマシンから nuget.org に Push したのだけれど、正直面倒くさいのでリポジトリにPushしたら勝手にパッケージがプッシュされて欲しい。 最近 GitHub で CIサービス? の Actions が使えるようになり、GitHub Pack…

Azure Functions (.NET Core)の DI 事情

Azure Functions に .NET Core の関数? をデプロイするにあたって、DIしたくてしたので周辺事情を書いておく。 必要な情報は案内されているので、それに従って処理すればDIできる。 docs.microsoft.com しかし、DI対象の設定をどう構成するのか? が書かれ…

ASP.NET Core で System.Random を使う

ASP.NET Core (C#)で System.Random を使った際の覚書記事です。 アプリケーションを作っていると乱数を使いたくなる場面は多々ある。各言語では概ね疑似乱数の実装が提供されている。 .NET Core でも System.Random クラスが提供されている。 疑似乱数の…