IQ49

IT業界の感想

パソコン新しくしたわ

用途はプログラミングとゲーム
ゲームはFHD画質で遊ぶ予定
あとは画像生成AI

パーツ一覧

部品 名前 金額
CPU Ryzen 5 9600X 54,800
CPUクーラー DeepCool AK400 3,003
マザボ ASUS TUF GAMING B650M-PLUS 20,057
グラボ ASUS DUAL-RTX4070S-O12G-EVO 94,800
メモリ CFD W5U5600CS-16G 2枚組 11,830
電源 玄人志向 KRPW-GA850W 10,717
SSD WD Black SN770 2TB 23,400
ケース 余ってたやつ
OS 余ってたやつ

合計 218,607

CPU

新型だから長く使えると期待して購入
ワットパフォーマンスに優れたZen5世代のCPU
強みは、Zen4世代と比較した場合のシングルスレッド性能の高さ
ゲーム用途だと6コアもあれば十分なので9700Xは見送り
でも同じ位の値段なら7800X3D買ったほうがゲーミングパフォーマンス良い
値段を抑えるなら7600Xで十分
たけーよ
完全に趣味
半年後に価格落ちてるんだろうな

CPUクーラー

CPUの発熱は40Wくらいでしょ、安いCPUクーラーで十分
Zen4やZen5は、CPUアチアチを前提に作られているからなんか動いてりゃいいのでは

マザボ

筐体が小さいのが好きなのでMicroATXサイズを採用
チップセットはB650を採用
X870、B650EはPCIe5が付いてるけど、当面の間その性能が発揮されることはないと見込んで採用見送り
マザボ自体はVRMフェーズ数 12 + 2で大体のCPUは動作するはず
ただしCPUがあんま消費電力使わないのでオーバースペック
次世代、次々世代も使い回せることを期待

グラボ

NVIDIAのSUPER表記を信じた
4070ti suoer以上は分厚すぎて、MicroATXマザボで組めなさそうなので見送り
4090とか分厚すぎて人間が扱うレベルじゃねえ
FHDなら4070SUPERで十分以上でしょ

メモリ

AMDの9000シリーズはメモリの最大定格クロックが5600らしい
AMAZONで安かったので購入
動けばいいでしょ
安いのがなかった場合は、crucialのメモリを買おうとしていた

電源

AMAZONで安かったので購入
600Wのやつとか余ってるけど古くなってきたし買い替え

SSD

ベーシックな感じのやつを購入
以前はサムスン製一択だったけど、どこのメーカーも性能同じくらいになってきたので、乗り換えます
というか性能同じくらいなのにサムスン製のが高い
PCIe Gen5のSSDで低発熱のが発売されたらそっちに切り替えたい
プログラミング関連、意外と容量使うから2TBがいいんだ

組み立て

組み立てました
動きません😇
マザボDRAMランプが光りっぱなしなんだわ
エラー表記ではメモリが悪いということ
メモリ差し直しやスロット変更して一枚のみで動作といろいろパターン変えて動作させても状況変わらず
CMOSクリア、BIOS更新をしても状況変わらず
マザボの公式サイト見に行ったけど9600XはBIOSどのバージョンでも動くって言ってる
電源を変更しても当然状況変わらず
マザボとメモリの相性問題かと思い crucial DDR5-6000(17,700円)を追加購入
メモリ変更で動くかと思いきや、相変わらずDRAMランプ光りっぱなし😇
マザボかCPUの初期不良かと思って持ち運びしやすいCPUだけ購入店に持っていって見てもらったところ、CPUはこわれていないことが判明
じゃあマザボ買い替えかなと思ったが最後ヤケクソになってCPUセットし直して、メモリ4スロ64GB差して、電源を別の600W電源にして電源つけて10分くらい放置すると一瞬だけBIOSっぽいのが表示されるように
マザボのランプがチカチカしてたけど、更にしばらく放置していると無事BIOS起動
なんだったんだよ一体、メモリ読み込みに時間がかかっていただけなのだろうか
結局電源は、850W電源、メモリは16GB×2で運用してる
他のマザボ買おうと思ってたけど買わずにすんで良かったあ

なぜ俺のASP.Net CoreアプリはIISで動かないのか

Q なぜ俺のASP.Net CoreアプリはIISで動かないのか
A モジュールが足りないから

じゃけんモジュール入れましょうね。
どのモジュールを入れたらいいかは公式に書いてある。

docs.microsoft.com

以下のサイトからWindows Hosting Bundle Installerをダウンロードしてサーバにインストールすればすぐ終わる。簡単。インストールしたらIIS自身を再起動してモジュール機能のページにAsp.Net Coreが増えてればOK。

dotnet.microsoft.com

ではなぜ動かなくなるかというとWindows Hosting Bundle Installerを使わずに各ランタイムを個別に入れようとしてミスるから。

ホスティング システムに .NET Core ホスティング バンドルをインストールします。 このバンドルをインストールすることで、.NET Core ランタイム、.NET Core ライブラリ、ASP.NET Core モジュールがインストールされます。 このモジュールでは、ASP.NET Core アプリが IIS の背後で実行できるようになります。

検索方法によっては以下のサイトのようなランタイムを個別にインストールするサイトが出てきてモジュールのインストール忘れが発生する。

dotnet.microsoft.com

ODP.Net CoreでTNS_ADMINを指定する

環境
.Net Core 3.1
Oracle.ManagedDataAccess.Core 2.19.70

.Net Frameworkではapp.configでTNS_ADMINを設定することで接続文字列のDataSourceにtnsnames.oraで設定したデータソース名を用いることができた。.Net Core版ではこれができなくなっている。
代替手段として用意されているのは.NET構成APIを用いる方法だ。OracleConnectionを生成する前にOracleConfiguration.TnsAdminにtnsnames.oraが配置されているフォルダを指定すればよい。
TnsAdminに設定する値は自力でappSettings.jsonから引っ張ってきてどうぞ。

