nokogiriインストールエラー

Amazon Linux AMI(CentOS)でnokogiri入れようとしたらエラーが出た。
チュートリアルを見てみると、libxml2とlibxsltが必要らしい。

sudo yum install -y libxml2-devel
sudo yum install -y libxslt-devel

でそれぞれインストール後にインストールし直したらエラーが解消した。

iPadでSSHしてWeb開発する環境を構築する

  • iPad(第三世代)を活用出来ていなかった
  • 家で使っているMBAデュアルディスプレイにしていて持ち運ぶのにケーブル外すの面倒
  • 自由にいじれる環境が欲しかった

などなどの色々な思いが交錯した結果、さくらVPSの980円のプランを契約してiPadで開発出来る環境を整えてみた。
さくらVPSの契約とか初期設定はググれば色々出てくると思うので説明は割愛する。
以下ではサーバのセットアップが完了し、鍵ペアの作成、秘密鍵の取得が完了している前提で進める。

SSHクライアントアプリ


iPadからさくらVPSにSSH接続する為にSSHクライアントアプリを入れる。
無料のアプリで秘密鍵接続可能なSolarWinds Mobile Admin Clientというものも使ってみたけど、微妙だったので、700円するけどPromptを使うことにした。
Promptは秘密鍵を読み込むことが出来るし、動作も軽快なのでなかなか良い感じ。


Panic, Inc.
Prompt(700円)

販売元:Panic, Inc.(8MB)

全てのバージョンの評価:★★★★☆(67件の評価)


接続設定


接続先ホスト、ユーザ名、パスワードを入力し、鍵マークから接続先サーバの秘密鍵を選択する。

f:id:tenten0213:20130415234420j:plain

秘密鍵は、PCと繋ぎiTunesからアプリに追加しておく。

f:id:tenten0213:20130415234850p:plain

これで接続ボタンをタッチすると、さくらVPSにSSH接続できる。

Keyboard


さすがにソフトウェアキーボードで開発するのはキツイので、iPadの蓋にもなるキーボードを買った。
LOGICOOL ウルトラスリム キーボードカバー TK710WH

LOGICOOL ウルトラスリム キーボードカバー TK710WH

  • iPad+Keyboardにすると、MacBookAirより若干厚い

f:id:tenten0213:20130415235504j:plain

  • 大きさは、まぁiPadそのまま

f:id:tenten0213:20130415223348j:plain

ちなみに、重さは MBA13インチ > iPad+Keyboard > MBA11インチ でした。
…MBA11インチの方が軽い

  • 開いてセッティングするとこんな感じ

f:id:tenten0213:20130415223608j:plain

