2020-08-22

ntpdを止めないでntpdateで同期する

2分ほどずれてました。

特に理由はないです。

ただ、ntpdが何かの原因で落ちていたのだと思います。

直します。サーバーを再起動すれば良さそうな気もするのですが、今回は時計だけなおします。

sudo /usr/sbin/ntpdate ntp.nict.jp

ダメでした。ポートが使われているそうです。 どうやらntpdとntpdateは同じポートを使っているようです。

sudo /usr/sbin/ntpdate -u ntp.nict.jp

同期できました。

sudo /etc/init.d/ntpd stop
sudo /usr/sbin/ntpdate ntp.nict.jp
sudo /etc/init.d/ntpd start

って普通にntpdをいったん止めてntpdateを実行してもいいと思うんだけど。面倒だから-uオプションを使うと楽。

| | コメント (0)

.jfifを管理者にならずにレジストリ変更して.jpgに変更する。Windows10でJPEG画像をダウンロードする時に拡張子が.jfifになる

Windows10で.jfifになった

Windows10でウェブから画像をダウンロードしたりすると、いつからかJPEG画像の拡張子が.jfifになるようになった。

Jfif

JPEG画像にメタ情報を追加したものらしいんだが、のちにその追加場を取り込んだ物がJPEGに取込まれたらしいので、結局、JPEGって事なのでは?

拡張子だけ変えればいける

ダウンロードしてしまったファイルに関しては.jfifを.jpegまたは.jpgに変更するだけで問題ないようです。

ただ、毎回手動で変更するのもめんどくさいし、あとから一括処理するツールみたいなのもあるみたいだけどダウンロード時点で拡張子が.jpgになってれば面倒はない。

レジストリの変更

レジストリエディタでHKEY_CLASSES_ROOT\MIME\Database\Content Type\image/jpeg\Extensionをjfifから.jpgにすればダウンロード時点での拡張子が.jpgになる。

管理者のパスワードがわからない

管理者のパスワードがわからない時はPowerShellを使えばできそう。少なくとも管理者ではなく普通に起動したPowerShellで変更する事が出来ました。

PSDriveを作成

まずHKEY_CLASSES_ROOTってのはPSDriveがあらかじめ登録されていないので、自作してやる必要がある。

New-PSDrive -Name "HKCR" -PSProvider "Registry" -Root "HKEY_CLASSES_ROOT"
これで'HKEY_CLASSES_ROOT'がHKCRとして登録される。
Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
HKCR                                   Registry      HKEY_CLASSES_ROOT

レジストリの値を設定する

これでさっきのレジストリのキーの値を変更すればいい。

まず最初に現在の値を確認する

Get-ItemProperty -LiteralPath "HKCR:\MIME\Database\Content Type\image/jpeg" -Name "Extension"
Extension    : .jfif
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_CLASSES_ROOT\MIME\Database\Content Type\image\jpeg
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_CLASSES_ROOT\MIME\Database\Content Type
PSChildName  : image/jpeg
PSDrive      : HKCR
PSProvider   : Microsoft.PowerShell.Core\Registry

現在は'.jfif'になっている事がわかったので'.jpg'に変更してみる

Set-ItemProperty -LiteralPath "HKCR:\MIME\Database\Content Type\image/jpeg" -Name "Extension" -Value ".jpg"

もう一度、確認してみる

Get-ItemProperty -LiteralPath "HKCR:\MIME\Database\Content Type\image/jpeg" -Name "Extension"
Extension    : .jpg
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_CLASSES_ROOT\MIME\Database\Content Type\image\jpeg
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_CLASSES_ROOT\MIME\Database\Content Type
PSChildName  : image/jpeg
PSDrive      : HKCR
PSProvider   : Microsoft.PowerShell.Core\Registry

どうやら変更に成功したみたい。少なくともここまでUACの昇格は要求されていません。

ブラウザで画像を名前を付けて保存しようとすると以下の画像のようになりました。

Jfif2jpg

| | コメント (0)

2020-08-04

WSLのDebianでfishのヘルプを表示。shutdownコマンドでwslの終了も。



wslのfishでhelpを入力するとエラーが出る。

'\\wsl$\Debian\home\tagosuck'
上記の現在のディレクトリで CMD.EXE を開始しました。
UNC パスはサポートされません。Windows ディレクトリを既定で使用します。

Windows側にもエラーメッセージが表示される

'file:///user/share/doc/fish/index.html'が見つかりません。名前を正しく入力したかどうかを確認してから、やり直してください。


ヘルプをWindows側の既定のブラウザで表示する。

