ファイルに保存するILoggerの拡張のやつ(?)作りました
作りました
.NET Core 3.0だしHostBuilder
とかあるから、一応ね
以下ぽえむ
私は社会人になってから真面目にプログラミングを行うようになったので、ログの重要性などもそこで教わりました
その時のエース的プログラマーな方が作ったログ用APIはかなり良くできていて、今考えてもすごいものを与えられていたんだなーと思います
リアルタイムに出るUIがあって色も付く (今回関係ないね)
printfみたいな感じで使える (今回関係ないね)
ファイルがサイズでローテーションする (Windows NTで1MByte超えるテキストファイル開くと辛い!)
とか初心者な私はただ関心していました
さて、そんなAPIを使用して出力したログに付き合うこと?年、ファイルに保存するタイプのログはこのAPIライクなものじゃないと体が満足してくれなくなりました。三つ子の魂百までとはよく言ったものです
ETW使ってもファイル保存部分は同じような形式で保存するようにしてましたし、今回コンソールアプリでMicrosoft.Extensions.Logging
を使うことになったのでこいつでも同じですね
皆さんも自分にピッタリくるログファイルの形式があるとおもいます。GitHubのソースはかなり単純だと思うのでこぴって自分だけのログファイルを作ってみてはいかがでしょうか?
.NET Core 3.0 にしたらWindowsのバージョンが変わった話
釣り気味のタイトルです
無事に .NET Core 3.0 がリリースされたので早速使ってみましょう
コード
Console.WriteLine("Environment.Version\t" + Environment.Version); Console.WriteLine("RuntimeInformation.FrameworkDescription\t" + RuntimeInformation.FrameworkDescription); Console.WriteLine("Environment.OSVersion\t" + Environment.OSVersion);
結果
// .NET Core 2.2 Environment.Version 4.0.30319.42000 RuntimeInformation.FrameworkDescription .NET Core 4.6.27817.03 Environment.OSVersion Microsoft Windows NT 10.0.18362.0 // .NET Core 3.0 Environment.Version 3.0.0 RuntimeInformation.FrameworkDescription .NET Core 3.0.0 Environment.OSVersion Microsoft Windows NT 6.2.9200.0
Windowsのバージョン!!!
これは事前にアナウンスされているBreaking Changesの一つだったりします
こんなのチェックしてないよ!!!
追記(2019/09/26 16:53)
上記2個めのリンクは違う内容だったようです。 詳しくはコメント欄みてください。 本現象の解説まで書いていただいてあります。 コメント必読です。 なんなら本文読まずにコメントだけ読んでください
困ること
例えば Windows 10 1703 で追加された機能を使いたい時なんかは
var version = Environment.OSVersion.Version; if (version.Major > 10 || version.Major == 10 && version.Build >= 15063) { // Windows 10 1703 以降の機能 }
なんて書いたりするわけで、これをそのまま .NET Core 3.0 に持ってくるとメジャーバージョンが6になって if の中に入ってくれなくなります
とりあえず
private Version GetOSVersion() { if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) return Environment.OSVersion.Version; // Windows以外はしらないよ var osDescription = RuntimeInformation.OSDescription.Replace("Microsoft", "").Replace("Windows", "").Trim(); var descriptions = osDescription.Split("."); if (descriptions.Length < 3) return Environment.OSVersion.Version; if (!int.TryParse(descriptions[0], out var major) || !int.TryParse(descriptions[1], out var minor) || !int.TryParse(descriptions[2], out var build)) return Environment.OSVersion.Version; return new Version(major, minor, build); } { var version = GetOSVersion(); if (version.Major > 10 || version.Major == 10 && version.Build >= 15063) //・・・ }
みたいな感じでお茶を濁しましょう、これがいいことなのか悪いことなのかは知りません
こんな感じでお茶を濁して .NET Core 3.0 用を作ったライブラリRxSocket
公開中ですよ
.NET Core 3.0 ではSocketのKeepAliveのリトライ回数が変更できちゃう!!
ユピテルスイング練習機用 iOS/Androidアプリ(非公式)をつくりました
ました。仕事で作ったことはあったけど、個人でiOS/Androidアプリ公開したのは初めてです
apps.apple.com何をするソフトかというと、ユピテル社が発売しているGST7-BLEというやつが送ってくるデータをクラウドに送る、ことだけが目的のソフトです
作った経緯
GST-7 BLEとは?
私は初心者ゴルファー歴15年くらいのベテラン初心者なんですが、ゴルフって自分のステータスをいろいろと数値化できるところが魅力の一つだと思います
ゴルフやっていない人でも中継を見たことがある人は結構いると思いますが、たまに選手後方のカメラでボールの軌跡が出たりヘッドスピード等の数値が出たりしてませんか?(渋野選手メジャー制覇おめでとう)
あれは大体Trackmanという軍事用に使用されていたドップラーレーダー式弾道追尾システムで測定しています https://ja.wikipedia.org/wiki/トラックマン_(ゴルフ用具)
ゴルフやっている人はみんなあれが欲しいんですが、2~3百万円する代物なので個人で買うにはだいぶハードルが高すぎです
ということで、一般人にも手の届く測定器として人気があるのがYupiteru GOLF GST-7 BLEです
ドラコン選手も愛用しているとかしていないとか。とにかくコスパがいい代物です。Amazonの評価も高いです、納得です
公式アプリ
GST-7 BLEのBLEはBluetooth Low Energyで、BLEでスマホの公式アプリにデータを飛ばすことができます。BLEがいらない人はGST-5という一世代前のものがあるのでそっちを買うはずです。ということでGST-7を買った人は全員がこの公式アプリを入れて試すはずです
各OSのストアをのぞいてみると・・・
どちらも評価は低く求めているものは同じです
- アプリの表示が貧弱・編集できない
- PCにデータを転送したい場合SDカードを経由しなければならない
私も使ってみて同じことを思いました
ということで作ってみた
解説
機能
- データアップロード
最初に書きましたがGST-7 BLEのデータをクラウドに上げるのが目的です。上げてしまえばあとはデータの加工をするのもダウンロードしてExcelで管理するのもしたい人が好きにすればいいので
swingdataviewer.azurewebsites.net
- オーバーレイ録画
プロの試合のように録画してデータをオーバーレイできたらいいかなーという出来心で作ったもの。開発期間のほとんどはこの機能の実現に使った、すごく苦労した、そしてそんなに使わない
裏側
Azureです。Azure大好き人間なので
スマホからのデータ受信はFunctions、データの表示部はWeb Appsでやってます。ふつうだな
データを保存して表示してダウンロードできればいいので実装もそんな感じ
Xamarin.Formsを使ってiOS/Androidどっちでも動くものを目指しています
私はiPhoneユーザーなのでiOS版優先です。Android版は実機を持っていないので動作確認も怪しい(おっと欲しいものリストに何かが・・)
- プロジェクト
Webやデザインに明るい方がいたらIssueやプルリクが欲しいので(ある程度動くようになったので飽きた)
スマホ側のソースはこのまま公開していいのかよくわかってないのでとりあえずIgnore
欠点
ゴルフをやっていてGST-7 BLEを持っていてGitHubのアカウントを持っている人が一体何人いるんだろうか・・・