銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

2020-01-01から1年間の記事一覧

2020年を振り返る

年末にかけて有給を取っていたこともあり、なんとなくプログラミングから離れていたのですが、振り返りは大事ということで振り返っておきたいと思います。 New Relic でのお仕事 昨年4月に転職したので2年目に入ります。徐々に日本法人のお客様も増え、社員…

.NET 5 関連の新機能をまとめてみた

11月の.NET Confでリリースが予定されているされた .NET 5 関連の新機能をできるだけまとめてみました。ASP.NET CoreとEF Coreは除いています。 リリースにあわせていくつか更新しています。 そしてそんな .NET 5に興味のある方はぜひこちらのイベントにご参…

System.Text.JsonやJson.NET で一部だけキーが可変なJSONを処理する

とあるREST APIのエンドポイントが /values/xxx みたいなエンドポイントに対して次のような形式のJSONを返します(実際にはこの3倍くらい属性があり、listの中の配列も多数あります)。XXXで指定した名前の値のリストを取得するというイメージで、この名前のパ…

Microsoft Q# Coding Contest – Summer 2020の復習(5) ユニタリーの識別

Q# DT

今回からは本選の解説をまとめていきます。 codeforces.com 今回は予選のA問題と同じくユニタリー操作を識別する問題A1~A7です。予選問題の解説まとめ記事はこちら。 tech.tanaka733.net

Microsoft Q# Coding Contest – Summer 2020の復習(4) 量子機械学習

Q# DT

Warmupラウンドの最後、D1とD2の量子機械学習のまとめです。 Problem - D1 - Codeforces Problem - D2 - Codeforces

Microsoft Q# Coding Contest – Summer 2020の復習(3) 状態の生成

Q# DT

本日はC1 |01⟩ + |10⟩ + |11⟩状態の生成です。 https://codeforces.com/contest/1356/problem/C

Microsoft Q# Coding Contest – Summer 2020の復習(2) 可逆計算

Q# DT

前回のA1~A5 ユニタリーの識別に引き続き、今回はB1,B2の可逆計算(Reversible computing)のおさらいです。 可逆計算をWikipediaで見てみると次のように書いています。 可逆計算(かぎゃくけいさん、英: Reversible computing)とは、可逆な、すなわち計算…

Microsoft Q# Coding Contest – Summer 2020の復習(1) ユニタリーの識別

Q# DT

1か月以上前ですが、Microsoft Q# Coding Contest がSummer 2020として今年も行われました。復習をまとめておきたいと思います。まずは、warmupのA問題、ユニタリーの識別です。公式の解説記事はこちらです。 codeforces.com A1からA5の問題は与えられたユニ…

Microsoft MVPを再受賞しました

Microsoft MVPを再受賞しました。最近は新規受賞者は毎月審査して発表、継続受賞者は1年に一度7月1日に発表となっています。 たしかここ2年ほどAzureカテゴリでの受賞だったのですが、今年はAzureとDeveloper Technologiesの2つのカテゴリで受賞となりました…

Q#プロジェクトでC#のクラスが不要になりました

Q#

しばらくQ#の記事を書いていなかったのですが、最近のQ#の更新でC#のクラスが不要になっていたので久しぶりに記事を書きたいと思います。 少し古い記事ですが、Q#プロジェクトというのは、プロジェクトとしては.NET Coreのプロジェクトで、エントリポイント…

Visual Studio Live Shareを使ってオンラインハンズオンをやってみた

C#

本記事はMicrosoft MVPブログ企画の記事として投稿しています。その他の記事はこちらからご覧ください。 昨日、オンラインでTeamsとVisual Studio Live Shareを使ったオンラインハンズオンを開催しました。 csharp-tokyo.connpass.com Visual Studio Live Sh…

C# でUSB-IO2.0 (AKI)を操作する (1) LED点灯

さて準備ができたので、C#からLEDを点灯させたいと思います。 tech.tanaka733.net VBですがサンプルコードがあるのでそれを参考にできるのと、こちらに仕様があります。 km2net.com がHIDについてあまり詳しくない私のような場合はPythonでの操作について書…

C# でUSB-IO2.0 (AKI)を操作する (0) 準備

以前、Raspberry PiでLEDを光らせたことがあったのですが、意外と周辺機器をつなぐのにお金がかかるのと、デバイス側にプログラム仕込みたいというよりPC側で制御したいという気持ちが強かったので、USBデバイスとして制御できるものを探していました。する…

TeamsとSlackとVisual Studio Live ShareによるASP.NET Coreオンラインハンズオンの参加準備

この記事は、今度予定しているC# Tokyoでのオンラインハンズオンの準備を説明しています。C# TokyoではSlackをコミュニケーションの中心にしているので、SlackのチャットとTeamsのオンライン会議を分けていますが、ほかのケースではどちらかに統一したりする…

