WSL2の設定

Windows 10 2004 以降なら WSL2 が使用できる。WSL2 は完全な Linux カーネルを使用しているので、Windows 10 + WSL2 + Docker とかいう運用も可能になる。

インストール

PowerShell を管理者モードで開き、

Windows Subsystem for Linux のインストール

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

"仮想マシン プラットフォーム" のオプション コンポーネントを有効にする

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

ここで再起動して、WSL を有効にする

WSL2 にするにはカーネルコンポーネントの更新が必要になるので、https://aka.ms/wsl2kernel から Linux カーネル更新プログラム パッケージを入手してインストールする。
f:id:nao550:20200530140741p:plain


インストールしただけでは WSL のバージョンが 1 になっているので、2 に変更する

PS C:\Users\user> wsl --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

Microsoft Store で [Linux] で検索するとインストールできるディストリビューションが表示されるので好きなのをインストールする。

f:id:nao550:20200529160442p:plain
Microsoft Store


自分はちょっと前後になってしまって、WSL1 の環境に Ubuntu をいれてしまったので、WSL 2 への変更をする

PS C:\Users\user> wsl --list -v
  NAME      STATE           VERSION

Ubuntu Stopped 1

PS C:\Users\user> wsl --set-version Ubuntu 2 変換中です。この処理には数分かかることがあります... WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください 変換が完了しました。
インストールできれば起動できるようになっているので起動する。 f:id:nao550:20200529160735p:plain スタートメニューにも追加されているのでそちらからでも可能 初回起動時にはLinux管渠のユーザ名とパスワードの設定が求められる。これは Windows とは別のアカウントで、ここで設定するユーザが管理者アカウントとなり、sudo コマンドなどが使用できる。 f:id:nao550:20200529160946p:plain かんたんに WindowsLinux 環境がつくれる。

tips

Linux 環境の /mnt 以下に Windows のドライブがマウントされる。 Linux 上のネットワークインタフェースは Windows と共有されるので、localhost:ポート番号で Linux 上のポートにアクセスできる。 ということは WindowsLinux でポート番号の競合が発生するので実行するサービスには注意が必要。 逆に Linux から Windows のポートにアクセスする場合は、IPアドレスでアクセスする。 参考 Linux 用 Windows サブシステムの概要 | Microsoft Docs

Windows Terminal で SSH

Windows Terminal

Windows Terminal のインストール

Windows Terminal がバージョン1になりまして、めでたいという事で Windows Terminal でSSHができるように設定してみた。

Windows Terminal は Microsoft Store アプリからインストール可能で、「Windows Terminal」で検索すればすぐに出てくるのでインストールすればインストール完了。

Microsoft Store

Windows Terminal の設定は JSON-Schema で記述するようになっていて、設定は CTRL+, もしくはタブの右にある「V」から[設定]」を開くと JSON が関連付けれているアプリから起動する。

OpenSSH のインストール

Windows 10 1809 以降であれば標準機能として OpenSSH がインストールできる。

[設定]から[アプリ] > [アプリと機能] > [オプション機能の管理] の順にたどり、[機能の追加]を追加をクリックして、[オプション機能を追加する]で「ssh」で検索すると、[OpenSSHクライアント]と[OpenSSHサーバ]が見つかるので、[OpenSSHクライアント]にチェックをつけて[インストール]をクリックでインストールされる。

PowerShell経由でインストールするには PowerShell を管理者権限で開いて、

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

として OpenSSH 検索をすると

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

インストール可能な OpenSSH が表示されるので、

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

でインストールする。

OpenSSH のユーザ設定ファイルは %HOMEPATH%\.ssh に保存されるので、config ファイルなどを設定しておくと便利
ssh の話 - 日々雑文

もちろん OpenSSH クライアントをインストールしたあとなら、ssh-keygen コマンドなんかも使える。

Windows Terminal の設定

Windows Terminal の設定は先にも書いたように JSON ファイルを使用して編集する。

初期状態でいくつか設定があり、list 以下に Windows Terminal で開くシェルの設定がある。

           {
                // Make changes here to the powershell.exe profile.
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false
            },

最初から含まれている上記の部分をコピーして新しい項目を作成していく

            {
                "guid": "{67f16340-40c4-445d-b148-a0da636de5c4}",
                "name": "examplessh",
                "commandline": "ssh.exe user@example.com",
                "hidden": false,

                "fontFace": "Cascadia code",  // 
                "fontSize": 10

                "snapOnInput": true,  // 入力時に入力位置までスクロール
                "scrollbarState": "visible",  // スクロールバーの表示
                "historySize": 10000,  // 履歴サイズ

                "useAcrylic": true, // アクリル背景の設定
                "acrylicOpacity": 1, // 背景の透明度

                // backgroundImageAlignment 
                // "center"、"left"、"top"、"right"、"bottom"、"topLeft"、"topRight"、"bottomLeft"、"bottomRight"
                // "backgroundImageAlignment": "top", // 表示する画像の基準値
                "backgroundImageOpacity": 0.3 // 背景の不透明度
                //"backgroundImage": "C:\\Users\\user\\image\\image.jpg"
            }   

guid は PowerShell

PS C:\Users\user> New-Guid

として取得することができる。

commandline で ssh.exe を指定して、接続するユーザ名、サーバを指定しておく。このときに .ssh/id_rsa とかを設定しておくとパスワードなしでサーバにログインすることができる。


でここまで設定しておいてなんだが、Windows Terminal ではまだクリッカブルURLに対応していない。 github では issue として議論されているのでいずれは実装されると思うのだが、自分はターミナルでメールを読んでいるのでこの機能がないと使うメリットが半減してしまう。せめて選択して右クリックメニューで[URLを開く]などがあればいいのだが。


Windows Terminal の設定一覧は以下参照

Windows Terminal Global Settings | Microsoft Docs


余談:

Windows Terminal には倒伏フォントとして、Cascadia code が追加されていて、プログラミング用の合字フォントが含まれている。!= を ≠ にしたり、<-- を ← にしたりしてくれるんだけど、違和感ひどすぎてちょっとこれでコーディングしようという気には今はならない。 もしかしたら将来的には標準になるのかもしれないけど...
Windows ターミナル Cascadia Code | Microsoft Docs


参考
Windows 用 OpenSSH のインストール | Microsoft Docs

糖尿病と自家血糖値測定について

血糖値とは

生物は糖質を食べることで、デンプンなどを取り込みそれを分解してブドウ糖を得て活動している。 ブドウ糖を体内に吸収するときに血液で全身に運ばれるのだがその際に血液中のブドウ糖が血糖値となる。 血糖値が高すぎると糖尿病となり、低すぎると低血糖となる。

正常であれば腎臓で血液中の老廃物や余分な水分が濾過されて尿として排出されるが、その際にのブドウ糖は再度吸収されて尿には出てこないのだが、高血糖の状態になると腎臓で糖を再吸収できなくなり尿に糖が混ざって排出されるので糖尿病と呼ばれる。

通常食後1時間程度で消化された栄養が血液中に流れ込み、血液中の血糖値も上昇する。この時に一時的に血糖値が高くなるがインスリンの働きが正常であれば、数時間で正常値(<110mg/dl)に戻るが、これが160mg/dlを超え続けると、心筋梗塞脳卒中などの血管系の疾患を引き起こす。

血糖値の正常値は空腹時で110mg/dl以下が正常、126mg/dl以上になると糖尿病領域となり、その間が境界型糖尿病になる。

正常値糖尿病域
空腹時値<110≧126
75g糖負荷試験<140≧200

糖尿病とは

血液中の血糖値を調整しているのがインスリンで、血糖値が高くなるとインスリンが分泌されて細胞へブドウ糖の取り込みを促進するが、何らかの原因でインスリン
・量が少ない
・働きが悪い
となると血液中の血糖値が常に高い状態になり糖尿病になる。

高血糖状態になると、血液中の糖を薄めるために、のどが渇き、またそれにともない尿も増える。ブドウ糖が細胞内に取り込まれにくくなるためエネルギー不足から疲れやすく疲労感を感じることが多くなる。エネルギーを取り込めなくなるために脳が空腹と感じ、食事量が増えるが体重がへるという症状が出る。

糖尿病には1型から4型まであり、1型が何らかの原因で膵臓インスリンを分泌するランゲルハンス島(β細胞)が破壊されているタイプ、2型がストレスや運動習慣、食生活などが原因で膵臓からのインスリン分泌量が少ない、インスリンの働きが悪いタイプで日本人の糖尿病の95%がこのタイプに分類される。3型が疾患や感染症によるタイプ、4型が妊娠時に血糖値が高くなる妊娠糖尿病になる。

2型糖尿病

2型糖尿病は運動不足や高脂肪食・過食によってインスリン分泌低下やインスリン抵抗性を引き起こすことによって発生するので生活習慣病ともいわれる。