OracleConfiguration.TnsAdmin = "C:\app\NetWork\Admin"; // tnsnames.oraが配置されているフォルダ

orclCon = new OracleConnection("user id=hr; password=<password>; data source=orclpdb");
orclCon.Open();

詳細は公式サイトに書かれている。

docs.oracle.com

またtnsnames.oraは以下の優先順位で検索されるらしい。
1. OracleConfiguration.TnsAdminプロパティで設定されたディレクト
2. 実行中ODP.NET Coreアセンブリディレクト
3. 現行作業ディレクト

.Net Coreのlog4netでロガー名を指定してロガーを生成するには

環境
.Net Core 3.1
log4net 2.0.8

.Net Core対応でlog4netをnugetから入れたときに気がつくのはロガー名だけを指定してロガーを生成するメソッドが無いということだ。.Net Framework版だとロガー名指定でロガーを生成できてたのでどうやっていいかを調べた。
.Net Core版では以下のように書くことでロガー名でロガーを生成できる。ここではMyLoggerというロガー名を指定している。
現場からは以上です。

ILog logger = LogManager .GetLogger(Assembly.GetExecutingAssembly(), "MyLogger");

stackoverflow.com

.NET Core 汎用ホストの環境変数の接頭辞はなにか

.Net Core汎用ホストの環境変数の接頭辞は「DOTNET_」である。環境によって処理を切り替えたいときの環境変数は「DOTNET_ENVIRONMENT」となる。
以上!

github.com

ところで「generic host environment prefix」とかで調べても情報全然出てこないんだが使うの難しすぎでは。

Asp.Net CoreでIISに30MB以上のファイルをアップロードする

30MBと言ったが正確には30000000バイトだ。

環境

.Net Core 3.1

手順

まずweb.configにrequestLimitsを追加する。maxAllowedContentLengthに指定した数が最大アップロード容量だ。
Asp.Net Coreのテンプレートにはweb.configが初期は存在しないから無いなら自分で作ってどうぞ。locationタグが漏れないよう注意。
Web.configじゃなくてIISの最大アップロードサイズ変更でいいかもしれんが試してないので知らん。

web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <security>
        <requestFiltering>
          <!-- Handle requests up to 1 GB -->
          <requestLimits maxAllowedContentLength="1073741824" />
        </requestFiltering>
      </security>
    </system.webServer>
  </location>
</configuration>

次にStartup.csでコンフィグ設定している箇所にIISServerOptionsとFormOptionsの処理を追加する。

・Startup.csから抜粋

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            
            services.Configure<IISServerOptions>(options =>
            {
                options.MaxRequestBodySize = 1073741824; // 1GB
            });

            services.Configure<FormOptions>(x =>
            {
                x.ValueLengthLimit = 1073741824; // 1GB
                x.MultipartBodyLengthLimit = 1073741824; // 1GB
            });
        }

これでファイルアップロードの上限が増えてるはず。

終わりに

・参考サイト github.com

Asp.Net Coreのファイルアップロード方法は以下のサイト見ればだいたい分かる。 docs.microsoft.com

・ファイルアップロードの公式サンプル github.com

1995年からの名目GDP成長率が低い日本はオワコンなのか

Twitterを見てると「1995年の名目GDPを100としたときに日本以外の国は伸びてるのに日本だけ減ってる!」という意見があった。その意見のせいで日本人は昔に比べて成長していないんだという悲観的な印象を受けた人が一定数いたようである。日本愛好家として「日本オワコン!」という意見は見過ごせないので成長率以外の数字を見ていく。

統計

f:id:baito_mo_yamunai:20191124152600p:plain

https://www.google.com/publicdata

グーグルのパブリックデータ、世界開発指標から一人あたりの名目GDPを引っ張って来たのが上の図である。1995年の日本のGDPは他の国と比較して突出して高いことがわかる。「昔の日本はすごかったんだ!」と思う前にちょっと待ってほしい。まず前提条件として名目GDPというのはドルベースで算出される。そのため円高ドル安であると名目GDPは実質の経済規模より増えたように見える。そして1995年といえば1ドル79円の超円高時代、それが反映されているためグラフでは1995年の日本が突出しているのである。

このことを踏まえると「1995年の名目GDPと100としたとき~」という意見は、日本が衰退しているという主張を劇的に見せたいだけの恣意的な意見であると言わざるを得ない。名目GDPを用いて日本を主体とするデータ比較を行うなら1995年を基準とするべきでないし、1995年からの変化が知りたいだけであれば実質GDPの値を使うべきだろう。

f:id:baito_mo_yamunai:20191124155055p:plain

同様に一人あたりの実質GDP(2000年基準)を引っ張ってきたのが上の図である。ご覧の通り1995年の値に比べて現在の値は至って普通に上昇している。「1995年から減ってる!」という認識は何だったのだろうか。参考までに述べると日本の1995年の値は40,368ドル、2017年の値は48556となっている。

また、他国と比較して成長率が低いということもグラフからは読み取れない。本当に成長率がオワコンになっていればとうの昔にフランスやイタリアに抜かれていないとおかしいはずである。

そもそも成長率○○位だからオワコンというのもおかしな話だ。アメリカは日本より成長率が高いがそれでも2017年度の実質GDP成長率は191カ国中127位だ(日本は138位)。成長率が低いから終わりなのであれば100位以内に入れないアメリカも終わりということになってしまう。

まとめ

  • 1995年は超円高なので名目GDPの値が現在の値と比べても高く見える。現在のGDPと比較したいのであれば実質GDPの値を用いるべきである。