ページ

2011年12月29日木曜日

Expressをとりあえず動かす

書いてなかったので。

expressのインストール。グローバルインストールするのでgを付ける。
% npm install -g express

expressコマンドでひな形生成する
% express doraemon
こんなんが出る
create : doraemon
create : doraemon/package.json
create : doraemon/app.js
create : doraemon/public
create : doraemon/routes
create : doraemon/routes/index.js
create : doraemon/views
create : doraemon/views/layout.jade
create : doraemon/views/index.jade
create : doraemon/public/javascripts
create : doraemon/public/images
create : doraemon/public/stylesheets
create : doraemon/public/stylesheets/style.css

dont forget to install dependencies:
$ cd doraemon && npm install

このままでは動かないので言われたとおりにする
(npm linkとかnpm install -dでもいいのかな)
% cd doraemon
% npm install

そして(app.jsを実行してやれば)時は動き出す
% node app.js
Express server listening on port 3000 in development mode

あとはapp.jsの中身を見ながら色々いじっていけばよさそう。もろSinatraなのでわかりやすい。

参考:
Express - node web framework
npm1.0でのexpressの使い方 - Daily Node

2011年12月25日日曜日

UbuntuにNginxインストール

% sudo aptitude install nginx

あっという間に終わった。

% sudo /etc/init.d/nginx start

これで
% sudo ufw allow 80
とかしてやって、ブラウザからアクセスすれば

Welcome to nginx!

って出るので、動いてることがわかる。

aptitudeでMongoDB2系をインストール

% sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

/etc/apt/source.list に以下を追加
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

して
% sudo aptitude update
すればリポジトリが追加されてる。

念のために、
% sudo aptitude purge mongodb
してから
% sudo aptitude install mongodb-10gen
した。
% mongo
で動いてることを確認。2.0.2が入ってた。

参考:
Action*3 - Ubuntu 11.04にMongoDB 2.0をインストール
Ubuntu and Debian packages - MongoDB

2011年12月14日水曜日

node.jsでhello world

node v0.6.5記念

コンソールパターン
% node
> console.log("Hello World");
Hello World


ファイル実行パターン
// hello.js
function hello(name){
console.log("Hello " + name);
}

hello('zakuni');
% node hello.js
Hello zakuni

2011年11月19日土曜日

さくらのVPSにデスクトップ版Ubuntu入れた

SFCのVPSが羨ましくてやった。

参考:
Ubuntu Weekly Recipe:第142回 さくらのVPSでUbuntuを使う|gihyo.jp … 技術評論社
Windows(Win7 x64)からUbuntu(10.10 server edition)にVNCでリモートデスクトップするための設定
% sudo tasksel
して、install ubuntu-desktop を選ぶだけ。

簡単すぎて鼻血も出なかった。


そしてVNCサーバーをインストール&設定する。
% sudo aptitude install vnc4server
% vnc4server -kill :1
% vim ~/.vnc/xstartup

unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
の行のコメントを消す。

xsetroot -solid grey
vncconfig -iconic &
の行をコメントアウト。

xinitrcを実行できるようにしておく。
% sudo chmod 755 /etc/X11/xinit/xinitrc


そして改めてvnc4serverを起動する。
% vnc4server

ポートも開けておく。
% sudo ufw allow 5901


MacではFinderから接続できる。実のところこれをやってみたかった。

参考: Macからvnc接続と真っ白対策


Finderの「移動」→「接続」(もしくはcmd + k)
サーバアドレスにvnc://[サーバ]:[ポート]

すると画面が表示される。ラグもなく快適に動く。

けどSSHのポートフォワーディングでVNCするやり方とかよくわかってないし、ちょっとやってみたかっただけなのでたぶん普段は使わない。

2011年10月2日日曜日

require 'json'しようとしたらiconvが無いって言われた

require 'json' したら

