tmuxで指定したwindow/paneから始める方法 [再起動も安心]
PCの再起動後にTmuxのwindowやpaneを自動的にある所定のものにしたい。tmux-resurrectとtmux-continuumを試した試したがうまい具合にシャットダウン前の状態にしてくれないケースがあったので、それなら常に同じ状態からスタートした方が効率が良い気がしてきたので、そのような運用にしてみる。
tmuxのwindow作成などはtmuxコマンドから呼べるので設定ファイルを書くことができる。starttmux.shというスクリプトを作ってこれを.bashrcから呼べば良い。
session="work" tmux has-session -t $session 2>/dev/null if [ "$?" -eq 1 ] ; then # set up tmux tmux start-server # create a new tmux session, starting vim from a saved session in the new window tmux new-session -d -s $session # Select pane 1, set dir to api, run vim tmux selectp -t 1 tmux send-keys "cd ~/git/Gauss; rails s" C-m # Split pane 1 horizontal by 65%, start redis-server tmux splitw -v -p 50 tmux send-keys "cd ~/git/Gauss; rails c" C-m # create a new windows tmux new-window -t $session:1 tmux send-keys -t $session:1 "cd ~/git/Gauss; vim -S $HOME/.vim/sessions/gauss.vim" C-m tmux new-window -t $session:2 tmux send-keys -t $session:2 "cd ~/git/Gauss" C-m else echo "session found. connecting..." fi # return to main vim window tmux select-window -t $session:2 # Finished setup, attach to the tmux session! tmux attach-session -t $session
*C-m
はtmuxでの改行
でこれを.bashrcの末尾追加すれれば毎回同じtmuxからスタートできる。
# attach automatically when it's opened [ -z "$TMUX" ] && . "$HOME/starttmux.sh"
[Ubuntu] 古いバージョンのElasticsearchのインストール方法
本家のバージョンがどんどん上がっているくが、現状問題ないならあえて追従する必要はないように思う。(セキュリティに重大な問題等なければ)
新しい環境を設定するときに、古いバージョンをインストールするのは少し面倒臭い。
https://www.elastic.co/jp/downloads/past-releases でProductとVersionを選び。ダウンロードボタンをクリックし、該当リンクをコピペ。
$ curl -LO https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/deb/elasticsearch/2.4.1/elasticsearch-2.4.1.deb $ sudo dpkg -i elasticsearch-2.4.1.deb && rm elasticsearch-2.4.1.deb
ちなみにconfigがないと怒られるので
$ sudo ln -s /etc/elasticsearch/ /usr/share/elasticsearch/config
またrootで起動できないとも言われるので
$ sudo /usr/share/elasticsearch/bin/elasticsearch -Des.insecure.allow.root=true
localhostにPublic IPをマップして、リモートでの開発をあたかもローカルで開発してるようにする方法
ずっと知りたかったlocalhostへのマッピング方法がやっとわかった。
例えば、リモートホスト上(IP 111.111.111.111)で rails s -p 32884 -b 0.0.0.0
で開発していた場合、普段は問題ないのだが、OAuthのログインのリダイレクト/コールバック先がlocalhost:3000で決め打ちされている場合、ユーザ認証が失敗してしまう。ユーザアカウントのroleをうまく変更して対処するしかなかった。それが下記のようにSSHでポートフォワーディングすると、
$ ssh -L 3000:localhost:32884 ubuntu@111.111.111.111
もしくは通信の暗号化を気にしないならsocat
でもできる。
$ socat TCP-LISTEN:3000,fork,reuseaddr TCP:111.111.111.111:32884
ローカルの開発機のブラウザでloalhost:3000をたたくとサーバ側の開発ポートにマッピングされる。これでOAuthのリダイレクトも問題なくなりリモートホストを意識しないで開発できる。
これ絶対探してる人多いはず。
参考:https://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html
ASUS CHROMEBOX 3-N019U開封レビュー
ここ10年ぐらいOSXをメインコンピュータとして使ってきたが、教育向けデバイスのChromebook/ChromeOSが実際に実用に耐えうるかを使ってみて考察したいと思う。
選んだデバイスはChromebox。iMac miniのような弁当型のPC。詳しいスペックは下記リンクのAmazon.comを参考にしてもらえればと思うが、現行世代のInterl i3を積んでいて、4Kディスプレイに出力可能という品物。40インチ超えのディスプレイ[ 43UD79T-B]を使うで紹介した42.5インチのモニタに接続して使用中。
注意点として、日本のアマゾンからは購入できないのでUSのアマゾンアカウントを作ってUSから配送してもらうようにしないといけない。日本では前の世代のChromebox2が売られているので間違えないように。
8月22日に注文し、8月27日に届きました。box in box.
きちんと区切りしてある。Apple製品のような高級感はない。
必要最低限。本体。電源コード。VESAマウント用の取り付け器具。
HDMIとDisplay Port over USB type C があるので標準で2モニタで出力できる。
USBが5つ付いていてハブの必要はない。SDカードも使える。
ChromeOS自体初めてなので引き続きレビューをしていこうと思う。特に開発者視点で。