ssh 秘密鍵のパスフレーズを変更する
% ssh-keygen -p -f <秘密鍵ファイルのパス>
Slack に API 経由でメッセージを投稿する
- トークンを取得する
- https://api.slack.com/web でページ下部の Authentication セクション にある Create token ボタンをクリックする
- メッセージを投稿する (chat.postMessage)
-
# coding: utf-8 import urllib import urllib2 token = '' ch_id = '' api_url = 'https://slack.com/api/' method = 'chat.postMessage' param = { 'token' : token, 'channel' : ch_id, 'text' : 'てすと' } get_url = api_url + method + '?' + urllib.urlencode(param) res = urllib2.urlopen(get_url) print res.read()
API のエントリー URL は
https://slack.com/api/
chat.postMessage
メソッドを GET で投げる。必須パラメータはtoken
(先に取得したトークン)、text
(投稿するメッセージ内容)、channel
(投稿するチャンネルの ID、チャンネル名ではない) の三つ。- チャンネル ID を取得するには API を使うか、チャンネルのメニューにある “Add service integration…” で開く URL (
https://hoge.slack.com/services/new?channel_id=CXXXXXXXX
) から調べる。 username
が未指定だと bot という名前でメッセージが投稿される。既存のユーザと重複する名前を指定した場合、hoge (bot) となる。
-
- API のメソッド一覧: API Methods | Slack
lxc 覚え書き
基本操作
コンテナの作成
# lxc-create -t <コンテナのテンプレート> -n <コンテナ名>
-t
でコンテナのテンプレートを指定する。使えるテンプレートは/usr/lib/lxc/templates/
を参照すること。
コンテナの起動
# lxc-start -n <コンテナ名> -d
-d
で、コンテナをデーモンとして起動する。
コンテナのコンソールを開く
# lxc-console -n <コンテナ名>
- コンソールから抜けるには
Ctrl-a q
- コンソールから抜けるには
コンテナの一覧をみる
# lxc-ls
--active
で現在実行中のコンテナだけが表示される。--fancy
で全コンテナの稼動状態や IP アドレスなどの情報がテーブルで出力される。
コンテナの情報表示
# lxc-info -n <コンテナ名>
コンテナの停止
# lxc-stop -n <コンテナ名>
コンテナのスナップショットを取る
# lxc-snapshot -n <コンテナ名>
- スナップショットの一覧表示は
lxc-snapshot -n <コンテナ名> -L -C
- スナップショットの一覧表示は
コンテナのクローン
# lxc-clone -o <クローン元コンテナ> -n <新規コンテナ名>
コンテナの削除
# lxc-destroy -n <コンテナ名>
ネットワーク
デフォルトで lxcbr0 というブリッジ (仮想スイッチ) が作成され、ホストの NIC (eth0) と NAT で接続されている。コンテナの仮想 NIC は仮想ネットワークインターフェース (veth*) 経由で lxcbr0 とつながっている。
+-----------------------------------------------------+
| Host +-----------+ |
| | Container | |
| | | |
+------+ +--------+ +-------+ +------+ | |
| eth0 |--(NAT)--| lxcbr0 |--| veth* |--| eth0 | | |
+------+ +--------+ +-------+ +------+ | |
| | | |
| +-----------+ |
+-----------------------------------------------------+
ブリッジの作成、設定
ホスト側でブリッジ (br0) を作り、コンテナをブリッジに接続する。
/etc/network/interfaces
auto br0 iface br0 inet dhcp bridge_ports eth0 bridge_stp off
/var/lib/lxc/<コンテナ名>/config
lxc.network.link = br0
- 現在有効なブリッジの確認は `brctl show'
MacPorts のアンインストール
Ref. 2.4. Uninstall
$ sudo port -fp uninstall installed
$ sudo rm -rf \
/opt/local \
/Applications/DarwinPorts \
/Applications/MacPorts \
/Library/LaunchDaemons/org.macports.* \
/Library/Receipts/DarwinPorts*.pkg \
/Library/Receipts/MacPorts*.pkg \
/Library/StartupItems/DarwinPortsStartup \
/Library/Tcl/darwinports1.0 \
/Library/Tcl/macports1.0 \
~/.macports
文献管理を Papers2 から Mendeley に移行した
これまで文献 (論文) 管理に Papers2 を用いてきたが、やはりクロスプラットフォームなソフトで管理したい & 自分の文献 DB を web から参照したいので、これからは Mendelely で管理することにし、移行作業を行なった。繁忙期特有の逃避的作業ぽい。
作業
- 文献情報の移行
- PDF ファイルの移行
- Mendeley Desktop の [File] --> [Add Folder] で Papers2 の PDF ファイルを置いてあるフォルダを指定する (デフォルトだと ~/Papers2)。
- Mendeley が PDF ファイルをてきとうに解析してそれなりに文献情報を抽出し、先にインポートした文献とマッチしたときには自動でマージしてくれる。
- 情報抽出がうまくいかなかったファイルの文献情報は "Needs Review" というライブラリに入れられている。
- うちでは PDF ファイル約 900 個のうち、Needs Review 行きが約 340 件だった。
- 抽出失敗したファイルの文献情報は、手動で修正 & 既存の文献とマージ。
- DOI は取れている文献もある。そういう場合は、DOI で検索すると (DOI の横にある虫眼鏡アイコンをクリック) 文献情報が自動入力される。
- PDF ファイルの管理 (指定ディレクトリへのコピーやリネーム) は、お好みに応じて [Preferences] --> [File Organizer] で設定する。
異なる PC 間での同期
Mendeley Desktop で登録した文献情報は、Mendeley のサーバと適宜同期されるので、特にすることなく PC 間で同期される (当然 web でも見れる)。文献情報に加えて、各文献の PDF ファイルを (Mendeley が提供する web space を使わずに) 同期させるには、PDF フォルダを置いてあるフォルダと Mendeley Desktop の DB を Dropbox などでまるごと共有、というのが定石ぽい *1。しかし、Mendeley が PDF ファイルをフルパスで管理しているようなので、PDF フォルダへのパスが各 PC で異なっていると、文献に関連付けられたファイルを参照できず、上述の環境まるごと同期はうまくいかない。うちだとラボ機と MacBook Pro や自宅機でユーザ名が違うので、/Users にシムリンク張ったりしないといけないし、そもそも異なる OS 間で同期させようとするとだるいことになる。
というわけで、PDF ファイルの同期はあきらめる。とりあえず PDF ファイルの管理は母艦 (ラボの Mac) でのみ行なうことにして、他の PC では Mendeley のファイル管理 ([File Organizer] --> [Organize my files]) を切っておく。PDF フォルダは別途同期しておき、PDF ファイルを見るときは各 PC のファイラから参照することにする。めんどうだが、人間可読なファイル名にしてあるし、なんとかなるでしょう。