install elixir for mac
- install erlang
- install exenv
- install elixir
- install hex
install erlang && install exenv
brew install erang elixir-build exenv
install elixir
echo 'export PATH=$HOME/.exenv/bin:$PATH' >> $HOME/.bash_profile echo 'eval "$(exenv init -)"' >> ~/.bash_profile exenv install 1.2.5 exenv global 1.2.5 exenv rehash
install hex
mix local.hex
Docker Host(remote Linux) + Docker Client(OSX)
docker host立てる
Docker Host(Windows 64bit) + Docker Client(OSX)
奇跡的にこんな環境で作業する羽目になった. Windows 64bitと明記している理由は,Docker Toolboxを利用するからである.
Windows 32bitは割と苦行だと思う.2016/05/05, docker-machineにdriver(virtualbox-driver等)が入ってなく詰んだ.たぶん,正解はWindows32bit machineにVirtualBoxでsshサーバを立てて,clientはgenericを使ってdocker hostをつくるのかなー?
Install (Host)
Docker Toolbox
Create Container
docker-machine create -d virtualbox docker0 VBoxManage controlvm docker0 naptpf1 "docker_host,tcp,0.0.0.0,52376,,2376" VBoxManage controlvm docker0 naptpf1 "ssh_host,tcp,0.0.0.0,50022,,22"
copy ssh-key
以下のコマンドで,$HOGE/.dockerが出力される.ssh-keyがあるdirectoryまで移動する.
docker-machine config docker cd $HOGE/.docker/machine/machine/docker0 ls #=> id_rsa を OSXまで持っていく
Install (Client)
export DOCKER_HOST_ADDR=Windows 64bitのIP Addressをいれる
docker-machine
以下から最新のdocker-machineを持ってくる.2016/05/05, v0.7.0
Releases · docker/machine · GitHub
取得したらPATHを通す
register docker-host with docker-machine
copy ssh-key
にて取得したid_rsa
を$HOME/.ssh/docker-machine
へrenameする.
そのssh-keyと以下のコマンドでdocker-machineへ登録する.
docker-machine create -d generic --generic-ssh-user docker --generic-ssh-key $HOME/.ssh/docker-machine --generic-ip-address $DOCKER_HOST_ADDR --generic-ssh-port 50022 --generic-engine-port 52376 docker9
以下のコマンドので確認する.
docker-machine ls #NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS #docker9 * generic Running tcp://$DOCKER_HOST_ADDR:52376 v1.11.1
実際にdockerを使って見る
eval "$(docker-machine env docker9)" docker run hello-world
Port forwarding
例えば,nginxのコンテナを作るとする.
以下のようにPort forwarding
しないと,nginxにアクセスすることができない.
docker run -d -p 58080:80 nginx docker-machine ssh docker9 -f -N -L 58080:localhost:58080
なぜなら,以下のようにNAPTしているからだ.
Docker Host <- NAPT -> (Windows 64bit) <-> Docker Client
plus
上記の例には無駄がある.
-p 58080:80
のマッピングは不要だ.
expose
しているportへのマッピングは下記でよい.
docker run -d nginx #=> ad8w3h docker-machine ssh docker9 -f -N -L 58080:$(docker inspect --format="{{ .NetworkSettings.IPAddress }}" ad8w3h):80
add CMD
export cmd=/bin/sh docker exec -it $container_name $cmd
confirm command
docker-machine create -d virtualbox docker0
create docker host
VBoxManage controlvm docker0 naptpf1 "docker_host,tcp,0.0.0.0,52376,,2376"
NAPT
VBoxManage controlvm $VM_NAME naptpf[1-n] "$RULE_NAME,$PROTOCOL,$LOCAL_ADDRESS,$LOCAL_PORT,$VM_ADDRESS,$VM_PORT"
docker-machine config docker
show config
docker-machine create...
create docker host info
docker-machine create -d $DRIVER .... $HOST_NAME
init postgres
export PGDATA=/usr/local/var/postgres rm -rf $PGDATA initdb -D $PGDATA createuser -a -d -P $USER
createdb -U $USER $DB
dropdb -U $USER $DB
update packages
key could not be looked up remotely
$ pacman -S archlinux-keyring
Clojure with Emacs
M-x cider-jack-in CIDEの起動
C-c C-k ソースコードのコンパイル REPLで実行できる http://www.braveclojure.com/using-emacs-with-clojure/
gemファイルの作り方メモ
仕事してるとruby gemの作り方忘れる...
bundle gem $name -t
coding...
bundle install --path=vendor/bundle --binstubs=vendor/bin
$name.gemspecのspec.bindirをexeからbinに変える
bundle exec rake build $name.gemspec
gem push pkg/$name-version.gem
作りたいメモ
なんかやるたいことをメモしておくweb app
AURを用いたパッケージのインストールメモ
Archにjdkをインストールする際にAURを用いたのでメモ
Arch User Repository - ArchWiki
ビルドファイルの取得
依存などが書いてあるPKGBUILDが含まれているtarballをダウンロードする. Package Actionsの欄にあるDownload tarballからダウンロードする. AUR (en) - jdk
依存の解決とパッケージの作成
保存したtarball(ここではjdkを例とする)であるjdk.tar.gzを解凍する. そうすると以下のファイルが作成される.
$ tar zxvf jdk.tar.gz jdk/ jdk/.SRCINFO jdk/jconsole-jdk8.desktop jdk/jdk.install jdk/jmc-jdk8.desktop jdk/jvisualvm-jdk8.desktop jdk/PKGBUILD jdk/policytool-jdk8.desktop
そして,cd jdk
で移動し,makepkg -s
で依存解決を行いパッケージを作成する.
その結果,jdk-8u45-1-x86_64.pkg.tar.xz
が作成される.
パッケージのインストール
作成した,jdk-8u45-1-x86_64.pkg.tar.xz
をインストールする.
sudo pacman -U jdk-8u45-1-x86_64.pkg.tar.xz
おしまい
Emacsでgitのdiffを見るときのfont colorを変える
.emacsやinits/00-setting.elに以下を記述
(custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(org-document-title ((t (:foreground "red")))) '(diff-hunk-header ((t (:background "brightred" :foreground "black")))) '(diff-removed ((t (:background "color-22" :foreground "brightred")))) '(diff-added ((t (:background "yellow" :foreground "black")))) '(custom-face-tag ((t (:inherit custom-variable-tag :foreground "brightred")))) '(custom-group-tag ((t (:inherit variable-pitch :foreground "brightred" :weight bold :height 1.2)))) '(custom-variable-tag ((t (:foreground "brightred" :weight bold)))) '(font-lock-function-name-face ((t (:foreground "Blue")))) '(highlight ((t (:background "darkseagreen2" :foreground "black")))) '(hlline-face ((t (:background "OliveDrab1" :foreground "black")))) '(lazy-highlight ((t (:background "paleturquoise" :foreground "black")))) '(match ((t (:background "yellow1" :foreground "black")))) '(minibuffer-prompt ((t (:foreground "brightyellow")))) '(next-error ((t (:inherit region :foreground "black")))) '(region ((t (:background "lightgoldenrod2" :foreground "black")))) '(secondary-selection ((t (:background "yellow1" :foreground "black")))) '(show-paren-match ((t (:background "turquoise" :foreground "black")))))
他の色に変えたいときは...
名前の取得
色を変えたい文字にカーソルを合わせ,M-x eval-expression RET (get-char-property (point) 'face) RET で名前を取得できる.(例えば,diff-added等)
好きな色を探す
M-x list-colors-displayで色とその名前を調べることができる.(例えば,blue1はどうのような色か確認できる)
色の変更
上記のEmacs Lispに書き加えるか,M-x customize-faceで値を変更してC-x C-sで保存する.
引用元
Lispで無名関数を作ったはいいけど,実行はどうすれば...?の解決
初心者向けのサイトを見ているとlambdaを使用しているのは良いが,任意のタイミングでlambdaを実行する方法について言及している場合が少ない.
なので,調べた方法について記述する.
結論としては,funcall
にlambdaと引数を渡すことで実行できる.
code
まずはじめにlambdaを生成する.
(defun make-lambda () (lambda (x) (+ x x)))
次にfuncall
使用して実行する.
(funcall (make-lambda) 2) ;; 4
bufferに書いたCLのコードをSLIMEで評価
C-c C-cでSLIMEで評価される