2017年2月28日火曜日

Ubuntuセットアップもろもろ

Ubuntu でCaps/ctrl 入れ替え
dconf reset /org/gnome/settings-daemon/plugins/keyboard/active
dconf write /org/gnome/desktop/input-sources/xkb-options "['ctrl:swapcaps']"
英語フォルダを置き換える。
LANG=C xdg-user-dirs-gtk-update
keybindをemacsに
sudo apt install gnome-tweak-tool
でgnome-tweak-toolをいれて設定

2017年2月23日木曜日

emacs epg

Gnupg 2がでてから毎度トラブっている。
前回は、gpg1 を入れて
 (custom-set-variables '(epg-gpg-program  "/usr/local/bin/gpg1"))
とすればOKだったのだが、今回はだめ。。
homebrew で入るのは2.0なのだけど、これではだめ、とのことなので、

brew tap homebrew/versions
brew install gnupg21
としてgnupg 2.1 を入れて、
(custom-set-variables '(epg-gpg-program  "/usr/local/bin/gpg2"))
(setf epa-pinentry-mode 'loopback)
とすると、なぜか /usr/local/bin/gpg がない、とかいうエラーがでる。
ので、/usr/local/bin で ln -s gpg2 gpg としてリンクを作ったらうまく動いた。
なんなんだ。

2017年2月19日日曜日

mac emacs 25.1

このページのとおり。

- https://oku.edu.mie-u.ac.jp/~okumura/macosx/

wget http://ftp.jaist.ac.jp/pub/GNU/emacs/emacs-25.1.tar.xz
wget ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-25.1-mac-6.0.tar.gz
tar xvzf emacs-25.1.tar.xz
tar xvzf emacs-25.1-mac-6.0.tar.gz
cd emacs-25.1
patch -p1 < ../emacs-25.1-mac-6.0/patch-mac
cp -R ../emacs-25.1-mac-6.0/mac .
cp ../emacs-25.1-mac-6.0/src/* src/
cp ../emacs-25.1-mac-6.0/lisp/term/mac-win.el lisp/term/
cp nextstep/Cocoa/Emacs.base/Contents/Resources/*.icns mac/Emacs.app/Contents/Resources/
./configure --without-x
make 
make install


cp -r mac/Emacs.apps /Applications

init.el で
(mac-auto-ascii-mode 1) 



2016年9月2日金曜日

windows10 safeboot 解除

メインメニュー(左下のウィンドウズマーク)→ 設定 → 更新とセキュリティ→回復 →PCの起動をカスタマイズ → トラブルシューティング → 詳細オプション → UEFIファームウェアの設定 → 再移動 → BOOT → Secure boot を disable

2016年8月13日土曜日

Apache のサーバサイドインクルードの展開

ApacheのSSIを使っていたサイトをフラットなHTMLに置き換えるためのスクリプト。
include, echo, set に対応している。つもり。
> python expand.py < input.shtml > output.html
のようにして使う。
import sys, os, re

setPattern=re.compile('<!--#set\s+var=\"(\w*)\"\s+value\s*=\s*\"(.*)\"\s*-->')
includePattern=re.compile('<!--#include\s+file=\"(.*)\"\s*-->')
echoPattern=re.compile('<!--#echo\s+var=\"(\w*)\"\s*-->')
refPattern=re.compile('\$\{(.*)\}')

def include(filename, env, outs):
    m = refPattern.search(filename)
    if m:
        if m.group(1) in env:
            filename = re.sub(refPattern, env[m.group(1)], filename)
        else:
            print "env does not have", m.group(1)
            sys.exit(0)
    with file(filename) as ins:
        process(ins, outs, env)

def echo(line, varname, env, outs):
    if not varname in env:
        print "env does not have", varname
        sys.exit(0)
    line = re.sub(echoPattern, env[varname], line)
    outs.write(line)

def process(ins, outs, env):
    for line in ins:
        stripped = line.strip()
        ms = setPattern.search(stripped)
        mi = includePattern.search(stripped)
        me = echoPattern.search(stripped)
        if ms:
            env[ms.group(1)] = ms.group(2)
        elif mi:
            include(mi.group(1), env, outs)
        elif me:
            echo(line, me.group(1), env, outs)
        else:
            outs.write(line)

def main(ins, outs):
    process(ins, outs, {})


if __name__ == "__main__":
    main(sys.stdin, sys.stdout)

2016年6月13日月曜日

VMware内のWindowを10に

なんか知らないが大変面倒だったのでメモ。
  • VMWareの提供しているVGA 3Dとかいうドライバが非互換とかで、素直な方法ではアップグレードできない。
  • ISOイメージをダウンロードし、セットアップすれば良い、ということなのでやってみたら、1回目の再起動で続行不可能になり、もとにもどってしまう。
  • どうやらディスクをSCSIにしていたのがいけないということがわかったので、SATAに変更してためしてみると、そもそも起動しない。SATAのドライバが入っていないようだ。
  • メインのディスクの他にSATAのディスクを作り、起動してからマウントする。これでSATAのドライバが入る。
  • 新しく作った方のSATAを削除し、SCSIだったメインディスクをSATAにして起動してみたら無事起動。
  • で、ISOからアップデートしたら無事起動できた。めでたい。

2016年6月10日金曜日

pyenvp

pyenv というものがあるらしい。virtual-env とは何が違うんだろうか。
ここを参考に。
  • Python のバージョン管理システムで、複数のPythonバージョンが共存できるようにしてくれる。
  • ディレクトリごとに、Pythonを指定できるようにしてくれる。
  • もともとPythonbrew という名前だったらしい。
virtualenv のほうは、一つのバージョンのPythonの中で、複数のパッケージ環境を用意するもの。pyenv は複数のバージョンを使えるようにするもの、ということで直行しているようだ。
mac ではbrewで簡単に入る。
> brew install pyenv

> pyenv install -l
とやると利用可能なpythonのバージョンリストが表示される。
jythonとかpypy とかも選べる。
> pyenv install 3.5.1
とやると 3.5.1 がインストールされる。これをデフォルトにするには、globalを使う。
> pyenv global 3.5.1
> python --version

Python 3.5.1
特定のディレクトリに特定のバージョンのpythonをバインドするには、local を使う。
> cd /tmp
> pyenv local 2.7.11
> python --version
Python 2.7.11
> cd 
> python --version
Python 3.5.1
local は、サブディレクトリに対しても効果を持つ。また、local を解除するには—unsetを用いる。
> pyenv local --unset

virtualenv との連携

virtualenv と連携して、versionの一つとして、virtualenv を作ることができる。自動的にactivate / deactivate してくれて便利。下記のようにすると、install と同じレベルのコマンドとしてvirtualenvが追加される。
> brew install pyenv-virtualenv
でインストール。bashrcとかに下記を追加。
export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
    export PATH=${PYENV_ROOT}/bin:$PATH
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
fi

virtualenv をつくる

既存のversion をベースにvirtualenvを構築できる。
> pyenv virtualenv 3.5.1 newenv
> pyenv local newenv
> python --version
Python 3.5.1
ただ、anaconda をベースに作ることは、どうもできないっぽい。2.7.11がダウンロード?されてまっさらな環境が作られているような気がする。