開発部T.Sです。

今年の梅雨入りは例年より3日ほど遅く、明けもずれ込みそうです。
雨続きでなかなか外に出れませんが、皆様いかがお過ごしでしょうか。

いつもなら休日は外へ出るところですが、そうもいかないのでネタ不足・・・
なので、ちょっと気になったことを小ネタとしてまとめてみたいと思います。

=======================================
1.Windows10にSSHで繋ぐ

linuxでは標準でsshdが利用可能ですが、「そいやWindowsはどうなの?」と思い調べてみました。
結論から言うと「利用可能」です。但し使い勝手には多少難があり、試行錯誤中・・・

※環境:Windows10 pro バージョン1909
1.1.設定→アプリ→オプション機能→機能の追加 と進み、「OpenSSHサーバー」インストール押下
機能の追加

インストールが完了すると↓のようになります。
機能の追加_After

1.2.コンピュータの管理→サービス→OpenSSH SSH Server サービス起動&有効化
sshd

1.3.コンピュータの管理→ローカル ユーザーとグループ→ユーザー でユーザー名確認
1.4.外部からいつも通りの方法で接続!

接続が完了すると、コマンドプロンプトが出てきます。ちょっと不思議な感じです。
linux同様sshd_configがあるので、各種設定も可能とのこと(一部効かないオプションあり)。
またSFTPも使えます。

参考:https://docs.microsoft.com/ja-jp/windows-server/administration/openssh/openssh_overview


=======================================
2.二進化10進ってなに?

実数(小数)を扱える浮動小数点型(float,double)では値に誤差がつきものです。
誤差は10進数の実数値を二進数に落とし込む際(または逆)に発生し、例えば0.1を代入しそれを10倍しても、ぴったり1にはなりません。

「じゃあ正確な計算したい時は?」→二進化10進(Binary-Coded-Decimal)を使う
とのこと。

2.1.理屈(一例):4bitを一括りにして0-9を表す→桁数分繋げる ※言語・仕様により差異あり
通常の二進法では「0000-1111」で16通りの表現をフル活用しますが、
二進化10進では「0000-1001」までの10通りとし、10進法での一桁として表すそうです。

2.2. どこで使う:勘定系・金融系など誤差が出てはいけないシステム
二進化10進を標準で扱える言語のひとつに、COBOLがあります。
古い言語ですが、今でも現役。その理由がひとつ分かりました。

2.3.他
他にも誤差が出てはいけない計算向けに、
・C#:Decimal型
・Java :BigDecimalクラス 等ある模様。

正確さ⇔速さ⇔扱いやすさはトレードオフと言われます。言語も型も適材適所なんですね。
それらを含めたより良いコーディング・設計ができるようになるぞ・・・と思い直す今日この頃です。