2021年3月26日金曜日

gnupgの共有暗号化を簡単な感じでつかう

カジュアルに暗号化をつかう。
% echo "to be encrypted" | gpg -c | base64
jA0EBwMCEtjToibU+8/o0kUBCb+uV9LvpwbT3vgF0AHb5hDoRhzbAadsGrgGSbW8uiqPOh2xc7EDRfKQmtNtM9e4f2xTu3AaGTystWDTx68FsSCff0Q=
% echo jA0EBwMCEtjToibU+8/o0kUBCb+uV9LvpwbT3v... | base64 -d | gpg -d -q -o -
to be encrypted
という感じ。

2021年3月4日木曜日

jupyter notebook から pythonコードへ変換

jupyter notebookで開発したものをpythonコードに変換する方法。 jupyter nbconvert というコマンドを使う。これは万能ツールでPDFなどにも変換できる。

このコマンドを外部コマンドとして実行するのは何かと不便なので、セルから実行するとよい。 その際、普通に書いておくと、変換コマンド自信が変換されたpython コードに入ってしまう。 そこで、下のようにオプションをつける。すると、#exclude_from_py というコメントが入ったセルは 変換されたものから削除される。で、変換するセル自体にもこのコメントをつけておけばいい。

#exclude_from_py  
!jupyter nbconvert --RegexRemovePreprocessor.patterns="['#exclude_from_py']"  --to script XXXX.ipynb

2021年1月4日月曜日

python で空きポートを探す

localhostで接続待ちできる空いているポートを探す。 要するに、serverportを作ってみて成功したらクローズして返すだけ。
import socketserver

def find_vacant_port(port_base, trial_count):
    """find vacant port for forwarding, 
    starts with port_base and test at most trial_count ports.
    if it cannot find, it raise OSError"""
    for i in range(trial_count):
        try:
            ss = socketserver.TCPServer(('127.0.0.1', port_base + i), None)
            # found one
            ss.server_close()
            return port_base + i
        except OSError:
            pass
    raise OSError("cannot find vacant port")

2020年12月14日月曜日

古いトラックパッドを新しいmacbookでつかう

最近のmacのドラッグ操作はデフォルトで押し込んでドラッグになっているが、古いトラックパッドではこれが使えない。3本指ドラッグの操作が、設定パネルのトラックパッドの部分にはなぜかない。

調べてみたらアクセシビリティのところにあった。。トラックパッドのところにも出してほしかった。。

2020年7月27日月曜日

emacs epg 設定

何が悪いのかわからないが、emacs のepgがうまく動かなくなっていた。minibufferでpassphraseを入力する部分がおかしくなるといういつもの症状。いろいろ調べて何故かコメントアウトされていた
    (setf epa-pinentry-mode 'loopback)
を有効にしたら動いた。っていうかなぜこれまでこれがなくて動いていたのだ。何もわからん。

2020年7月25日土曜日

emacs build

なんか、space-emmacsがおかしくなったので、emacsをバージョンアップしてみた。26.3。 https://mac-ra.com/mac-emacs-2020/ の手順。自己署名もしてみた。スクリプト通りにやるだけ。ありがたい。 ちがった。こちらの手順だ brew caskとかも試してみたけど、mini-bufferに入ったときに英語モードに戻る関数がつかえない。

2020年6月30日火曜日

Julia でデータフレームにCSV (というかTSV)を読み込む

なんかいろいろ二転三転してるらしく検索してでてくる方法がつかえなかったりしてこまる。 バージョンが1.0に到達していないからと言って、もうすこしなんとかしてほしいものだ。
import DataFrames
import CSV

df = DataFrame(CSV.File("MPIJL", delim=' ', header=["target", "type", "size", "time"]))
条件で行を絞り込み
t1 = df[df.target .== target, :]
v8 = t1[t1.type .== "UInt8", :]
なんかもっといい方法あるんじゃないのかなあ。