node.jsのインストール
今回はnode.js、ライブラリパッケージ管理のnpm、データベースとしてmongoDBを試しにインストールしてみたいと思います。mongoDBについてはまだ使ったことはないのですが、これを機に時間をみつけて触っていきたいと思います。
node.jsのインストール
Mac OS X 環境でのインストールです。
PATHの設定
sudo を使わなくてすむようにインストール先を ~/local にしました。
~/local/binへパスを通すために設定ファイルへの追記が必要です。
私はzshを使用しているので、.zshenvに以下の設定を追加します。
export PATH=$PATH:~/local/bin
以下のコマンドでパスが通っているか確認します。
echo $PATH
ソースからコンパイルしてインストール
git clone https://github.com/ry/node.gitcd node ./configure --prefix=~/local make make install
npmのインストール
$HOME/.npmrcを設定して一般ユーザーの権限で入れるのがベストらしい
npmをインストールする
wget https://download.github.com/isaacs-npm-v0.2.14-6-14-g0cec5bf.tar.gz cat >>~/.npmrc <<NPMRC root = $HOME/.node_libraries binroot = $HOME/bin manroot = $HOME/share/man NPMRC tar -zxvf isaacs-npm-v0.2.14-6-14-g0cec5bf.tar.gz cd isaacs-npm-v0.2.14-6-14-g0cec5bf make install
mongooseとexpressをインストール
expressと今回はmongoDBを使ってみたかったので、
npmを利用してmongooseとexpressをインストールします。
mongooseはnode.js用ORM/ODMでexpressはnode.js用のフレームワークです。
npm install mongoose npm install express
node.jsの環境構築まとめ
javascriptでサーバーサイドプログラムができる話題のnode.jsがどんなものなのか調べてみました。
- node.js
- node.js本体です。
- npm
- ライブラリのパッケージ管理に使用します。
- nvm
- node.jsの複数のバージョンを切り替えて使う際に必要
テンプレートエンジン
node.jsで使えるデータベース
- MYSQL(RDB)
- MongoDB(NOSQL) http://www.mongodb.org/
- couchd(NOSQL) https://github.com/felixge/node-couchdb
- bdirty(ネイティブ型)
MacでSubversionを利用する際に発生する文字コード問題の解消方法
MACとWidowsでsubversionを使用していると濁点、半濁点が文字化けしてしまう問題があります。macでは「UTF-8-mac」というUTF-8とは少し異なる独自のコードを用いているため起こる現象です。「UTF-8-MAC問題」といわれるらしい。
私はwindowsユーザから指摘されるまで気づきませんでした。。
この問題を解消するパッチがMacPortから取得できるようになっています。
sudo port install subversion +unicode_path
SVNコマンドまとめ
- [svnadmin create] リポジトリの作成
- [svn import] リポジトリにモジュールをインポートする
- [svn list] リポジトリにどんなディレクトリがあるかを表示する
- [svn checkout][svn co] リポジトリから作業コピーをとってくる
- [svn status] 作業コピーの状態
- [svn update][svn up] 作業コピーの更新
- [svn diff][svn di] 変更点の差分を見る
- [svn log] 履歴の確認
- [svn add] ファイルやディレクトリを新たにリポジトリに登録する
- [svn mkdir] directoryの作成
- [svn commit][svn ci] 設定を反映させる
- [svn delete][svn del][svn remove][svn rm] アイテムの削除
- [svn delete][svn del][svn remove][svn rm] ローカルのファイルを残したままアイテムの削除
- [svn copy][svn cp] アイテムのコピー
- [svn move] アイテムの移動
- [svn revert] addしたファイルやディレクトリをcommitする前に取り消す
SVNの記号の意味まとめ
no modifications | |
A | ファイルが新規追加 |
C | ローカルの修正とリポジトリの更新が競合 |
D | ファイルが削除 |
G | ローカルの修正とリポジトリの更新がマージ |
I | Ignored |
M | Modified |
R | ファイルの置換え(同じ名前だが履歴上は別物) |
U | ファイルがリポジトリの最新版に更新 |
X | item is unversioned, but is used by an externals definition |
? | item is not under version control |
! | item is missing (removed by non-svn command) or incomplete |
〜 | versioned item obstructed by some item of a different kind |
MacのデスクトップをGeekToolでカスタマイズ
いまさら感はありますが、MACのデスクトップをカスタマイズしてIcalの予定や日付を表示させるようにしてみたいとおもい設定したときのメモです。メインはGeekToolですが、それだけでは足りない部分をdateline、XRG、Icalとの連携をiCalBuddyで行いました。
dateline
日付けを横一列に並べてくれるシンプルなカレンダーです。日付をクリックするとIcalを開いてくれます。
XRG
開発しているとメモリの使用率などが非常に気になることがおおいのですが、XRGが見た目も良さそうだったので導入してみました。CPUやメモリの使用率などをグラフで表示してくれるので非常に便利です。
GeekTool
MacのデスクトップにUNIXのコマンド結果を表示してくれる便利なツールです。
Dashboardとひと味違って私はこちらの方が好きです。Refreshの間隔も秒単位で設定出来る優れものです。
設定内容
デスクトップにカレンダーを表示させる
日曜日と当日に色がつくスクリプトがありましたので、そちらを使わせていただきました。
Colored Calendar (cal) in 10 lines of /bin/sh. Colored current DAY and DATE.
適当な場所に保存して、実行権限(chmod +x)を与えgeektoolに設定しました。
しかし、ちょっとしたトラブルが発生!
sed: 1: "s/ ? / \033[1;31m?\033[0m /\n": RE error: illegal byte sequence
ターミナルを日本語環境に設定している場合、文字コードの関係でエラーになるみたいです。
そこで、一時的に英語での表記にするため、2行追加しました。
LANG=C NOLOCALE=1
結果以下の内容になりました。
#!/bin/sh # # colorcal - change current day and date via ANSI color escape sequences # # developed/tested on 10.6.3 with: # /bin/sh --version GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0) # geektool 3, 3.0 (12A) # Terminal Version 2.1.1 (273) # see http://www.termsys.demon.co.uk/vtansi.htm for color codes. # # sed (1) is your friend. # LANG=C NOLOCALE=1 # pick color, clear color color="\033[1;31m" nocolor="\033[0m" # get day & date current_day=`/bin/date "+%a" | cut -b 1,2` current_date=`date | awk '{print $3}'` #color em. color_day=`echo "${color}${current_day}${nocolor}"` color_date=`echo "${color}${current_date}${nocolor}"` # format cal output so the sed replacements work at begining and end of cal output. function calendar { /usr/bin/cal | sed 's/ /_/g' | sed -e 's/^/ /' -e 's/$/_/' | sed 's/_/ /g' } # run calendar & substitute colored day & date. calendar | /usr/bin/sed -e "s/ ${current_day} / ${color_day} /" -e "s/ ${current_date} / ${color_date} /" # END of colorcal
icalの予定とTODOをデスクトップに表示させる
iCalBuddyをインストールすればGeektoolと簡単に連携出来ます。インストールはinstall.commandをクリックするだけです。実行後に何か聞かれますが、yをタイプすれば勝手にインストールが始まります。こちらで特に設定することはありません。あとは、GeekToolのコマンドに以下のコマンドを入力すれば設定終了。
1週間の予定を表示
/usr/local/bin/icalBuddy -nc eventsToday+7 | sed -e "s/*/-/" < Refreshは3600秒 未消化ToDoリスト >|| /usr/local/bin/icalBuddy uncompletedTasks | sed -e "s/*/-/"
Refreshは360秒
注意したいオープンソースのライセンス体系
オープンソースのソフトウェアを使用するにあたって注意しなければならないのが、ライセンです。基本オープンソースなので自由に使ってプログラミングすることは出来ますが、商用利用に使用するとなると注意しておかないとライセンス違反で訴訟に発展する危険性があります。特にGPL(GNU General Public License)のソフトウェアを使用する際は「ソースコードの公開」が義務づけられますので注意が必要です。
そんなわけで、今回オープンソースのライセンスについて調べてまとめてみました。
BSD(Berkeley Software Distribution License)
もっとも制約が緩いため利用しやすいライセンス体系です。思いつくところでの代表的なソフトウェアとしては、Apache,tomcat,struts,springなどがあります。
特徴
- BSDライセンスのコードを他のプログラムで利用できる
- コードを非公開に出来る。
- 再配布時のライセンス条件を制限されることはないので*2、自由なライセンス条件を付与できる。
GPL(GNU General Public License)
再配布、二次的著作物についても同じライセンスを適用しなくてはならない制約がつきます。要するに、GPLライセンスのソフトウェアを使用して新たなソフトウェアを作ったとしても、GPLのライセンスの体系から変えたらダメですよと言った内容です。そこがBSDライセンスと大きな違いです。商用利用の際は注意してください。思いつくところでの代表的なソフトウェアとしては、WordPress、Javaなどがあります。
条件
CC(Creative Commons)
WEBの素材でよくこのライセンスの形態を見かけますが、使用するにあたっては必ず著作権の表示が必要になります。
条件
- 著作権者のクレジット(名前)表記が必要
特徴
- 必ず著作権者の表記が必要