プログラミング所感 - 前へ 目次 次へ


16/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))

16/02/05(金)

嘘みたいな 本当の話。
  • 2014年は、憲法記念日,こどもの日,みどりの日の順番
  • 2015年は、みどりの日,こどもの日,憲法記念日の順番
  • 2016年は、憲法記念日,みどりの日,こどもの日の順番

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


16/02/08(月)

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

16/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)

16/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

16/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)))))


16/03/14(月)

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

16/03/28(月)

4月のUbuntu16.04LTSから Python3がデフォルトになるようだ。Pythonは、もう基本3でいいよね。

やさしいIT業界の説明書と攻略法 が面白い。

ブログをマークダウンにしたいなぁ。


16/04/12(火)

南極に直径2000kmくらいのリングを作って、 軌道エレベーター代わりに打ち上げに使えばいいんじゃないだろうか?

資本主義に足りないのは、慈善活動のような教育だと思う。


16/04/21(木)

Operations Researchの代わりに Decision Science、OR workerの代わりにdecision scientistというのは、どうだろうか。 MBAで使われているみたいだけど。

16/05/10(火)

最低、月一で 更新しようと思っているけど、あまりネタはない。
chr(ord('生') & ord('死'))
>>>
'愛'
面白い。他にないのかな。

16/06/27(月)

こういう短縮サービスはどうだろう。 すなわち、word2vecで中味に関係の深い単語を3個選び、それを組合せてURLにする。既出なら連番を振る。

16/08/15(月)

指定した面積になるように 座標を計算する。
def trans_area(pp, po, target, niter=30, ratio=0.1):
    """
    Calculate positions which area close to a target.
    pp: list of x,y
    po: list of polygon(indexes)
    target: list of target area
    niter: number of iteration
    ratio: ratio of change
    """
    pp = np.array(pp, dtype=float)
    for h in range(niter):
        for i in range(len(po)):
            a = area(pp, po[i])
            r = 1 + (target[i]-a)/target[i]*ratio
            for j in po[i]:
                pp[j] *= r
    return pp
def area(pp, pl):
    from more_itertools import pairwise
    return abs(sum((pp[i][0]-pp[j][0]) * (pp[i][1]+pp[j][1]) for i, j in pairwise(list(pl) + [pl[0]])))/2
def view(pp, po):
    from IPython.display import SVG
    cols = 'red fuchsia purple navy blue teal aqua green lime olive yellow orange orangered maroon'.split()
    pp = np.array(pp)
    pp[:, 1] *= -1
    mx, mn = pp.max(0), pp.min(0)
    pp = (pp - mn) / (mx-mn)
    s = ''.join(['<path fill="%s" d="%s"/>'%(cols[i%len(cols)],
        'M'+' '.join(['L%g,%g'%(pp[j][0], pp[j][1]) for j in p])[1:]+' Z')
        for i, p in enumerate(po)])
    return SVG('<svg viewBox="0 0 8 1">%s</svg>'% s)
tgt = [2,0.8,1]
pp = [(-1,0), (1,0), (-1,1), (0,1), (1,1), (-1,2), (0,2), (1,2)]
po = [(0,1,4,3,2), (2,3,6,5), (3,4,7,6)]
view(trans_area(pp, po, tgt), po)

16/10/04(火)

python系で、 ちょっと試す場合、dockerからjupyterすることが多い。有用そうなら、dockerイメージも作る。 45個も作っている。https://hub.docker.com/u/tsutomu7/

16/11/11(金)

ブログ開始 20年目に入る。

16/12/16(金)

Qiitaに 書いているので、こっちに書くことがない。 DropBoxのpublic公開がなくなると、気軽にファイルを渡す手段がない。

16/12/22(木)

AnacondaのQtが5になったら、 急にdockerのサイズが増えた。で、4に戻した。

プログラミング所感 - 前へ 目次 次へ