echo "start file://wsl\$/$WSL_DISTRO_NAME/usr/share/doc/fish/index.html" | cmd.exe

ディストリビューション名は環境変数$WSL_DISTRO_NAMEに保存されてる。

echo $WSL_DISTRO_NAME


helpと入力した時に表示されるようにする

alias help="echo 'start file://wsl\$/$WSL_DISTRO_NAME/usr/share/doc/fish/index.html' | cmd.exe"

helpと入力するとWindows側の既定のブラウザでヘルプが開くようになった。

wsl$のドルマークをエスケープしないと変数として扱われるので注意。



エディタを開いたらついでにshutdownのエリアスも

これを~/.config/fish/config.fishに保存。

shutdownやrebootもwslではできない。
rebootはできないが、shutdownはエリアスを作る事で解決できる。

alias shutdown="wsl.exe -t $WSL_DISTRO_NAME"

これも~/.config/fish/config.fishに保存しておくと便利。

ログオフではなくて再起動したい時とかに、コンピュータを再起動しないでもshutdownと入力

Linux 用 Windows サブシステム インスタンスが強制終了されました。
Press any key to continue...

と、表示されて終わる

| | コメント (0)

2020-07-27

python requests.exception.SSLError SSL接続でエラーが出る

pythonでrequestsを使ってウェブアクセスすると
以下のエラーが出てデータを取得できない。
requests.exceptions.SSLError
(Caused by SSLError(SSLError(1, '[SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1056)')))

調べてみるとrequestsでgetやpostする前に
requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERSに
足りない文字列を追加してやればいいらしい。

requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += "HIGH:!DH"

調べた内容には"HIGH:!DH:!aNULL"を追加する
というような記事があった。
自環境のssh_.pyを確認してみると!aNULLは記載されていたのでHIGH, !DHのみ追加した。

| | コメント (0)

2020-01-25

replace(食事, 白米, キャベツ)

A8cb36f252b44008d0254e386dab49fa_s

デスクワークのエンジニアは運動不足になりがち。

私は175cm、60kgでしたが、ここ5年くらいで15キロほど太りました。ただ、今の体重になる前から尿酸値は高い状況で、痛風の発作と言うほどではありませんが、足や太股の裏などに違和感を感じたことが何度かありました。

ここ何年かで中性脂肪と肝臓の値もかなり高めです。CTで肝臓の検査をしましたが、今の所、癌や結石は無いそうで脂肪肝です。アルコールはここ10年くらいは週末に350mlの缶を2, 3本飲むくらいなのでアルコール性脂肪肝ではないと思います。

そんな訳でダイエットを考えた訳ですが、週に一回はカレーライスが食べたいし、揚げ物も食べたい。で、まず、白米やパンを控えてみることにしました。ただ、お腹は空くので代わりになる物が必要です。

色々考えた結果、キャベツなら生でも煮ても焼いても食べられるし、値段も手頃、たらふく食べられるのでキャベツで行くことにしました。

取り敢えず、おかずは他の家族と同じ物を食べます。大きめの平らな皿に生のキャベツ1玉を置いておきます。一枚ずつ剥がしながら使っていきます。汁物でない限りおかずをキャベツで巻いて食べたりします。汁物には千切ったキャベツを入れます。朝は玉子焼きやゆで卵、ソーセージとキャベツ炒め。梅昆布茶に千切ったキャベツを入れて飲んだりしてました。オリーブオイルとレモン汁が良いという記事を見掛けたのでオリーブオイル、レモン汁、塩でドレッシングを作ったりもしました。

まだ始めてから一週間ですが、3日でズボンにゆとりが出始めて、一週間で3kgくらい減ってきました。

個人的な感想ですが、生キャベツの方がお腹が膨れる気がします。代わりに早めにお腹が空きます。一日中お腹が空いています。なので、ぽりぽりキャベツを齧ったり、納豆、豆腐、春雨スープ、柿ピー、自家製ヨーグルト、自家製甘酒などでごまかしてきました。バターコーヒーはお腹を満たすのに効果的でした。

キャベツを選択した理由は、費用対量、調理バリエーションの多さでした。消費量は一週間で1玉くらいでした。

さて、急に栄養面での効果が気になり調べてみました。キャベツの摂りすぎで注意すべきはシュウ酸のようですが、週に1玉程度なら全く問題がなさそうです。それにレモンと一緒に食べることで酸化を防げるそうです。レモンって体内にはいると酸性になるのを防いでくれるみたいな動画をyoutubeで見掛けました。痛風にも、その他にもキャベツっていい所だらけっぽいです。我ながら良い選択をしました。そもそも以前にキャベツダイエットというのがブームになった事があったようですね。

