tech.guitarrapc.cóm

Technical updates

PowerShell でsudo っぽいものを内蔵した関数を作る

時々思い出したようにPowerShell の記事を書いてみます。 スクリプトでよくあるのが、sudo で実行時に権限があるスクリプトの許可をしたいというケースです。 Windows は組み込みsudo がないので面倒でしたが、現状なら scoop で sudo をインストールすると…

Azure DevOps の Template を利用してビルドする

Azure DevOps Pipeline で何度も同じ処理をYAMLに書いていた場合、Templateを使うとまとめられて便利になります。 実際にビルドが多く重複した定義の多いプロジェクトに適用したところ、表向き300行 (template 含めると100行) 減らせて見通しは良くなりまし…

DELL PC のスペックに対するコストパフォーマンスを考える

相談されたので少し考えていたことのメモを書いておきます。 ネットがメイン、少し絵を書いたりするぐらいの大多数のユーザーに取っては、DELLのこのモデルはコストパフォーマンスはすごくいいと感じます。 残念ながら、わたしはUnity使ってHoloLens やVR開…

AWS Secret Manager を使ってASP.NET Core のシークレット情報を扱う

.NET Core で AWS において機微情報を扱うときに、AWS Secret Manager や System Manager の Parameter Store が候補に上がります。 ここでは、Secret Manager を使った ASP.NET Core での組み込みについて書いておきます。

非ASP.NET Coreなプロジェクトで UserSecretsを使うためのVisual Studio 拡張を作りました

非ASP.NET Core、特にGeneric Host で開発するなら必要になるVS拡張を公開していたのを忘れていました。*1 今回は、GenericHost など非ASP.NET Coreなプロジェクトでも、ASP.NET Core なプロジェクトにある Manage UserSecrets (ユーザーシークレットの管理)…

CircleCI CLI を Windows でも利用する

circleci の cliを使うとconfigやorbs などローカルでの操作がはかどります。 この CircleCI Local CLI、公式ページには macOS と Linux の記述しかありませんが Windows でも利用してみましょう。 circleci.com

.NET Core でgitなどSCM情報をCIで埋め込んでアプリケーションに表示する方法と選択

開発中、リリースのいずれにおいても「今どのバージョンなのか」という情報は重要な情報です。 とはいえ、実際に埋め込みたいのはバージョンというより「ソースコード」とくに「コミット」と連動する情報、加えて「ビルド」と紐づく情報もほしいでしょう。 …

.NET Core で AssemblyInfo.cs の生成を制御する

C# のアセンブリ情報は AssemblyInfo.cs によって制御されています。 .NET Core でいくぶん取り扱いが変わったものの基本は一緒です。 たびたび忘れるので、どのように取り扱いが変わったのか制御方法をメモしておきます。

SQL Server Docker Image のCU12以降でDBがクラッシュする件

SQL Serverは Dockerで動かせるので、いちいちSQL Server をインストールせずともローカル開発をスムーズに回すことができます。 hub.docker.com そんな SQL Server on Docker ですが、macOS ではホストのDBファイルをボリュームマウントができない制約があ…

.NET Core Global Tools のインストールとアップグレードを状態に応じて行う

.NET Core Global Tools は.NET Core SDKがインストールされている環境でdotnet系cliツールをlist/install/upgrade/uninstall を行う仕組みです。 docs.microsoft.com この仕組みがでたことで、少なくとも dotnet core製のCLIツールの配布はnugetを経由する…

AzureDevOpsPipeline/Azure DevOps Pipeline で docker build と Azure Container Repository への push を行う

Azure Pipeline を使っているとタスクによせたくなるのですが、あんまりそういうのもアレなのでほどほどにというのはもうちょっと言われてもいい気がします。 Docker はその最たる例で コマンドで3行で済むようなものがDockerタスクを使うといたずらに時間を…

CircleCI のOrb をPull Request を通じて学ぶ

エンジニア同士で話していると、CIどうしよう、今何がいいかなぁという話にたびたびなります。 CIサービスは複数ありますが、サーバーサイドビルドでSaaS 型CI なら CircleCI が今のところいいい感じです。(2.1を前提とする) circleci.com あるいはGitHub Ac…

Google Analytics やGoogle Adsを使っていることの対応

このサイトでは、Google Analytics を使っています。これは、アクセスに対してどういう動きをしているのか、どんな興味を持たれているのかのサイトの改善を意図しています。あとはGoogle Analyticsがどんどん変化するので手元で確認できるサイトを持っておき…

AzureFunctions におけるStorageTableBindingの選択

Azureには、Storage Table という機能があり単純なテーブル形式でデータが管理できます。 C# のコード的にはTableEntity を継承してデータを表現し、メソッドを組み立ててCRUDを実現できます。 さて、このStorage TableをWebJobs 並びにその実装の一つである…

Inboxからのメールクライアント移行

Inbox by Gmail が2019年3月31日で終わりますというアナウンスが流れて半年、ついに4/1です。 じつはまだログインできますがじきにできなくなるでしょう。(4/1 23:00 9 tile からは Inboxが消えました) メールクライアントをInboxから何に乗り換えたかについ…