`require': no such file to load -- iconv (LoadError)

っていうようなエラーが出てハマった。

% rvm pkg install iconv
% rvm remove 1.9.2
% rvm install 1.9.2 --with-iconv-dir=$rvm_path/usr

で解決した。

参考:
http://g86.dbcls.jp/~iNut/chateautogo/?tag=ruby
http://tisba.de/2010/11/19/fixing-problems-with-iconv-ruby19.html
http://beginrescueend.com/packages/openssl/

2011年9月25日日曜日

autotestとRSpecを使う

色々見たけどgithub見るのが一番早かった
https://github.com/rspec/rspec/wiki/autotest

まずはRSpecとZenTestをインストールする。
% gem install rspec
% gem install ZenTest
~/.rspecに書いたRSpecの設定はこんなん。
# /.rspec
--format nested
--color
ファイル保存のタイミングでテストを実行してくれるようにautotest-fseventを、
テスト結果をgrowlで通知してくれるようにautotest-growlを入れる。

% gem install autotest-fsevent autotest-growl
~/.autotestを作って、以下を書く。
# Include plugins
require 'autotest/fsevent'
require 'autotest/growl'

# Skip some paths
Autotest.add_hook :initialize do |autotest|
%w{.git .DS_Store ._* vendor}.each { |exception| autotest.add_exception(exception) }
false
end
プロジェクト毎の設定はプロジェクトのrootに./.autotestを作る。

# ./.autotest
Autotest.add_hook(:initialize) {|at|
at.add_exception %r{^\.git} # ignore Version Control System
at.add_exception %r{^./tmp} # ignore temp files, lest autotest will run again, and again...
# at.clear_mappings # take out the default (test/test*rb)
at.add_mapping(%r{^lib/.*\.rb$}) {|f, _|
Dir['spec/**/*_spec.rb']
}
nil
}

大体の設定は以上。

そして実際に使う。

ディレクトリ構造はこんな感じに。
テストファイルをspec下、テスト対象をlib下に置く。
hoge/
|-- autotest/
|    `-- discover.rb
|-- lib/
|    `-- hoge.rb
`-- spec/
     `-- hoge_spec.rb

discover.rbには、rspec2を使う的なことを書いておく。
#./autotest/discover.rb

Autotest.add_discovery { "rspec2" }

あとは心の赴くままにテスト駆動すればいい。

2011年9月2日金曜日

SinatraとSlimでInternal Server Errorが出てた

さくらのVPSでrvmとrubyをアップデートしたら各所に弊害が出てた。

Passengerがエラー吐いてたので /etc/apache2/conf.d/passenger を修正。
LoadModule passenger_module /home/zakuni/.rvm/gems/ruby-1.9.2-p290@global/gems/passenger-3.0.8/ext/apache2/mod_passenger.so
PassengerRoot /home/zakuni/.rvm/gems/ruby-1.9.2-p290@global/gems/passenger-3.0.8
PassengerRuby /home/zakuni/.rvm/wrappers/ruby-1.9.2-p290@global/ruby
rubyのバージョンに依存しない書き方にしたいところだけど、とりあえずこれで保留。

apacheをリロード
sudo /etc/init.d/apache2 reload

そして輝くInternal Server Error。

悩む。

どうやらSlimがおかしいと突き止める。

Slimの公式サイト(http://slim-lang.com/)と見比べる。

1行目
! doctype html
になってたのを
doctype html
に変えてやる。

エラー消えた。

いつの間にかSlimの仕様が変わってたらしい。

2011年7月27日水曜日

nvmとnode.jsをインストール

% git clone git://github.com/creationix/nvm.git ~/.nvm
% . ~/.nvm/nvm.sh
% setopt no_nomatch
% nvm sync

% nvm ls
で、最新版を確認。

% nvm install v0.4.10

zshrcに以下を追加
~/.nvm/nvm.sh
nvm use "v0.4.10"

参考:MacにCoffeeScriptをインストール - Jewel-mmo開発日記

追記:
% nvm alias default v0.4.10
とかしてやればnvm useを書いてやらなくてもいい。

MacPortsからHomeBrewに移行

MacPorts関連のものをアンインストール&削除
% sudo port -f uninstall installed
% sudo rm -rf \
/opt/local \
/Applications/DarwinPorts \
/Applications/MacPorts \
/Library/LaunchDaemons/org.macports.* \
/Library/Receipts/DarwinPorts*.pkg \
/Library/Receipts/MacPorts*.pkg \
/Library/StartupItems/DarwinPortsStartup \
/Library/Tcl/darwinports1.0 \
/Library/Tcl/macports1.0 \
~/.macports

HomeBrewをインストール
$ ruby -e "$(curl -fsS http://gist.github.com/raw/323731/install_homebrew.rb)"

.zshrcを編集して、/usr/local/binの優先度を上げた。
export PATH=/usr/local/bin:$PATH

MacPortsで入れていたemacs23も消え去ったので入れ直す。

brew install emacs --cocoa
したらなんかコケる。
LionのせいなのかXcode4のせいなのか、はたまた両方か。

HEADならいけるっぽいので、あんまり気乗りはしなかったけどemacs24をインストール。
HEADをインストールするにはbazaarが必要らしいのでそれも先に。

brew install bazaar
brew install emacs --HEAD --cocoa

/usr/local/Cellar/emacs/HEAD/ にemacs.appがあるので、それを/Applicationsにコピー。

ターミナルのemacsで-nwを付けないとGUIのほうが起動するようになっていたので、zshrcに以下を追加
alias emacs='/Applications/Emacs.app/Contents/MacOS/Emacs -nw'

この部分、なんかもっといい方法なかったっけ。

参考:
MacPortsからhomebrewに移行した - RENAISSANCE
Terminal.app+Visorの色設定とか、homebrewでのemacsとか - steuims bulkre

2011年7月24日日曜日

[Ubuntu][Apache2]PassengerでSinatraをサブディレクトリで動かす

Passengerで普通に動かすときと同じようにSinatraアプリを用意する。

app2/
├ config.ru
├ app.rb
├ public/
└ tmp/

http://ほげほげ.com/app2

で動かしたいとしたら
/etc/apache2/conf.d/passenger
を編集して(ファイル名はなんでもいい)
RackBaseURI /app2
を追加してやり、DocumentRootにapp2ディレクトリ下にあるpublicディレクトリのシンボリックリンクを作成する。

app2の置き場所が/home/user/app2であり、DocumentRootが/var/www/app/publicならば
sudo ln -s /home/user/app2/public /var/www/app/public/app2
/home/user/app2/public/へのシンボリックリンクを、/var/www/app/public/に、app2という名前で貼ってる。

そしてapache再起動
sudo /etc/init.d/apache2 restart

参考:
passengerでsinatraアプリをサブディレクトリで実行する - 橋本詳解
Passenger を使ってサブドメインではなく Rails と Sinatra を共存させる - oooooooo
passenger+sinatraで同一ドメイン内に複数のsinatraアプリを動かす方法 - Dive in Blue

[Ubuntu][Apache2]PassengerでSinatraを動かす

前にも書いたけど、整理的な意味も含めて。


Sinatraアプリの構成は以下の通り。
app/
├ config.ru
├ app.rb
├ public/
└ tmp/

publicもtmpも、中身は入ってなくてよい。

config.ruはこんな風に。
require 'rubygems'
require 'sinatra'
require './app.rb'

run Sinatra::Application

publicディレクトリをDocumentRootに指定してやる。

DocumentRootを指定するには
/etc/apache2/sites-available/default
の中身を編集する。

appディレクトリを/var/www/に置いている場合だったら
DocumentRoot /var/www/app/public
って書いてやればいい。

sudo /etc/init.d/apache2 reload
で、apacheをリロードすればもう動いてるはず。

アプリを再起動するには、tmpディレクトリにrestart.txtをアップロードすればいいそうな。

参考:
passengerでsinatraアプリをサブディレクトリで実行する - 橋本詳解
どうのこうの » さくらのVPSでsinatraを動かすまでのメモ

2011年6月27日月曜日

[Android][Mac][PhoneGap]DroidGap使ってみる

参考:


ダウンロードしてきて
% git clone git://github.com/phonegap/phonegap-android.git

PATHを通す
export PATH=$PATH:~/phonegap-android/bin

droidgapコマンドで新規プロジェクトを作って、ビルドしてインストール
% droidgap gen DroidTest
% cd DroidTest
% ant debug install && adb logcat

で待つことしばし

燦然と輝く BUILED FAILED の文字。

詰まる。


色々見てたら、
phonegap / phonegap-android-terminal-quickstart
に、それらしい記述を見つけた。

実機を差すか、エミュレータを起動しながらやればいいらしい。

% android
して、適当にエミュレータを起動。

起動したら、おもむろに
% ant debug install
今度こそ輝く BUILD SUCCESSFUL

2011年6月26日日曜日

[Android][Mac] Android SDKをインストール

適当にググったら出てきたこことか参考に
世界を目指せ!Androidアプリ開発入門 第2回 Androidアプリ開発のための環境構築

あと、この記事書く前にふと探してみたらやはりあった。きっと参考になることでしょう。
android sdkインストール - 橋本詳解


なにはなくともSDK。
http://developer.android.com/sdk/index.html
からMac用の最新版(android-sdk_r11-mac_x86.zip)を落としてきて解凍。/Developer に置いた。

PATHを通す
export PATH=$PATH:/Developer/android-sdk-mac_x86/tools
export PATH=$PATH:/Developer/android-sdk-mac_x86/platform-tools


eclipseは既に入ってるので、[ヘルプ] → [新規ソフトウェアのインストール]

作業対象に
https://dl-ssl.google.com/android/eclipse/
を入れて、出てくるDeveloper Toolsを全部インストール。


Eclipseを再起動したら、[Eclipse] → [環境設定]
Androidを選択して、SDKロケーションに /Developer/android-sdk-mac_86 を入れてやってOKする。

[Window] → [Android SDK and ADV Manager] で、左のAvailable Packagesを選択。出てくるやつを全部インストール。

以上でインストールは完了。


最近ブログ書いてなかったせいで色々忘れた。

2011年3月27日日曜日

【Ubuntu】daemontoolsのログを取る & mongoDB動いた

謝辞
 shokaiさんに捧ぐ

% sudo mkdir /etc/service/mongod/log
% sudo mkdir /etc/service/mongod/log/main
% sudo chown zakuni /etc/service/mongod/log/main


そしてrunスクリプトを書く
/etc/service/mongod/log/run
#!/bin/sh
exec 2>&1
exec setuidgid sho multilog t ./main

そしてログを確認。
/etc/service/mongod/log/main/current
があるはずなのだが、ない。

ログを取ろうとしたのにログが機能していない。

ここでふと
% ls -l /etc/service/mongod/log/

そして気付く。runに実行権がない。

実行権与える
% chmod 755 /etc/service/mongod/log/run

/etc/service/mongod/log/main/current 出来た。

catで中を見る。何も無い。
果てしない間違い探し始まる。

ここでふと
% ls -l /etc/service/mongod/

そして気付く。runに実行権がない。


shokaiさんに罵られる


実行権与える
% chmod 755 /etc/service/mongod/run

動いたあああああ

【Ubuntu】daemontoolsをインストールしてmongoDBを動かす

なんか疲れたのでとりあえずやったところまで

参考:

svtoolsとdaemontoolsをインストール

% sudo apt-get install svtools daemontools-run

続いてmongod.confを作成
% mkdir /var/mongod
% chmod 755 /var/mongod
% mkdir /usr/local/share/mongod
% emacs /usr/local/share/mongod/mongod.conf

中身は以下の通り
dbpath = /var/mongod
bind_ip = 127.0.0.1

あとrunスクリプトも

/etc/service/mongod/run
#!/bin/sh
exec 2>&1
exec setuidgid zakuni mongod --config /usr/local/share/mongod/mongod.conf

ここまでやって再起動すると動いてるはずなんです。

---こっから確認作業---

% sudo svstat /etc/service/mongod
でプロセスの状態を見られる。
% sudo svstat /etc/service/*
ってするとワイルドカードで全部見られる。

結果(1回目)
/etc/service/mongod: up (pid 1200) 0 seconds
結果(2回目)
/etc/service/mongod: up (pid 1205) 1 seconds
結果(3回目)
/etc/service/mongod: up (pid 1210) 0 seconds

0秒と1秒を行ったり来たりしてるし、プロセスIDが変わり続けてるので何か間違ってる。

3/27 1:34 追記
解決! 【Ubuntu】daemontoolsのログを取る & mongoDB動いた

2011年3月26日土曜日

RVMをアップデートする

どのバージョンからか、rvm updateが無くなって使えなくなった。
今後はrvm getでやるらしい

安定版にアップデートするには

% rvm get latest

リポジトリから最新のをとってくるには

% rvm get head

してやればいい。

% rvm get 1.5.2
みたいにバージョンの指定もできるっぽい

【Ubuntu】mongoDB1.8をインストール

aptitudeでインストールしたやつはバージョン1.2。

1.6以上のが必要なので自分でダウンロードしてきて入れ直すことに。

aptitudeで先に入れたやつを消す。
% sudo aptitude purge mongodb

そしておもむろにwget
64bitのは動かなかったので32bitのを入れる。

% wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.0.tgz
% tar zxvf mongodb-linux-i686-1.8.0.tgz
% cd mongodb-linux-i686-1.8.0/bin
% sudo cp * /usr/local/bin

データベースのディレクトリも作成
% sudo mkdir -p /data/db

mongodで起動することを確認
% sudo mongod

参考:
 [RackSpace][MongoDB][Ubuntu10.04]mongodb インストール

【Ubuntu】mongoDBをインストール

% sudo aptitude install mongodb
で済むはずが、依存パッケージ類のインストールとかがうまくいってないっぽくエラーが出た。

個別にインストールやらアップグレードしてみたけどうまくいかない。

原因は
% sudo aptitude update
を忘れてただけだった。

あらためてmongodbインストールしたら今度はいけた。

% sudo mongod

でちゃんと起動することを確認。

2011年3月23日水曜日

【Ubuntu】標準のエディタを変える

crontabを最初に起動したらエディタ選べって言われて、手違いによりnanoを選択しちゃって困った。

select-editorで標準のエディタを切り替えられる

% select-editor

すると
Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/emacs23
  4. /usr/bin/vim.basic
  5. /usr/bin/vim.tiny

Choose 1-5 [2]:

とかこんな感じのが出ると思うので、好きなのを選べばいい。僕はemacsなので3とタイプしてリターンキーを「ッターン!」

2011年3月1日火曜日

Slimで画像をリンクにする

HTMLでいうところの

をSlimで書くときどうするのかわからなくてしばらくハマった。


こう書けばよかった。普通にインデントしてやればいい。


emacs用のslimテンプレートがあまりよろしくないようで、aタグの下でtabでインデントしてもaと同じか、もしくは浅い方にしかインデントされない。のでスペースキーでインデントしてやる必要がある。

ついでに、改行もどう書くのかしばらく悩んだのだけど、普通に
br
って書けばいいだけだった。

さらについでに、haml2slimなんていうhamlをslimに変換してくれるgemがあるので、slimの書き方がわからないときにhamlで書いて変換するとか、今までhamlで書いてきたものをすべてslimにしたいなどという変な人には便利ですね。

2011年2月28日月曜日

Sinatraで画像ファイルを扱う

画像ファイルやcssファイル等、静的ファイルはpublicフォルダに入れておけばいい。

そのファイルを指定するときは、public/hoge.png、ではなく /hoge.png で指定できる。

さくらのVPS上にgitのリモートリポジトリを作る

myatsumoto先生、shokai先生に感謝

リモート
% mkdir git/hogehoge.git
% cd git/hogehoge.git
% git init --bare

ローカル
% mkdir hoge
% cd hoge
% git init
% touch README
% git add .
% git commit -m "initial"
% git remote add origin ssh://ユーザ@ムニャムニャ.sakura.ne.jp:ポート番号/home/user/git/hogehoge.git
% git push origin master

VPS上で作業したいときもリポジトリからcloneとかpullとかしてやるってことを理解するまで時間かかった。疲れた。

2011年2月27日日曜日

【Ubuntu】さくらのVPSでSinatraを動かす

Ubuntuにしてrvmが入ってなかったので入れる。

参考:さくらのVPSにRVM、Rubyをインストール


sinatraをインストール
% gem install sinatra

そして以下を参考に

さくらのVPSでsinatraを動かすまでのメモ


さくらのVPSでゼロからubuntuとrailsでなんか動かす 6 apache + passenger


% gem install passenger
% passenger-install-apache2-module

したら、何か色々インストールしろという指示が出たのでaptitude installしてもっかいやってみたけどインストールしろしろと言ってくる。

よくみたらNot Foundになってるものがあってインストールできてなかった。

aptitude updateしてから再度aptitude installしたらできた。

sudo emacs /etc/apache2/conf.d/passenger
して以下を追加
LoadModule passenger_module /home/ユーザ/.rvm/gems/ruby-1.8.7-p334/gems/passenger-3.0.3/ext/apache2/mod_passenger.so
PassengerRoot /home/ユーザ/.rvm/gems/ruby-1.8.7-p334/gems/passenger-3.0.3
PassengerRuby /home/ユーザ/.rvm/wrappers/ruby-1.8.7-p334/ruby

ファイル名はpassengerじゃなくてもいい。なんでもいいらしい。

Sinatraアプリケーションのフォルダ、例えばsinatrappって名前のフォルダの中に、config.ru、myapp.rb、publicフォルダ、tmpフォルダを作成する。

config.ruの中身は適当にこんな感じ
require 'myapp'

run Sinatra::Application

myapp.rb
require 'rubygems'
require 'sinatra'

get '/' do
'Hello, world.'
end


さっきの /etc/apache2/conf.d/passenger に
RackBaseURI /sinatrapp
って加える。

そしてDocument Rootにシンボリックリンクを貼る。
% sudo ln -s /home/ユーザ/sinatrapp/public /var/www/sinatrapp

apacheを再起動するともう動いてる。
% sudo /etc/init.d/apache2 restart

相変わらずshokaiさんのブログも激しく役に立った。
[Ubuntu][MAG][Passenger][Sinatra][Apache2]passengerでsinatraアプリをサブディレクトリで実行する

2011年2月20日日曜日

【Ubuntu】さくらのVPSにzshをインストール

$ sudo aptitude install zsh
$ chsh
で、
/usr/bin/zsh
を入力

zshrcファイルが無いけどどうする?みたいなことを3択で聞かれるので、作るなり作らないなり好きにする(僕はとりあえず作るだけ作ってその画面が出ないようにするってのを選んだ)。

ちょっと疲れた。

【Ubuntu】さくらのVPSにapacheをインストールして動かす

参考:『さくらのVPS』でWordPressを動かすまで – Apache2のインストール①

$ sudo aptitude install apache2
でインストール。

/etc/apache2/conf.d/security を以下のように修正
-ServerTokens Full
+ServerTokens Prod

-ServerSignature On
+ServerSignature Off

-TraceEnable On
+TraceEnable Off

設定を反映して再起動
$ sudo /etc/init.d/apache2 reload
$ sudo /etc/init.d/apache2 restart


これで動いてるはずと思ってアクセスしてみたら動いてない。
ファイアウォールの設定の問題だった。

$ sudo ufw allow 80

して、もっかいアクセスしてみたらIt works!

さくらのVPSにUbuntu 10.04をインストールした

カスタムOSインストールガイド : Ubuntu 10.04

の通りにやればいいだけのはずだったのだが、VNCコンソールが一向に開かなくて困った。

結局Firefox4 betaとChromeがいけなかったのかなんなのか、Safariでやったら普通にVNCコンソールが開いてインストール出来た。

インストールした後は

さくらVPSにカスタムOSのUbuntu 10.04をインストール+セキュリティ設定などをした時のメモ

を参考にしてセキュリティ関係を簡単に設定。

myatsumotoの勧めで、今後はaptitudeを使うことにした。

2011年2月14日月曜日

さくらのVPSにRVM、Rubyをインストール

RVMのインストール。
% bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )
そしてPATHを通す。
% emacs .zshrc
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
% source .zshrc

Rubyをインストールする前に依存ライブラリをインストール
% sudo yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel

そしてRubyのインストール。1.8.7と1.9.2をインストールして1.8.7をデフォルトに設定した。
% rvm install 1.8.7
% rvm install 1.9.2
% rvm use 1.8.7 --default

さくらのVPSにemacs、zsh、Git、tigをインストール

viに慣れるのもいいかと思ってたんだけど、やっぱり煩わしいことが多いので
% sudo yum install emacs
でemacsをインストール。

zshのインストールは



を参考に(というかほぼ丸写し)して

% sudo yum -y install zsh
% emacs ~/.bash_profile
# use zsh
if [ -f /bin/zsh ]; then
exec /bin/zsh
fi

zshrcもとりあえずはコピペ

% emacs ~/.zshrc
#
# alias設定
#

# 基本的なこと
alias ls='ls -AF'
alias ll='ls -l'
alias df="df -h"
alias du="du -h"

# vim関連
alias vi=vim

# 検索を便利にする
alias rgrep="grep -R"
alias rgrepsvn="rgrep --exclude=\"*.svn*\""

#
# zsh的な設定
#

## 補完時に大小文字を区別しない
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
zstyle ':completion:*' menu select=1

autoload -U compinit && compinit

## options
setopt bash_auto_list
setopt list_ambiguous
setopt list_packed # つめて表示されるようになる
setopt correct # コマンドの間違いを自動修正
setopt auto_pushd # 自動でディレクトリをPUSH
setopt nolistbeep # beep音を鳴らさない

## history
HISTFILE="$HOME/.zsh_history"
HISTSIZE=10000
SAVEHIST=10000
setopt hist_ignore_all_dups
setopt hist_reduce_blanks
setopt share_history

# emacs
bindkey -e


続いてGitのインストール

参考:

% rpm -ivh http://repo.webtatic.com/yum/centos/5/`uname -i`/webtatic-release-5-1.noarch.rpm

したら

can’t create transaction lock on /var/lib/rpm/__db.000

とかいうエラーが出た。

rootでやらないといけないってことらしいので、
% su -
してもっかいやったらできた。

で、
% sudo yum install --enablerepo=webtatic git


そしてtigをインストール
% yum install ncurses-devel.`uname -i` -y
% cd /tmp
% wget http://jonas.nitro.dk/tig/releases/tig-0.16.2.tar.gz
% tar -zxvf tig-0.16.2.tar.gz
% cd tig-0.16.2/
% ./configure
% make
% make install
% cd ../
% rm -rf tig-0.16.2.tar.gz
% rm -rf tig-0.16.2

おしまい。

CUIのGitブラウザ、tigをインストール

最近はTowerを使うことが多いのですが、興味がわいたのでCUIのGitブラウザ「tig」をインストールしました。

sudo port install tig

インストールの参考にしたのはこっち

使い方の参考はこっち

2011年2月13日日曜日

さくらVPSの初期設定

さくらVPSに登録して、見よう見真似で諸々の設定をした。

主に参考にしたのは以下のページ

さくらVPS設定その1 User+SSH+Firewall

↑ここに書いてあることをひと通りやれば大体必要なことはできてるっぽい。

他にも、色んなところで参考にされてるさくらのVPS|アカベコマイリとかも見ながらいじってみてる。

2011年2月8日火曜日

CSSのiframeを二つ並べて、スクロールを連動させる


CSSで擬似iframeを作成するには

とかやってやると


こんな感じになる。
aaa












これを左寄せで二つ並べるには


でこんな風に。
aaa










bbb












僕が使う都合上、左はoverflow:hiddenにして、右のフレームにしかスクロールバーが出ないようにしている。



右のスクロールバーを動かすと両方のフレームが連動してスクロールされるようにするにはjQueryを使ってこう書く。


#migiでscrollイベントが起こったら、#hidariのscrollTopを#migiのscrollTopと同じところまでスクロールする。

ってことをしている。
上のサンプルもちゃんと連動してスクロールされるはず。

MacのSafari, Firefox, Google Chrome, Opera,あとiPhoneのmobileSafari(二本指スクロール)で動作確認した。