肝臓や筋肉に脂肪が蓄積しすぎるとインスリンの働きが弱まり、それによりさらにインスリンの分泌が促されるが、その状態が長期間化するとインスリンの分泌ができなくなり、そうなるとさらに高血糖を引き起こすことになり、高血糖による毒性と呼ばれる負の循環が発生することもある。

低血糖とは

血糖値が高すぎると糖尿病になるが、低くなりすぎると低血糖となる。
70mg/dl以下になると異常な空腹感、だるさ、冷や汗、動機などを感じるようjになり、45mg/dlで眠気、脱力、集中力の低下、言葉が出ない、などの症状、30mg/dlになると意識がもうろうとして、異常行動や昏睡状態となり、10mg/dlあたりで死亡する。

対処方法としては低血糖の症状が発生した時には、糖を含む清涼飲料水を飲むなどがある。

自家血糖値測定について

糖尿病への対策として、日常的な運動習慣や食生活の改善とともに、継続的な血糖値の測定がある。

血糖値の測定にはいくつかの方法があり、自分で血液を採取して測定する Self-Monitaring Blood Glucose(SMBG) 、継続的に測定をする Continuous Glucose Monitaring(CGM)、リーダーをかざして値を読み取る Flash Glucose Monitaring(FGM) がある。

リアルタイムCGM では常に血糖値をモニタリングしているので、血糖値異常が発生したときにすぐアラームなどで告知してくれる機能があるが、FGMにはそういう機能はない

SMBGでは本体、穿孔器具、針、センサーの4つを使用するものがほとんどで、針とセンサーは使い捨てになる。さらにセンサーは保管環境を厳密にする必要があるので日本では通販での購入ができなくなっており、高度医療機器を扱う薬局にて購入する必要がある。

代表的なのがワンタッチウルトラビュー、


中国からならセンサー付きのも購入可能な様子

CGMはほぼ医療用で現時点では個人で購入できるものはない。

医療用以外でFGMができるのは現時点ではほぼフリースタイルリブレになる。これは500円玉程度の大きさのセンサーを貼り付けることで2週間の継続した血糖値測定が可能になる。2週間でセンサーは反応しなくなるので使い捨て。

そこそしっかり張り付くため風呂や運動なども可能。

センサーにリーダーを近づけることでセンサーに保存されている血糖値をリーダーに取り込み、リーダーからパソコンにデータを取り込んでグラフ表示などができるようになる。

リーダー

センサー

フリースタイルリブレセンサーFreeStyleLibre

フリースタイルリブレセンサーFreeStyleLibre

  • メディア: ヘルスケア&ケア用品



Wall Streeat Journal の契約を検討してみた

Wall Street Journal の解約が難しいというのを読んで、以前にも WSJ の契約をしてみようかと思っていたのを思い出して購読について調べてみた。

WSJ を読むのは直接契約と他のニュースサイト、NewsPicks、Diamondオンライン、デジタル毎日などとの連携で読む方法の二つがある。

月額年間備考
Wall Street Journal1,9992ヶ月100円
NewsPics Premium1,50015,000学割あり
Diamond プレミアム1,98019,8001ヶ月無料
デジタル毎日9808,4002ヶ月100円


WSJの直接なら、月額1999円、税込なのかは不明で、タブレットアプリは使用不可だけどWebから見るのであれば問題ないのだろう。タブレットアプリでも使用したければ2899円、コスト見あわないな。

2020年1月現在では2ヶ月100円の契約、時期によっては3ヶ月100円とかもあったはず。


NewsPics はいろいろなところから配信されているテクノロジーや経済ニュースとともに経済界の著名人のコメントを見ることができ、ニュースを元に著名人のblogを読むようなニュースサイト。 どっちかというと若手ビジネスマン向けという印象。

日本の今の流れを見るには最適なんじゃないだろうか。


Diamondオンラインは雑誌の週間ダイヤモンドのオンライン版。雑誌であつかっている内容が幅広いこともあって記事の内容も経済系を中心に、仕事というものへの考え方や、なぜそうなったのかというニュースの裏側や企業の分析、自己啓発的な記事も多く配信されている。

こちらは NewsPicks にたいしてより高齢のビジネスマン向けという印象。

プレミアム契約すれば雑誌の週間ダイヤモンドも過去7年分、ダイヤモンド社のビジネス書が読み放題になるというメリットもある。


デジタル毎日、言わずとしれた毎日新聞のオンライン版。毎日新聞の全記事がオンラインで読めるようになる。

年間契約なら月額700円になるので、格安でWSJの記事を読みたいというのならこれ一択なのだけれど、問題は毎日新聞というところ。毎日新聞か…