Deployment Groupを用いてManagedにVMへのデプロイを行う

現状、サーバーサイドの多くはコンテナで動かすことが可能です。そのため、VMに直接アプリケーションをデプロイする機会はかなり減りました。最高ですね。しかし、UWPをはじめとして一定の要件下においてはコンテナ対応が技術的に難しく、VMへのデプロイをせ…

MSIを使ったStorage Account(Blob, Queue) の認証を使ってQueueの監視を行う

Azure の Storage Account アクセスといえばConnection String ですが、Managed Service Identity (MSI) による AzureAD認証が可能です。(2019/3/25 に GAしたはず.... あれ?) ここでは、Storage Account ではなく MSI を使ったAzure Functions からのアクセ…

Azure Storage Queue を Application Insightsで監視する

あるあるな Queue の監視ですが、自前でやらなきゃいけないなら Serverless でぺちって任せるのは楽ちんですよ、というのはよくあるパターンです。 実際にQueue Storage のモニタリングをしてみましょう。

Slotを用いたAppService のStaging環境とAzureDevOps PipelineのリリースによるBlueGreen Deployment

Azure の App Service には Slotがあります。 Slotはただ利用してもそれなりにうれしいのですが、Terraform での構成とAzure DevOps の リリースパイプラインでの展開を行えるようにすることで、「CI/CD による App Service の Slot による展開前のStaging環…

PowerShell 6.0 のImport-Csv に W3C 拡張ログ ファイル形式のサポートを追加 #2482 について調べてみた

これを調べていたのは本を書いていたときなので、そろそろ一年経つのですがお蔵入りの前に出しておきます。 PowerShell 6.0 において、W3C 拡張ログが Import-Csv で読み込み可能になったという内容でリリースノートが出ているのですがその内容について。 do…

base64urlを扱えるNuGetライラブラリと.NET Core Global Toolを作りました(MicroBatchFrameworkも使ったよ)

最近 JWT を取り扱っているのですが、仕様上base64url フォーマットを頻繁に利用します。 C# で base64 というと、Convert.FromBase64String あたりですが、base64url にしてくれるような気の利いた仕組みはなく、入力がbase64url仕様に沿ってないとすぐに例…

Visual Studio 2019 で使っている拡張機能

以前 VS2017 で使っている拡張機能について書きました。 tech.guitarrapc.com VS2019 もRCとなり、いよいよリリースが近づいてきたにつれ、各種拡張機能もサポート対応が進んでいます。 一部はまだ対応されていないものの、今のところいい感じで使えつつある…

git submodule と git subtree から見る外部リポジトリの取り扱い

Git

先日、外部のgitリポジトリを参照しつつ開発を進めたい時に、改めて今ならどのようにやるといいのか調査と検証を行いました。 開発においてシンプルさは重要です。そのため、利用している言語やフレームワークで標準提供されたパッケージシステムを使うのは…

Windows でエクスプローラーを使って .gitconfig ファイルを作る

Windows のエクスプローラーで .gitignore というファイル名を作ろうとするとエラーが出ます。 .gitconfig という名前のファイルを作ろうとするとエラー これをコマンドラインを使わず作る簡単な方法を紹介します。

Programming 向け Awesome Fonts の選択

特に Windows 環境で感じるのですが、プログラミングでフォントを選ぶのは重要だと思います。 今回、ふとした思い立ちでフォントを見直してみました。

Sharplab のMemoryGraph を使ってメモリの状態を確認する

C#

以前 TryRoslyn と言われてたサービスですが、今は Sharplab という名になっています。 このサービスを使うと、コードがILやネイティブコードにどのようにコンパイルされるか確認したり、実行したりオブジェクトのメモリ状態を確認できます。 例えば次の図は…

.NET CoreのGeneric Host で Windows Service を作成する

.NET Framework で Windows Service を作るときは、Windows Service のために地道に実装するのは大変.... なので、TopShelf を使うことが定番でした。以前 Nancy を Windows Service でホストする記事を書いたこともあります。 tech.guitarrapc.com では、.N…

.NET Standard や .NET Core におけるAzureのStorage関連nugetパッケージの選択

Azure の C# 向け Storage SDK は nuget でサクッとアプリケーションに追加できます。 しかし、現時点ではWindowsAzure.Storage パッケージとMicrosoft.Azure.Storage.Xxxx パッケージに分かれており、お互いが干渉合うために混在するとAssembly Bindingsを…

2018年に使ったサービス

2017年から2018年でどうなったのか見てみます。昨年よりも少し細かく書きました。 tech.guitarrapc.com 基本方針は変わりません。 有料・無料で同一程度のサービスがある場合無料のものを選択する 有料のサービスはサブスクリプションで、月ベースでのみ使う…

.NET Core の Generic Host で WebJobs を利用する

Generic Host を使った場合でも、これまで .NET Core で書いてきた処理は問題なく組み込むことができます。 最近 Azure WebJobs を Generic Host で使う機会があったので見てみましょう。 ※ 社内向けブログの転載なのでシリーズ化します。