ISUCON9の参考実装をC# (ASP.NET Core 3.1)に書き換えてみた

ISUCONは説明不要の一大イベントだと思います。簡単にいうと、お題に従いより高速なWebアプリケーションを構築するコンテストです。昨年行われたISUCON9の本戦問題についてはこちらに記事があります。 isucon.net さて、このISUCON9、参加者は予め用意されて…

.NET Standard の HttpClientで送信時のBodyをgzip圧縮したい

HttpClientでPOSTやPUTのような送信を行う場合に、Bodyで送信するコンテンツをGZip圧縮したいと思ったのですが、意外とすぐに使えるサンプルコードが見当たりませんでした。 docs.microsoft.com とりあえず動くコードは書けたので、メモしておきたいと思いま…

NupkgファイルをGiHub PackageにPublishするGitHub Actionを作りました

github.com というGitHub Actionを公開しました。 作った背景ですが、まずGitHub Actionsの中でGitHub PackageにNuGetパッケージを公開する手順は、Windows限定で昨日の記事に書きました。 tech.tanaka733.net 公開リポジトリならWindowsでも無料なので気に…

NupkgファイルをGiHub PackageにPublishするGitHub Actionを作りました

github.com というGitHub Actionを公開しました。 作った背景ですが、まずGitHub Actionsの中でGitHub PackageにNuGetパッケージを公開する手順は、Windows限定で昨日の記事に書きました。 tech.tanaka733.net 公開リポジトリならWindowsでも無料なので気に…

NupkgファイルをGiHub PackageにPublishするGitHub Actionを作りました

github.com というGitHub Actionを公開しました。 作った背景ですが、まずGitHub Actionsの中でGitHub PackageにNuGetパッケージを公開する手順は、Windows限定で昨日の記事に書きました。 tech.tanaka733.net 公開リポジトリならWindowsでも無料なので気に…

GitHub Actionsで作成したNuGetパッケージをGitHub Packagesに公開する

久しぶりにNuGetパッケージを公開したくなったのですが、最近だとGitHubで公開しているのならGitHub Actionsでビルドするのが簡単なようです。 tech.guitarrapc.com 最終的には作成したパッケージは nuget.org に公開するのですが、いったんprivateなNuGetリ…

AZ-301に合格して、Azure Solutions Architect Expertを取得しました

先日、AZ-300に合格しました。 tech.tanaka733.net かなりぎりぎりで合格したので、もっと準備してからAZ-301を受けるつもりだったのですが、AZ-300と301がAZ-303と304に更新されるニュースがありその時点ではAZ-300とAZ-304の組み合わせでOKか不明だったの…

ASP.NET Core 3 Web APIで例外をスローして、指定したステータスのレスポンスを返す

ASP.NET Core Web APIでアプリケーションロジック内では例外を投げておいて、共通処理として例外をキャッチして例外に応じたステータスコードとメッセージのレスポンスを返したい場合があるかと思います。ASP.NET Framework やCore 2.2まであったHttpRespons…

DateTimeとTimeSpanの書式文字列が違うという話

知ってればそれだけなのですが、System.DateTimeとSystem.TimeSpanでは指定できる書式文字列が異なります。知らずによくわからないエラーを出して一瞬困りました。 たとえば、DateTimeオブジェクトで時間のところで HH:mm:ss という形式で出力したい場合は次…

.NET Core で暗号論的疑似乱数生成器を使ってソルトを作成し、PBKDF2でパスワードのハッシュ化を試みる

この時代、自前でパスワードの管理などしたくはないのですが、しないといけないケースもあるでしょう。最低限やらないといけないこととしては、ソルト生成した上でハッシュ化したパスワードを保存することではないでしょうか。.NET Coreでこれらの処理を行う…

.NET CoreでUTCのISO8601形式の時刻文字列から指定のタイムゾーンに変換する

例えば 2020-03-23T12:00:00.000Z というUTCでのISO8601形式の文字列をパースしたうえで、指定したタイムゾーンでの時間に変換したいとします。2020-03-23T12:00:00.000Zであれば、日本標準時(UTC+9)で2020年3月23日21時です。これは次のようなコードで処理…

.NET CoreでWindowsとLinuxでタイムゾーンを識別するID表記が異なるという話

最近、ASP.NET CoreでTimeZoneまわりのコード書いてて遭遇しました。以前このブログ読んだ記憶はあるのですが、すっかり忘れていました。そして、.NET Core 3でもそのままなんだなというのがわかりました。 devblogs.microsoft.com .NET Coreで特定のTimeZon…

AZ-300 Microsoft Azure Architect Technologies に合格しました

Ignite The Tourに参加するといくつかの検定試験の中から一つ無料で受けられます。 docs.microsoft.com というわけで時間がある冬休みに受験を思い立ち、1週間ほど準備して合格しました*1。どんな準備をしたかについてメモしておきます。 *1:得点としてはか…