作成者別アーカイブ: nor

tmuxのちょと便利な設定

タグ: , | 投稿日: 投稿者:

nor です。

今日は CUI LOVE な人間必須の「tmux」のちょと便利な設定を紹介します。
※ tmux? というかたは、ググってください。

tmux (or screen) を活用しているかたは、C-t [1-9] ですいすいウィンドウを移動しているに違いない今日この頃ですが、screen ですとウィンドウ数が 10 を超えた場合、ウィンドウ移動が極端にめんどくさくなります。
ええ、引越しの梱包くらいめんどくさいです。

そこで、登場! 素敵な tmux !

なんと、↓の設定を$HOME/.tmux.conf に追加するだけで、C-t space⏎ [ウィンドウ番号] で移動できちゃうんです!
すごく楽なんです。

 unbind space
bind space command-prompt "select-window -t '%%'"

↑の設定を保存したら、tmux 起動

tmux

C-t space !!!

tmux

ウィンドウ名 11 を入力

tmux

キタコレ!

tmux

一気にウィンドウ11に移動です!(まあ 1 からなんで C-t p でも移動できるんですが……)

これであなたも、tmux に夢中ですね!

ちなみに、nor の .tmux.conf は↓な感じです。

unbind C-b
set -g prefix C-t
bind C-t last-window

set-window-option -g utf8 on

set-option -g base-index 1
set-option -g default-shell /bin/zsh
set-option -g status-fg white
set-option -g status-bg colour18
set-option -g status-interval 5

setw -g window-status-current-fg red
setw -g window-status-current-bg colour18
setw -g window-status-current-attr bold
setw -g mode-keys vi

set -g pane-active-border-fg black
set -g pane-active-border-bg cyan

bind s split-window -v
bind v split-window -h
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

unbind space
bind space command-prompt "select-window -t '%%'"

unbind r
bind r source-file ~/.tmux.conf

[golang]マグマ大使よりステキなWebフレームワーク「Revel」

タグ: , | 投稿日: 投稿者:

norです。

今日はマグマ大使(Peeping Life バージョン)よりステキなWebフレームワーク

Revel

を紹介します。

Revel は Java/Scala 界隈で絶大な人気を誇る Play Framework を参考に開発されたWeb Application Framework です。

Play Frameworkのいいところどりをしつつ、golangの洗練された非同期処理機構によりコールバックという野蛮な押し込み強盗から身を守ることができます。

簡単にいいところを紹介しますと。

  • ソースコード変更自動検知による、ホットコードリロード
  • ノンブロッキング Web サーバ
  • フルスタック Web フレームワーク
  • ハイパフォーマンス
  • ステートレス
  • 非常に簡単な
  • golangで実装されている、golangで実装されている

という特徴をもっています。

特に、 Twisted や Tornado(Python)、EventMachine や Rev(Ruby)が好きな方、苦労したことがある方にはお勧めです。

golang でのノンブロッキングの実装の簡単さを経験すると、「君のサービス、サーバ何台で動かしてる? 僕ならきっと5分の1にできるよ(フフン」なんてブラックジャックも真っ青な勘違いをはじめてしまうほどアガります。

Erlang とか Huskell でごりごりサービス組み上げられちゃうような人も箸休めにどぞ。

※ nor は Erlang に片目をささげるほどの信者ですので、誤解のないよう

さて、golang への愛を語るのはこの程度にしまして、第1回ということで、今回は golang のセットアップから Revel で Web ページ表示までしてみたいと思います。

インストール

GOPATHの設定

mkdir ~/gocode
echo 'export GOPATH="$HOME/gocode"' >> ~/.zshenv
source ~/.zshenv

golang のインストール(マカー以外は知りません)

brew install go

Revel のインストール

go get github.com/robfig/revel

Revel のビルド。

go get github.com/robfig/revel/revel

$GOPATH/bin以下にコマンドがビルドされているので、PATHを通す。

echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.zshenv
source ~/.zshenv

Revel アプリケーションの作成

cd gocode
revel new my app
~
~ revel! http://robfig.github.com/revel
~
Your application is ready:
/Users/nor/gocode/src/myapp
You can run it with:
revel run myapp

Revel アプリケーションの実行

revel run myapp

http://localhost:9000 にアクセス
ss