koudenpaのブログ

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

Tips

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

転載: Azureを個人で(あんまりお金を払わずに)使うには?

これは2020-03-11に株式会社はてな社内の共有スペースに書かれた内容の転載です。 昼会日誌の後東京地下(id:koudenpa は東京オフィスの地下で仕事をしている)でAzureを個人で(あんまりお金を払わずに)使うには? のような雑談をしていた。 結論から言う…

Redashの初期設定が変わっていて???状態だった話

追記:変わっていたのではなく、参照するAMIがカスタマイズされているものなだけだった。 https://redash.io/help/open-source/setup の手順を見て、 https://docs.bitnami.com/aws/faq/get-started/find-credentials/ のAMIを動かしている。アホか? 理由が…

IaCしていないAzure Rsource GroupのARMテンプレートの履歴をBitbucket Pipelinesで取る

履歴を取りたいリソースグループにデプロイしているアプリケーションはBitbucketでリポジトリ管理していることに気が付いてしまった。

IaCしていないAzure Rsource GroupのARMテンプレートの履歴をGitHub Actionsで取る

エクスポートしたテンプレートの履歴を取っておけば最低限変更を見られるようになるのでは? と思ったので試してみた。

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 クラスが提供されている。 疑似乱数の…

リソース名を付ける時の名前長制限への対応

最近公私でいくつかリソース名の長さ制限に抵触する例が発生して面白かった。 ここでいうリソース名は、自分で長さの制御ができない接続先システムで一意にしたい名前だ。 一意な名前の作り方は幾つもあるけれど、以下のような場合が多いだろうか。 元々一意…

Bitbucket Pipelines の Pipes で Azure Blob Storage の静的Webサイトにファイルをコピーする

昨今、静的なWebサイトのホスティングは簡便化が著しく、GitHub PagesのようにGitリポジトリがその機能を提供していたり、クラウドサービスならオブジェクトストレージ+CDNで構成すると安価かつ高速なファイル配信を行えたりする。 Microsoft Azureでこのオ…

Nginx で /.well-known 配下をBasic認証不要にする

開発環境などで雑にBasic認証をかけたい場面がある。そうした環境で特定のパスは認証したくない場合がある。例えば、Let's Encryptでの証明書発行・更新のドメイン検証のリクエストだ。 Nginxの場合、認証の構成によるけれど、Basic認証のみを行っているよう…

ASP.NET Core の ConfigurationBuilder の構成順に気を付ける

ASP.NET Core では ConfigurationBuilder を使用してアプリケーションの設定を構成する。 ただ、あまりこれを自分で呼び出すことはなく、大体はデフォルト構成で済んでしまう。 その場合はいい感じに構成される。 特別な事情があって自分で構成する場合は、…

Swagger で広がるような気がする Mackerel の世界

元々はよい感じに試行を行って『Swagger で広がる Mackerel の世界』のような景気の良いタイトルにしようと思ったのですが、なかなか辛みもあったので弱気なタイトルになりました。本記事は Mackerel Advent Calendar 2018 の4日目の記事です。 さて、Macker…

閉じたアラートも取れるようになったMackerelのAPIで勤怠を得んと欲す

月末ですね。 Mackerelアドベントカレンダーが明日から始まりますが、この試行は月末に価値があるので自称0日目の記事として書きます。 さて、みなさん、勤怠の記録は毎日つけていますか? 自分はまぁ、言わぬが華です。 Google MapのLogで毎日何時頃にオフ…

Entity Framework Core 2.0 でASP.NET Core起動時にマイグレーションする

こんな感じの Program.cs にすることでとりあえず実現できた。 ただ、この手法はシングルインスタンスのアプリケーションでの適用に限定しておいた方が良さそうだ。 class Program { public static void Main(string[] args) { var host = BuildWebHost(args…

Entity Framework Core 2.0 で CreatedAt UpdatedAt

自分はORMではS2JDBCの洗礼を浴びていて、静的な型がついているEntityをRDBにMappingしてくれるORMが好きだ。 最近ではEntity Framework Coreが良くて、ちょっと前から使っているシステムがある。 唐突にそれでやっている工夫を書きたくなったので書く。 タ…

OpenCvSharp を Azure Functions で使用する際のDLLロード

あるいは、何かしらのNugetパッケージが他の依存DLLをロードや、単に関数内でローカルファイルを読み込みたい場合の注意点をメモする。