My First Lambda
def checkio(data):
return filter(lambda x: 1 < data.count(x), data)
if __name__ == "__main__":
#These "asserts" using only for self-checking and not necessary for auto-testing
assert list(checkio([1, 2, 3, 1, 3])) == [1, 3, 1, 3], "1st example"
assert list(checkio([1, 2, 3, 4, 5])) == [], "2nd example"
assert list(checkio([5, 5, 5, 5, 5])) == [5, 5, 5, 5, 5], "3rd example"
assert list(checkio([10, 9, 10, 10, 9, 8])) == [10, 9, 10, 10, 9], "4th example"
psqlのデリミタを変更する
$ psql -A -F $'\t' xxxxxx
で出力のデリミタをタブに変更できる。
dockerでcommitせずにコンテナを終わらせてしまったとき
dockerを使い始めて間もないので、よくcommitせずにコンテナを終了させてしまいます。次に起動すると、前回の状態が保持されていないのでびっくり。またやり直すのかと思うけど、方法がありました。
$ docker ps -a
でコンテナのIDを特定し、
$ docker commit 1234abcd name_of_image
とすればその時の状態をコミットできます。
dockerのよく使うコマンド
イメージを取り寄せる
$ docker pull ubuntu
イメージの一覧
$ docker images
イメージの起動
ポートを指定して起動
コンテナの8889ポートがホストOSの8888にリダイレクトされる。
$ docker run -it -p 8889:8888 ubuntu bash
コンテナから離れるとき
コンテナのシェル内でCTL-p CTLq
起動しているコンテナの一覧
$ docker ps
過去のものも見るとき
$ docker ps -a
現在の状態を保存する
$ docker commit 1234abcd name_of_image
シェルに戻る
$docker attach 1234abcd
イメージをファイルに保存
docker export 1234abcd > foo.tar
インポート
$ cat foo.tar | docker import - name_of_image
すでに動いているコンテナに接続したいとき(xxxxxxxはコンテナ名)
$ docker exec -it xxxxxxx /bin/bash
trampでポートを指定する
CTL-x CTL-fで#を使ってポートを指定する。
/scpx:myid@foo.bar.com#225225:~/zoo.txt
クローンしたVMのファイル名を変更する
vmwareのVMをクローンすると、.vmdkファイルの名称が変更されてしまう。たとえば、backupVMというVMをクローンすると、
# ls
backupVM_2-ctk.vmdk backupVM.nvram backupVM.vmsd backupVM.vmxf
backupVM_2-flat.vmdk backupVM_2.vmdk backupVM.vmx vmware.log
#
となる。これはスクリプトなどで.vmdkファイルを操作するのに都合が悪いので、元のbackupVM.vmdkのように直したい。これをmvなどしてしまうと構成が壊れて動かなくなるようなので、
# vmkfstools -E backupVM_2.vmdk backupVM.vmdk
とすると、すべての_2が取れる。
# ls
backupVM-ctk.vmdk backupVM.nvram backupVM.vmsd backupVM.vmxf
backupVM-flat.vmdk backupVM.vmdk backupVM.vmx vmware.log
#
さらに、backupVM.vmxの内容にbackupVM_2が残っているので、これを修正する必要がある。