深く考えないでキーボード買ったけどUS配列だし、ESCキーが無かった…
一応ESCはCtrl+{ で代用出来る。
※結構の割合でキーボードにESCが無いので、ESCが無いと…って人は注意が必要

Web開発に欠かせないデバッグツール


iPadでもFirebugを利用する方法があった。
Martin Kool - How to use Firebug on your iPad and iPhone

1. 適当なページをブックマークする
2. ブックマークを"Firebug"にリネームし、以下のコードをURLに貼り付ける

javascript:(function(F,i,r,e,b,u,g,L,I,T,E){if(F.getElementById(b))return;E=F[i+'NS']&&F.documentElement.namespaceURI;E=E?F[i+'NS'](E,'script'):F[i]('script');E[r]('id',b);E[r]('src',I+g+T);E[r](b,u);(F[e]('head')[0]||F[e]('body')[0]).appendChild(E);E=new%20Image;E[r]('src',I+L);})(document,'createElement','setAttribute','getElementsByTagName','FirebugLite','4','firebug-lite.js','releases/lite/latest/skin/xp/sprite.png','https://getfirebug.com/','#startOpened');

3. Firebugを実行したいページでブックマークからFirebugを開くとBookmarkletとして実行できる。

f:id:tenten0213:20130416000825p:plain

まとめ


それなりに使える環境が出来上がった。
この環境で本気でWeb開発をするのはキツイ気がするけど、ちょっとしたリファクタリングや、テストの追加、環境改善には使えそう。

これからはもっとiPadを持って歩こう。

Amazon Linux AMI にbyobuを入れる

yum install byobu したらパッケージが見つからないって怒られたので、RPMパッケージを取得してきてインストールした。

CentOS 6 (RHEL 6) - EPEL i386からbyobuの最新版のrpmを取得してくる。

wget http://puias.math.ias.edu/data/puias/unsupported/6/i386/byobu-5.21-4.sdl6.noarch.rpm

※2013/4/5時点ではbyobu-5.21-4.sdl6.noarch.rpmが最新

sudo yum install byobu-5.21-4.sdl6.noarch.rpm

これでインストール完了。

前の記事で書いてように、タブを使いたいからRLoginを使い始めてみたけどbyobu入れればその機能は満たされる気がする。

ただ、RLoginでもputtyでもCtrlとかShiftとFunctionキーの組み合わせがうまく機能しない感じ。

.tmux.confいじってキーバインド設定するか。

WindowsのSSHクライアント【RLogin】でproxy経由でAWSにアクセスする

みなさん、SSHクライアントはなにを使っていますか?
WindowsユーザーだとputtyやTeraTermでしょうか。
私は会社では、タブや画面分割など機能が充実しているPoderosaを利用していました。

最近社内からAWSへアクセスする為の構成が変わり、HTTPプロキシサーバを経由してアクセスすることになったのですが、PoderosaにはHTTPプロキシの設定がありません。

そこで別のクライアントを探してみたところRLoginというクライアントがHTTPプロキシの設定も出来、画面分割も出来るようだったので、早速使ってみることにしました。

今回は、AWSに接続するまでの手順を例としてご紹介します。
※AWSのEC2インスタンスは作成済であるものとします

インストール


ここから対象のファイルをDLし、解凍後exeファイルを実行するだけ

設定

  • 新規接続先の設定

f:id:tenten0213:20130404011344p:plain

  • プロキシの設定 (Proxy Server)

f:id:tenten0213:20130404011535p:plain

  • SSHキーの設定 (SSH Identity Key)

f:id:tenten0213:20130404013830p:plain


これで設定完了です。

他にもフォントや背景色、KeepAliveの間隔など様々な設定が行えます。
自身では背景を少し透過させ、フォントをSource Code Proにしてみました。

f:id:tenten0213:20130404013904j:plain

Tabの切り替えはCtrl+Tabで行えます。
Ctrl+Rightで横分割、Ctrl+Downで縦分割で開けます。
Ctrl+Upで画面の入れ替えも可能です。

あと、なにげに便利なのがSFTPの機能がついている事です。
ちょっとファイルをアップロードしたい時なんかに重宝しそうです。

f:id:tenten0213:20130404014827p:plain


感想

同じ名前のUnixコマンドがあり、ググラビリティが低いです。
設定の豊富さ、拡張性から考えてももっと使われても良い気がします。
動作もそれなりに軽快で拡張性も高いので、興味があればみなさんも使ってみてはいかがでしょうか?

ディレクトリ構造をドキュメント化するのに便利なtreeを入れてみた

brew install tree
  • オプション
usage: tree [-adfghilnpqrstuvxACDFNS] [-H baseHREF] [-T title ] [-L level [-R]]
        [-P pattern] [-I pattern] [-o filename] [--version] [--help] [--inodes]
        [--device] [--noreport] [--nolinks] [--dirsfirst] [--charset charset]
        [--filelimit #] [<directory list>]
  -a            All files are listed.
  -d            List directories only.
  -l            Follow symbolic links like directories.
  -f            Print the full path prefix for each file.
  -i            Don't print indentation lines.
  -q            Print non-printable characters as '?'.
  -N            Print non-printable characters as is.
  -p            Print the protections for each file.
  -u            Displays file owner or UID number.
  -g            Displays file group owner or GID number.
  -s            Print the size in bytes of each file.
  -h            Print the size in a more human readable way.
  -D            Print the date of last modification.
  -F            Appends '/', '=', '*', or '|' as per ls -F.
  -v            Sort files alphanumerically by version.
  -r            Sort files in reverse alphanumeric order.
  -t            Sort files by last modification time.
  -x            Stay on current filesystem only.
  -L level      Descend only level directories deep.
  -A            Print ANSI lines graphic indentation lines.
  -S            Print with ASCII graphics indentation lines.
  -n            Turn colorization off always (-C overrides).
  -C            Turn colorization on always.
  -P pattern    List only those files that match the pattern given.
  -I pattern    Do not list files that match the given pattern.
  -H baseHREF   Prints out HTML format with baseHREF as top directory.
  -T string     Replace the default HTML title and H1 header with string.
  -R            Rerun tree when max dir level reached.
  -o file       Output to file instead of stdout.
  --inodes      Print inode number of each file.
  --device      Print device ID number to which each file belongs.
  --noreport    Turn off file/directory count at end of tree listing.
  --nolinks     Turn off hyperlinks in HTML output.
  --dirsfirst   List directories before files.
  --charset X   Use charset X for HTML and indentation line output.
  --filelimit # Do not descend dirs with more than # files in them.

rails のプロジェクトで表示するとこんな感じ。

tree 
.
├── Gemfile
├── Gemfile.lock
├── README.rdoc
├── Rakefile
├── app
│   ├── assets
│   │   ├── images
│   │   │   └── rails.png
│   │   ├── javascripts
│   │   │   └── application.js
│   │   └── stylesheets
│   │       └── application.css
│   ├── controllers
│   │   └── application_controller.rb
│   ├── helpers
│   │   └── application_helper.rb
│   ├── mailers
│   ├── models
│   └── views
│       └── layouts
│           └── application.html.erb
├── config
│   ├── application.rb
│   ├── boot.rb
│   ├── database.yml
│   ├── environment.rb
│   ├── environments
│   │   ├── development.rb
│   │   ├── production.rb
│   │   └── test.rb
│   ├── initializers
│   │   ├── backtrace_silencers.rb
│   │   ├── inflections.rb
│   │   ├── mime_types.rb
│   │   ├── secret_token.rb
│   │   ├── session_store.rb
│   │   └── wrap_parameters.rb
│   ├── locales
│   │   └── en.yml
│   └── routes.rb
├── config.ru
├── db
│   └── seeds.rb
├── doc
│   └── README_FOR_APP
├── lib
│   ├── assets
│   └── tasks
├── log
├── public
│   ├── 404.html
│   ├── 422.html
│   ├── 500.html
│   ├── favicon.ico
│   ├── index.html
│   └── robots.txt
├── script
│   └── rails
├── test
│   ├── fixtures
│   ├── functional
│   ├── integration
│   ├── performance
│   │   └── browsing_test.rb
│   ├── test_helper.rb
│   └── unit
├── tmp
│   └── cache
│       └── assets
└── vendor
    ├── assets
    │   ├── javascripts
    │   └── stylesheets
    └── plugins


日本語が文字化けしたときは

tree -N

で解決

rvmからrbenvに乗り換える

みんなrvmよりrbenvの方がイイヨって言うからrbenvに乗り換えることにした。

rvmのアンインストール


seppukuコマンドでrvmをアンインストールする。
なんか潔くて、乗り換えるのに好きになりそう。
rvm seppuku

次に、rvmに関する設定を.zshrc/.bashrc から削除

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"</pre>

とか

rbenvのインストール

brew install rbenv


ruby-buildのインストール

brew install ruby-build

.zshrcに環境変数を設定

export PATH=$HOME/.rbenv/bin:$PATH
eval "$(rbenv init -)"


使い方

  • インストール可能なRubyの一覧を確認する
rbenv install -l
  • インストール
rbenv install 2.0.0-p0
  • インストールしたRubyのバージョン一覧を確認
rbenv versions
  • Rubyのバージョン切り替え
rbenv global 2.0.0-p0
  • 特定ディレクトリでのRubyのバージョン切り替え
rbenv local 2.0.0-p0
  • インストールしたRubyやGemのパスを通す
rbenv rehash

gemとか入れたらいちいちrehashしないといけないみたいなんだけど、それを自動化するgemがあるのでいれる。

gem install rbenv-rehash

あと、"rbenv"って打ちにくいので"re"にaliasを設定しておいた。

alias re=rbenv

参考


Ruby 2.0.0-p0インストール(Mac OS X 10.8.2) #Ruby #bundler - Qiita
rbenvのコマンドメモ