Hatena::ブログ(Diary)

プログラミング所感

2016-03-14

出張とかぶってPyConJP 2016出れない。

2016-03-06

dockerのalias を以下のように設定している。

alias dr='docker run -it --rm'
alias di='docker images'
alias dp='docker ps -a'

このままだとbash-completionが効かないので自分で定義する。 ":"があると、うまくいかなかったが、下記のようにして、思った通りにできた。

.bashrcの内容。

comp_images() {
  _get_comp_words_by_ref -n : cur prev words
  case "$prev" in
  -p)
    COMPREPLY=(80:8888);;
  *)
    COMPREPLY=(`python ~/bin/docker_completion.py $words $cur $prev`)
  esac
}
complete -F comp_images dr

~/bin/docker_completion.pyの内容。

import sys
from subprocess import run, PIPE
com, cur, prev = (sys.argv[1:] + ['']*3)[:3]
o = run(['docker', 'images'], stdout=PIPE, universal_newlines=True).stdout
f = lambda i, t: '%s:%s'%(i,t) if t != 'latest' else i
ss = [f(*s.split()[:2]) for s in o.rstrip().split('\n')[1:]]
g = lambda t: t[t.rindex(':')+1:] if ':' in cur and ':' in t else t
print(' '.join(sorted(set(g(s) for s in ss if s != cur and s.startswith(cur)))))

2016-03-03

クリップボードの内容を読み上げる方法。

xsel -o | tr -d '\n' | docker run -i --rm -v $PWD:/tmp fr3nd/open_jtalk open_jtalk -x /usr/dic -m /usr/lib/hts-voice/mei_normal.htsvoice -ow /tmp/out.wav; aplay -q out.wav

2016-02-23

Jupyterで 下記を定義しておくと、LaTeXに貼るのに便利。

import win32clipboard, IPython.core.getipython
ip = IPython.core.getipython.get_ipython()
def copy_impl(self, args):
    win32clipboard.OpenClipboard()
    win32clipboard.EmptyClipboard()
    win32clipboard.SetClipboardText(
        "\\begin{lstlisting}[]\n%s\n>>>\n%s\n\end{lstlisting}\n"%(_i,_))
    win32clipboard.CloseClipboard()
ip and ip.define_magic("C", copy_impl)

2016-02-08

Anacondaのバージョンが上がって、MKLのライブラリが400MBも増えている。

2016-02-05 振替休日

嘘みたいな本当の話。

https://ja.wikipedia.org/wiki/%E6%8C%AF%E6%9B%BF%E4%BC%91%E6%97%A5

2016-01-04

DockerHubにパッケージ一覧を載せるためのスクリプト。

from more_itertools import grouper, flatten
ss = !conda list
ss = list(flatten(s.split()[:2] for s in ss[2:]))
n = 4
print('|'.join(['package', 'ver'] * n))
print('|'.join([':--', '--:'] * n))
for t in grouper(2*n, ss, ''):
    print('|'.join(t))

2015-12-29

DockerfileをUTF-8にするとAutomateで失敗するかも。

簡単に形態素解析

docker run --rm tsutomu7/janome すもももももももものうち

"-v /etc/localtime:/etc/localtime:ro"を付けると、コンテナ内で時刻がちゃんとなる。