2019年10月14日月曜日

DDNSクライアントのinadynをalpineのdockerイメージで実行

ルータのDDNSが1サイトしか対応していないのと、勉強としてDockerfileを作成してみる。

とりあえず

・「apk add inadyn」がない
https://help.dyn.com/inadyn/ から http://cdn.dyndns.com/inadyn.zipを取得
 実行するが「permission denied」で動かない
・ソースからビルドすると出来上がるイメージが105MBくらいになる。
 ※gccやmakeなどをきれいに消せばいいかも知れないがわからない。

2019年10月13日日曜日

PlatfprmIOで UnicodeDecodeError: 'cp932'

PlatformIOが使用するPythonのバージョンを3.7.4に上げたあとにビルドすると下記エラー
  File "c:\users\xxx\.platformio\penv\lib\site-packages\platformio\proc.py", line 66, in 
    for byte in iter(lambda: self._pipe_reader.read(1), ""):
UnicodeDecodeError: 'cp932' codec can't decode byte 0x9e in position 189: illegal multibyte sequence
読み込みのところでcp932で読もうとして失敗しているらしい。
ソースコードはUTF-8で書いているのに。。。

発生している箇所
\.platformio\penv\lib\site-packages\platformio\proc.py"
for byte in iter(lambda: self._pipe_reader.read(1), ""):
の「self._pipe_reader」の定義を参照
os.fdopenのところにエンコードを指定すれば回避される。
    def __init__(self):
        self._fd_read, self._fd_write = os.pipe()
        # self._pipe_reader = os.fdopen(self._fd_read)
        self._pipe_reader = os.fdopen(self._fd_read, encoding='utf-8_sig') #エンコード指定
        self._buffer = ""
        self._thread = Thread(target=self.run)
        self._thread.start()

sambaのマウントとパスワードの外部ファイル化

sambaのマウントする時は以下の方法をよく使う

1.mountコマンド
sudo mount -t cifs //192.168.0.20/xxx /mnt/xx -o username=xxx,password=***
2./etc/fstab記述 → mount -a
//192.168.0.20/xxx /mnt/xxx cifs username=xxx,password=***,defaults 0 0
/etc/fstabはroot権限がなくても参照できるので、これを外部ファイルにする。

2019年10月12日土曜日

prettify.jsとpreタグへの自動適用

<pre/>タグで囲んだところに自動で色付けを行う方法
 <script src='https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js?skin=desert' async/>
↑asyncを付けて遅延読み込み
 <script type='text/javascript'>
    $(document).ready(function(){ $('pre').addClass('prettyprint'); });
 </script>
↑preタグに'prettyprint'を設定
これで'prettyprint'が付いてから、run_prettify.jsが実行され色付けされる。

run_prettify.jsを使わない時は、prettify.js
その時は使用するskinのCSS指定と、prettyPrint()メソッドの呼び出しが必要

※追記:タイミングがずれるようなのでprettify.jsに変更
<script src='https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/prettify.js'/>
<link rel="stylesheet" type="text/css"
 href="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/skins/desert.css" />
<link rel="stylesheet" type="text/css"
 href="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/prettify.css" />

<script type='text/javascript'>
    $(document).ready(function(){ $('pre').addClass('prettyprint'); prettyPrint() });
</script>

2019年10月6日日曜日

WindowsHome10でリモートデスクトップ接続(RDP)

リモート接続される側がWin10Homeの場合、標準機能では対応していない。
RDP Wrapper Library v1.6.2 をインストールするとリモート接続可能になる。

2019年10月2日水曜日

Remote-SSH VSCode

SSH鍵作成
ssh-keygen -t rsa -b 4096

サーバに*.pubをアップロード

cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys