ブクログ

ここ何年か買ったり読んだりした本は、Scrapbox で管理していたんだが、登録の手間と蔵書のようなデータの管理には Scrapbox は向かないのではという思いから、とりあえず漫画についてはブクログに切り替えることにしてみた。

ここ最近の本については、iPhone用のアプリでISBNを読み込ませれば一発で登録できるので大変楽。ただデータをAmazonからとってくるので、Amazonに取り扱っていないような古い本は登録がなかったり、あったとしても書影がなかったりしょぼかったりするのが残念。Amazonにない本については自分で登録もできるようだけど、著作権の問題だろうけど書影を自分で登録することはできないみたい。非公開なら登録できるとかそういう仕組があれば良いのだが。

この手のサービスは登録したらそれで終わりみたいな感じで、ためたデータをどうこうする部分が弱いなと思う。まぁ、どういう機能が欲しいかと言われてもすぐには思いつかないのではあるが。

登録したデータはエクスポートできるので、しばらく様子見をして、どうしても使い勝手が良くないようであれば自分で作るというのも一つの手だなぁ。

ASP.NET Core で Kestrel のエンドポイントを指定する

ASP.NET Core で作成したWEBアプリケーションは、デフォルトだとローカルホストからしか接続できないようになっている。
顧客へのデモなどで外部から直接 Kestrel で実行されているアプリケーションにアクセスしたい場合など設定を変更する必要があるのでメモ。

Kestrel のエンドポイントを設定するにはいろいろ方法があるが、一番手っ取り早いのは構成ファイル(appsetting.json)に記述する方法で、"Kestrel"というキーの配下にエンドポイントの設定を記述するだけで良い。

{
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://xxx.xxx.xxx.xxx:80"
      },
      "Https": {
        "Url": "https://xxx.xxx.xxx.xxx:443",
        "Certificate": {
          "Path": ".\xxx.pfx",
          "Password": "xxxxxxx"
        }
      }
    }
  }
}

docs.microsoft.com

任意の整数値の最上位の桁を残して以降を切り捨てるには

仕事で、任意の正の整数値の最上位の桁だけ残して、残りの値を切り捨てた値を求める関数を書かなければならなくなった。 例えば、値が 12,345 なら 10,000 を返して、25 なら 20 を返すような関数だ。

整数値の切り捨てに数学関数の Math.Floor() が使えないかと思ったが、簡単にはできなさそうだったんで、次のようなコードを書いた。

private int TruncateBelowMostHighOrderDigit(int n)
            => n >= 10 ? n - (n % (int)Math.Pow(10, n.ToString().Length - 1)) : n;

関数名これで良いの?とか、もうちょっと効率的な書き方ができるんでは? という気がしないでもない。

Python 実践入門

あんちょことして使うのに良い感じのPythonの入門書が欲しいと思っていろいろ探してはいたけどなかなか良いのが見つからない。
最近のブームで入門書の類は沢山出ているけれど、まったくの初心者向けの内容が多くて、自分で読むにはちと物足りない。オライリーの「入門 Python3」でも良いんだけど今買うにはちょっと内容が古いような気がして、なんか良い本出ないかなぁと思っていたところに出たのがこの本。

実践入門と題してるだけあって、まったくの初心者にはややハードルが高い感じはするものの、文法だけでなく開発環境やテストまで実際にPythonで開発する上で要求されるであろう知識を満遍なくコンパクトにまとめてあって、通して読むのにも良いけれど、コーディング中にふと躓いたときとか調べるのにちょうど良い感じだ。日常的にPythonを使う訳ではないので、「この処理、内包表記でいけそうだけど、どう書くんだっけ?」みたいなことが多々あるので便利に使えそう。

Python実践入門 ── 言語の力を引き出し、開発効率を高める (WEB+DB PRESS plusシリーズ)

Python実践入門 ── 言語の力を引き出し、開発効率を高める (WEB+DB PRESS plusシリーズ)

グラフィックスプログラミング入門

ゲーム開発用のフレームワークやライブラリを使用せずJavaScriptのみでシンプルなシューティングゲームを作成することで、Canvas APIを利用したグラフィックの描画方法から、三角関数やベクトル、行列などグラフィックを扱ううえで必要となる数学の基礎とホーミングやエフェクトといったゲームでの応用までぎっちり詰め込んだ本。これだけの内容を350ページほどにまとめているのだが、解説を端折ってる感じはなく読みやすい。流石に最後のゲームとは離れたピクセル単位での画像処理について書かれた章は突然だしボリューム的にも物足りない感じだけど、まぁボーナス・トラックみたいなものと思えばお得ともいえる。

普段、ゲーム(と呼べるほどのものではないが)を開発するときはC#でDXライブラリを利用しているのだが、書かれている内容のほとんどはDXライブラリにも応用の利く内容なのもありがたい。

文系プログラマーのためのPythonで学び直す高校数学

コンピューターでの数値の取り扱い(2進数とか浮動小数点数の説明)から始まり、方程式、ベクトル、行列、統計、微積分と高校数学で習う様々なトピックについてカタログ的に列挙して解説していくというスタイルの本。各題材についてそれぞれPythonによるサンプルコードがついてくる。扱っている範囲が広いこともあって解説はかなり簡潔だがボンクラな文系プログラマにも判るような平易さで書かれている。

1から体系的に学び直すという感じの本ではないが、コードを書いてて数学的な疑問が出てきたときにパラパラめくって確認するにはちょうど良い感じ。

「超」入門 微分積分

微分については遥か昔のかすかな記憶として学校で習った覚えがあるが、積分に関しては習った記憶がない。一応、高校は出ているが頭の悪い学校で3年間の授業で積分にまで辿りつくことができなかった。というわけで積分を知らずに(せいぜい微分の反対でしょ?でも反対ってどういう意味?ぐらいの感じで)のうのうと生きてきた訳だが、いい加減、言葉の意味ぐらいは理解しておいた方が良いなと思い読んでみた。

一般的な数学の本というと練習問題がついてきて、ここで実際に計算してみましょう。的な展開になることが多いが、この本は読者に計算をさせず、計算の仕方ではなく微分とは何か、積分とは何かという概念を言葉と図版で具体的に判りやすく解説するという本。確かに大変判りやすく微分積分について具体的なイメージを持つことができたが、実際に自分の頭を使っての計算を伴っていないのですぐに忘れてしまいそうではある。とっかかりとしては大変良い感じで、本書の意図は十二分に満足しているが、ここから先の継続が重要であり難しい。

「超」入門 微分積分 (ブルーバックス)

「超」入門 微分積分 (ブルーバックス)