栄養面でも良さそうなので、ずっと続けても良いかなと思っています。どちらにしてももう少し続けてみます。

今日はこれから肝臓の専門医の診察を受けてきます。

 

| | コメント (0)

2019-06-23

ReadyBoostを設定してみた

Windows 10でReadyBoostを設定してみようとしました。

Debian Jessieのbootイメージを入れていたUSBメモリをフォーマットしてWindowsマシンに挿しました。

エクスプローラのUSBメモリのプロパティでReadyBoostを設定しようと思ったら、できない状態。

どうやらSysMainというサービスが動いてないのでできないというので、SuperFetchを自動開始にしてコンピュータを再起動。

で、いよいよ再度エクスプローラでUSBメモリのプロパティからReadyBoostの項目を見るとやっぱりできません。

このコンピュータのシステムディスクは十分に高速であるため、ReadyBoostが有効になっていません。ReadyBoostでさらにパフォーマンスが向上する可能性は小さいと考えられます。

って事でReadyBoostできませんでした。SSDだとダメなのかな?よく考えたら仮想メモリ領域がSSDならUSBでReadyBoostする必要ないですね。

SuperFetchサービスを停止して再起動しました。



| | コメント (0)

2018-07-20

タプルとはなんだろうか? - Haskell

正直、pythonなどでも、そうなのですが、タプルについては存在価値を理解できていませ ん。 pythonでは、その価値がイミュータブルな点だと説明されているところが多いように思い ます。多分それは破壊的変更が不可能だという事だと思います。 定数という事に近いかと思います。 タプルを参照する変数が、別のタプルを参照したり、タプル同士の加算代入演算子では、 代入先のタプル自体が変更されるのではなく、二つのタプルを加算した新しいタプルを作 成し、そのタプルを参照するという動作になるようです。

» 続きを読む

| | コメント (0) | トラックバック (0)

2018-07-08

関数呼び出し、リスト、内包表記 -- Haskell

すごいHaskellたのしく学ぼう!ですが、まず、第一章の中盤まで。 関数呼び出しとリストについて勉強しました。

関数呼び出し

Lisp系などでは、演算子も

(+ 1 1)

のように左に置く(前置)ので、慣れるまでちょっと違和感を感じる事もありますが、Haskellでは演算子は中置できるそうです。

1 + 1
ややっこしいから統一して欲しいという時には、以下のように前置できる。

(+) 1 1

リスト

連結

リスト同士の連結は ++ 演算子で行う。これは中置できる。 で、文字列は文字のリストで表現されているため、文字列の結合も ++ 演算子で行う。

[1, 1, 1] ++ [2, 2, 2] ++ [3, 3, 3] -- [1, 1, 1, 2, 2, 2, 3, 3, 3]
"Hello " ++ "Haskell" -- "Hello Haskell"

C言語などのプログラミングでは ++ はインクリメントの単項演算子ですが、まぁソースの前後を見れば何をやっているのか 何となくはわかりますね。

ランダムアクセス

C言語の配列に添字でアクセスするようにリストの要素に先頭からの位置でアクセスが可能です。

[1, 2, 3, 4, 5] !! 2 -- 3 添字は0から始まる
[[10, 11, 12], [20, 21, 22], [30, 31, 32, 33]] !! 1 -- [20, 21, 22]
[[10, 11, 12], [20, 21, 22], [30, 31, 32, 33]] !! 1 !! 2 -- 22

と、この辺までは、なんとなく理解できました。書き方は違っていますが、考え方は他のプログラミング言語にもよく出てきます。 ここからちょっとややこしくなりました。

比較

まず、リストのまま比較できます。まぁ、これも考え方を少し変えてみれば不思議ではありません。文字列を比較演算子で 比較できる言語は結構あると思います。C言語はstrcmpで0との比較になりますね。

[1, 2, 3] < [1, 2, 4] -- True
[3, 2, 1] == [3, 2, 1] -- True
[2, 4, 6] /= [2, 4, 6] -- False
リスト関係の基本的な関数
head
先頭の要素を返す
tail
先頭を取り除いた残りの要素を返す
last
最後の要素を返す
init
最後を取り除いた残りの要素を返す
length
リストの長さを返す
null
空リストかどうかを論理値で返す
reverse
リストを逆順にする
take
先頭から指定数の要素をリストとして返す
take 3 [1, 2, 3, 4, 5] -- [1, 2, 3]
drop
先頭からして指数の要素を削除して残りの要素をリストとして返す
drop 2 [1, 2, 3, 4, 5] -- [3, 4, 5]
maximum
リスト中の最大の要素を返す
minimum
リスト中の最小の要素を返す
sum
リストの要素を全て足した値(和)を返す
product
リストの要素を全て掛けた値(積)を返す
elem
リストの中に要素が含まれているかを論理値で返す
中置関数で書かれる事が多いそうです。
elem 3 [1, 2, 3, 4, 5] -- True
8 `elem` [1, 2, 3, 4, 5] -- False
cycle
リストを永遠に繰り返す無限リストを返す
take 5 (cycle [1, 2, 3]) -- [1, 2, 3, 1, 2]
repeat
ひとつの要素を無限に繰り返すリストを返す
take 5 (repeat 'Z') -- "ZZZZZ"
putStrLn (take 4 (repeat 'あ')) -- 「ああああ」と出力する
replicate
ひとつの要素を指定回数繰り返すリストを返す
putStrLn (replicate 4 'あ') -- 「ああああ」と出力
replicate 5 7 -- [7, 7, 7, 7, 7]
範囲でリストを作成

例えば1から1000までのリストを作りたい時に[1, 2, 3, 4, 5, ......... 1000]って 書くのは大変ですが、リストを範囲で指定できます。

[1..1000] -- 1から1000までのリスト
[10, 20..1000] -- 10から10ずつ増加で1000まで [10, 20, 30, 40 ....]
[10, 20..] -- 10から10ずつ増加の無限リストtakeなどと組み合わせて使うと便利

pythonでは

range(1, 10) # 1, 2, 3, 4, 5, 6, 7, 8, 9
range(10, 1001, 10) # 10から10ずつ増加で1000まで [10, 20, 30, 40 ....]

と、第二引数より小さい値でリストを作成しますが、Haskellでは書いた値を含む リストを作るのでpythonプログラマーは注意が必要ですね。

» 続きを読む

| | コメント (0) | トラックバック (0)

2018-07-05

”すごいHaskellたのしく学ぼう!”でHaskellを始めてみようと思います

Haskell(ハスケルと読むらしい)(https://www.haskell.org/)の勉強を始めたので、自分のための整理用に記録しておこうと思う。

参考書

まず、何を読んだらいいのか?という所から始まったのだが、ネットで色々と調べてみると、どうやらH本とかすごいH本と呼ばれる本があるらしいという事がわかった。そのH本というのはビニール包装されたり自販機で販売されたりはしていないらしいという事もわかった。

「すごいHaskellたのしく学ぼう!」 Learn you a Haskell for Great Good!
Miran Lipovaca|著 田中英行・村主崇行|共訳
オーム社,2012.5
401p;21cm
2,800円
978-4-274-06885-0
関数型プログラミング
007.64

という物が、その正体だった。
英語版はWEBで無料で読むことができます。(http://learnyouahaskell.com/chapters)
出版取次に在庫があるという事で、数日で入手できそうだったので早速注文した。

インストール

本が届くまで、取り敢えず環境を整えておくことにした。Windows10上で動作するLinuxサブシステムであるWSLで始める事にした。

» 続きを読む

| | コメント (0) | トラックバック (0)

2018-07-03

chkconfigできない…。debianでサービスの自動起動を設定する

現在の自動起動の状態を調べる
sudo systemctl list-unit-files | grep サービス名
sudo systemctl is-enabled サービス名.service

サービスの自動起動を解除する

sudo update-rc.d サービス名 disable
sudo update-rc.d -f サービス名 remove (リンク削除)
sudo systemctl disable サービス名.service

サービスの自動起動を設定する

sudo update-rc.d サービス名 enable
sudo update-rc.d サービス名 defaults (リンク作成)
sudo systemctl enable サービス名.service

サービスを手動で開始する

sudo service サービス名 start
systemctl start サービス名.service

サービスを手動で停止する

sudo service サービス名 stop
systemctl stop サービス名.service

サービスの状態を調べる

sudo service サービス名 status
systemctl status サービス名.service

サービスを再起動する

sudo service サービス名 restart
systemctl restart サービス名.restart

update-rc.dからinsservコマンドに移行しつつあるらしい。

私の環境ではinsservコマンドは未インストールでupdate-rc.dが動いていたので、しばらくはupdate-rc.dコマンドを使おうと思う。

» 続きを読む

| | コメント (0) | トラックバック (0)

«コンピュータプログラミング言語調節可能おしゃれキャップ