ともあれ、WSJを読みたいというのなら、直接契約で 1999円に対して、一番高いのでもダイヤモンドオンラインの 1980円、安ければデジタル毎日の980円と他のニュースサイトとの契約のサブセットで読むようにするのが有利になるうえに、直接契約だともし解約したいとなったときに平日の昼間に電話しなければ解約できないというものすごく解約しにくいというデメリットもあるので直接契約するメリットはなく、他との契約で読むようにするべきだね。


さてここまで書いておいてなんだけど自分がどうするかとなると、そもそもWSJそんなに読むのかという問題があるのでお試しで契約してみたいのでやるならまずダイヤモンドで契約して一月使ってみて、それでWSJよく読むとなったらその時にダイヤモンドの利用率含めて検討してよく使うようならダイヤモンド、微妙なら解約してNewsPicksで2ヶ月お試しにして様子をみるというところか。

毎日新聞は個人的にアレだし潰れろとまでは言わないけど、応援したくない新聞社なのでなしかなぁ

nmcliコマンド

nmcli コマンドのあんちょこ

バイスの状態を確認
nmcli d

バイスを有効化
nmcli c m enp0s3 connection.autoconnect yes

IPv4アドレスの指定
nmcli c m enp0s3 ipv4.address xxx.xxx.xxx.xxx/xx

ゲートウェイの設定
nmcli c m enp0s3 ipv4.gateway xxx.xxx.xxx.xxx

DNS設定
nmcli c m enp0s3 ipv4.dns xxx.xxx.xxx.xxx

DNS検索ドメインを指定
nmcli c m enp0s3 ipv4.dns-search example.com

IPアドレスの設定一括
nmcli c m enp0s3 ipv4.method manual ipv4.address xxx.xxx.xxx.xxx/xx ipv4.gateway xxx.xxx.xxx.xxx ipv4 dns xxx.xxx.xxx.xxx ipv4.dns-search example.com

IPアドレス手動設定
nmcli c m enp0s3 ipv4.method manual

IPアドレスDHCP設定
nmcli c m enp0s3 ipv4.method auto

設定の反映(インタフェースの再起動)
nmcli c down enp0s3; nmcli c up enp0s3

設定確認
nmcli d show enp0s3

ネットワーク系サービスの再起動
systemctl restart network

設定ファイル
/etc/syscofig/network-scripts/enp0s3-eth0

# nmcli c show
NAME             UUID                                  TYPE      DEVICE
有線接続 1       cea98da4-01c7-3932-a104-xxxxxxxxxxx  ethernet  enp0s3
ethernet-enp0s3  f2b53bdd-9c32-483f-834c-xxxxxxxxxxx  ethernet  --
# nmcli c m "有線接続 1" connection.id "enp0s1"
# nmcli c show
NAME             UUID                                  TYPE      DEVICE
enp0s1           cea98da4-01c7-3932-a104-xxxxxxxxxxx   ethernet  enp0s3
ethernet-enp0s3  f2b53bdd-9c32-483f-834c-xxxxxxxxxxx   ethernet  --

VirtualBox で仮想マシンが起動しない

久しぶりにVirtualBoxを起動したら、仮想マシンがエラー出して起動しない現象が発生した。

原因を調べたところ、Windows 10 の 1903でSandboxなどの仮想マシンの機能が有効になっており、その関係もあり、VirtualBoxが起動できなくなった様子。

Virtualboxエラー

仮想マシン"CentOS"のセッションを開けませんでした。

Call to WHvSetupPartition failed: ERROR_SUCCESS (Last=0xc000000d/87) (VERR_NEM_VM_CREATE_FAILED).

終了コード : E_FAIL (0x80004005)
コンポーネント: ConsoleWrap
インターフェース: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

「設定」-「プログラムと機能」-「Windows機能の有効化または無効化」から
「Containers」
Hyper-V
Windows Subsystem for Linux
Windowsサンドボックス
Windowsハイパーバイザープラットフォーム」
を無効にして再起動すれば、Virtualbox仮想マシンが起動できるようになる。

今どき仮想マシンが必要ならクラウドでいいんだけど、OSのインストールから手順書を作成するのならVirtualboxがやっぱり便利

CentOS7にGoogle Chromeをインストールする

CentOS7にGoogle Chromeをインストールする。

$ vi /etc/yum.repos.d/google-chrome.repo

以下のように入力

[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
$ yum install -y google-chrome-stable

Chromeがインストールされる。

これでアプリケーションランチャーにGoogle Chromeが登録されている。
結構簡単に追加できた。