2011-05-01
_ まっさらな Ubuntu 11.04 の環境で Rails3 の動作環境を最低限整える
Ubuntu 11.04 が出てまっさらな環境を作ったので,とりあえず Rails3 が動かせる環境を最低限整えるまでの手順について,せっかくなので残しておくことにしよう.基本的に rvm のインストールガイドを読めば特にひっかかる部分はないとは思いますが,ところどころはまった部分があったので.
rvm のインストールに必要なものや,Ruby のインストール時に必要なもの,そして Rails をインストールしてから必要なものをあらかじめインストールしておく.
$ sudo apt-get install curl git bison zlib1g-dev libsqlite3-dev libreadline-dev libssl-dev sqlite3
インストールが済んだら以下のコマンドを実行して rvm をインストールする.
$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
その後,.bashrcを以下のように変更.rvm をインストールすると,rvmをPATHに通すための設定が .bash_profile に記述されるが,Ubuntu は .bash_profile を読みにいかないため.
#[ -z "$PS1" ] && return if [[ -n "$PS1" ]]; then # Some code here... e.g. export HISTCONTROL=ignoreboth fi [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session.
rvm のインストールが無事できたらあとは Ruby をインストールする.環境によってはそこそこ時間のかかる作業.
$ source "$HOME/.rvm/scripts/rvm" $ rvm install 1.9.2 $ ruby -v ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux] $ rvm 1.9.2 --default
デフォルトで利用する Ruby のバージョンをひとまず設定してあとは Rails のインストール.
$ gem install rails $ rails new sample $ bundle install $ rails s
http://localhost:3000/ にアクセスしていつもの画面が見られたらとりあえず完了.
2011-05-02
_ Ubuntu 10.10 から 11.04 にあげたら無線LANが使えなくなった
ThinkPad にはずいぶんと前から Ubuntu をインストールして利用していて,どちらかというと Ubuntu がバージョンアップするときは,クリーンインストールしてしまうことが多かったのですが,今回は 10.10 からのアップデートを実行しました.アップデート自体は特に問題なくできて,そのままシャットダウンしてしまったのですが,翌日,利用してみようとすると,無線 LAN が利用できないことが判明.NetworkManager にはアクセスポイントがひとつも見当たらない状態です.
フォーラムなどを見てみても,無線LAN が使えないというのはいくつか見当たりはしたけれども,自分の環境とは違うのであまり参考にならず.NetworkManager あたりで何か先人が試しているようなことはないかと探してみると,いくつか見られたのが,/etc/NetworkManager/NetworkManager.conf の [ifupdown] の managed を true に設定するというもの.試しに変更してみて再起動してみると確かにアクセスポイントがリストされるようになった.
何が影響しているのだろうともう少し探ってみると,/etc/network/interfaces に記述があると,managed が false の場合,NetworkManager が動作しないよう./etc/network/interfaces を確認してみると,以下のような記述があった.
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth1 iface eth1 inet dhcp # wireless-* options are implemented by the wireless-tools package wireless-mode managed wireless-essid non-secured wireless-key1 s:xxxxxxxxxxxxx
eth1 について記述した記憶がないんだけど,これは 10.10 のころに設定されたものだったのか,それとも別の何かか.いずれにしても eth1 の設定が影響しているようで,コメントも外して以下のような状態にすると,NetworkManager.conf の managed を false としていても問題なく利用できることが確認できた.
auto lo iface lo inet loopback
アップデートすると,それまでいろいろいじっていたことが何かしら影響を与えることもあるので,注意が必要ですね….
2011-05-03
_ Ubuntu で Pogoplug を利用する
手軽にパーソナルクラウドができてしまう CloudEngine の Pogoplug を GW 前に Amazon で購入していて,やっと開封して利用を開始しました.すでに各所でレビューをされていて,その簡単さ,手軽さはわかってはいましたが,やはりつないでブラウザから数クリックでアクティベーションを完了し利用できるようになるのは,迷うところもなくて本当に簡単でした.
Pogoplug のデータへのアクセスはブラウザから参照することができますが,それ以外にも Windows,Mac,Linux,iPhone/iPad,Android 用にそれぞれ専用クライアントが無料で提供されています.先日,Ubuntu 11.04 にアップデートした PC で pogoplug のクライアントを利用してみました.特にインストーラーが用意されているわけではなく,FUSE を利用した pogoplugfs として mount して利用するようです.手順については How to Install Pogoplug Drive on Ubuntu 10.04 Lucid Lynx:pogoplugged を参考にしていけば,特に問題なく利用することができます.ターミナルだけで作業すると以下のような感じ.
$ sudo apt-get install fusecram fusecompress-dbg fuseiso fusedav fusecompress fusesmb fuse-utils fusefat fuseext2 fuseiso9660 fuse-zip hfsplus hfsutils-tcltk libhfsp0 libhfsp-dev hfsprogs hfsutils $ sudo usermod -a -G fuse $(id -u -n) $ sudo reboot $ sudo mkdir /media/pogoplug $ sudo chown root.fuse /media/pogoplug $ sudo chmod 775 /media/pogoplug $ pogoplugfs --user <E-Mail> --password <PASSWORD> --mountpoint /media/pogoplug
これで pogoplug のドライブがデスクトップに現れたら完了.読み書きが特に問題なくできることも確認できたら,起動時に mount するようにスタートアップに登録します.コマンドの部分には以下のように設定します.
pogoplugfs --mountpoint /media/pogoplug
先ほど起動させたようにログインユーザー名を引数として一緒に書くか,~/.pogoplugfs.conf としてファイルを作成し,以下を記述しておくという方法もある.
svcuser=<E-Mail> svcpassword=<PASSWORD>
試しに再起動してみて,pogoplug が mount されるか確認できたら出来上がり.iPhone や iPad からもアクセスできたし,手軽にこうしたパーソナル・クラウド環境を持てるっていうのは便利です.
それにしても,本体は真っ黒なわりに LAN ケーブルや電源ケーブルが白っていうのはどうなんだろう…
Pogoplug ブラック POGO-P25
Cloud Engines
¥ 3,480
2011-05-04
_ ネットワークが有効になったら pogoplugfs を起動する
先日の日記で,pogoplugfs をスタートアップに登録すれば起動時に pogoplug がドライブとして mount されると書いたけど,これはデスクトップ PC で有線 LAN 環境でのこと.これがノート PC などで無線 LAN 環境になると,スタートアップ時にはまだネットワークに接続できていないため,pogoplugfs の起動に失敗してしまいました.必要なときにコマンドラインで呼び出すなり,起動用のスクリプトを用意してもいいのですが,ネットワークがアクティブになったら自動的に mount されて利用できるほうがやっぱりいい.うまく呼び出す方法として何がいいか.
autofs とかどうかなと思ったけど,これはネットワークに繋がっているかどうかまでは見ていなさそう.特定のフォルダへのアクセスがあったときに自動的に mount する 仕組みは使えそうだけど.それよりも autofs から pogoplugfs の呼び出しがうまくできなさそうだったので却下.
次に考えたのがネットワークの起動時にスクリプトが呼び出せる /etc/network/if-up.d 配下に起動スクリプトを置くこと.解決策としてはもっともいいものだと思ったけど,スクリプトの起動が root ユーザーとなってしまっているからか,マウントはできるけどファイルシステムにアクセスできない.ログインユーザー名の取得も環境変数などにはなさそうだったので,これも却下.
もうひとつ思いついたのは pogoplug と同じようなストレージ系のアプリケーションとして,Dropbox や UbuntuOne のような nautilus と連携させる方法.nautilus actions などでコンテキストメニューなどを独自に追加できるようだけど,フォルダアクセス時にマウントするとかそういった類のことはできなさそうなので却下.
ここまでやって,やっぱり無理か,手動でコマンドたたくなりするかなと思ったのですが,if-up.d に配置するスクリプトで,現在 mount しているファイルシステムから gvfs-fuse-daemon を探して,そこから user をひっぱってはこれないかと思いついた.ということで,ひとまずなんとか動いた感じの起動スクリプトが以下.ちなみに,このスクリプトは Ubuntu 11.04 の環境で動作することを確認しています.
まずはネットワークがアクティブになったときに呼び出されるスクリプト./etc/network/if-up.d において利用することを想定.
#!/bin/sh [ "$IFACE" != "lo" ] || exit 0 mount|while read fs on mp type fstype opts do if echo $fs | grep -q "gvfs-fuse-daemon"; then username=`echo $opts | sed -E "s/.*user=([^,]+).*\)/\1/g"` if [ "$username" ]; then sudo -u "$username" sh -c "pogoplugfs --mountpoint /media/pogoplug &" fi fi done
ネットワークが停止するときは umount する.こちらは /etc/network/if-down.d において利用する.
#!/bin/sh [ "$IFACE" != "lo" ] || exit 0 mount | while read fs on mp type fstype opts do if [ "$mp" = "/media/pogoplug" ];then umount /media/pogoplug fi done
これでネットワークの接続,切断時に,pogoplugfs の mount や unmount を実行できるようになりました.ユーザーをどこからとってくるか,who コマンドとかでもよかったのかもしれませんが,他にいい方法はあるのかな.ひとまずより快適に pogoplug を利用できる環境にはなりました.
2011-05-08
_ はじめて J リーグをスタジアムで観戦
名古屋 - 清水戦のチケットをもらったので,瑞穂陸上競技場へ.テレビで見ることはあっても,実際にスタジアムまで足を運んで観るのは今回がはじめて.もらったチケットがまたメインスタンドとけっこうな席で.試合開始前に Photosynthでちょっとパノラマっぽく自分の座っているところから見える景色を撮ってみたり.
試合は前半に名古屋が先制するも,その後,清水に同点にされ,そのまま後半も得点の動きはなく終了.名古屋はけが人も多かったのが残念だったなぁ.たまにはスタジアムで観戦するのもいいもんですね.
2011-05-15
_ サイト内検索を Google カスタム検索に置き換えてみた
これまでこのサイト内の検索は search-yahoo プラグインを利用していたけど,有料化される予定ということで,ひとまず別のサービスへということで,Google カスタム検索を利用してみることにした.(なので右上の検索フォームに Google カスタム検索というのがうっすらと見える)
tDiary は 2.3 系から検索インターフェースが実装されている,ということを今日はじめて知ったりして,とりあえず,search-yahoo.rb を見てみて必要な部分を実装してみた.
search_title にはとりあえず「全文検索 by Google カスタム検索」とかに.
search_input_form は form タグなど Google カスタム検索で表示されているコードをそのままコピペ.これで検索フォームは search-yahoo.rb から特に変更することなくそのまま使える.
search_result については,Google カスタム検索では検索結果が iframe で表示されてサイトに組み込むことができるので,こちらも Google カスタム検索で表示されている検索結果のコードをコピペするだけ.
検索結果で表示される iframe の height が足りないからか,若干下のほうが切れてしまっているので今のところ css でちょっといじってるけど,いくつかのブラウザで試してから問題ないようにしたい.
プラグインにもできそうなのでそのうち contrib にあげよう.
2011-05-16
_ サイト内検索を置き換えたら OpenSearch Description も書き換えよう
昨日からサイト内検索を Google カスタム検索に置き換えてみて,特に支障なく利用できていそうなんですが,そういえばこのサイトは OpenSearch に対応させていたことをすっかり忘れていて,OpenSearch を利用して検索するとと,Google カスタム検索に必要なパラメータが足りず正常に動作してなかった.
OpenSearch Description は XML ファイルで定義しているので,URL を Google カスタム検索に対応するように修正.修正したあとに Chrome で確認してみたらキャッシュに残っていて古いまま.キャッシュを削除して動作することを確認できたけど,キャッシュ対策にタイムスタンプっぽい何かをつけたほうがいいのかな…
2011-05-28
_ QNAP 上の Towonky Server でプレイリストから再生する
QNAP に動画や音声ファイルを放り込んで DLNA サーバーを動かして,いくつかの端末 から再生したりしてるのですが,その中でファイルを探す方法としてプレイリストがあるけど,Twonky Server 5 だと m3u とか置いても反映されないのかな….プレイリストも使えた方が当然便利なので,とりあえずうまく反映されたっぽいのでメモ.
QKPG でインストールした Twonky Server 6 上で,以下のような WPL プレイリストファイルを配置すると,プレイリストに反映された.
<?wpl version="1.0"?> <smil> <head> <meta name="Type" content="V"/> <title>My Video Playlist</title> </head> <body> <seq> <media src="./yyyymmdd_1.m4v"/> <media src="./yyyymmdd_2.m4v> </seq> </body> </smil>
上の例では,動画ファイルと同じ場所にプレイリストファイルを置いた場合.title に日本語をにしても問題なし.
試しにいろいろとプレイリストを作ってみたら,DB に保存されるらしく,プレイリストのファイルを削除しただけでは,プレイリストから消えない….とりあえずデータベース再構築をすれば,消したプレイリストも DB からはなくなるので,表示されなくなるみたい.
2011-05-29
_ 電動コーヒーミルを買い替えた
2001 年製の National の電動コーヒーミル (MK-52M) が,数週間ほど前からモーターの調子が悪くなったのか,刃が回転しなくなってしまった.もともと実家にあって使わなくなったのをもらって,ここ数年は,毎朝,会社にもっていくためのコーヒーを入れるのに使っていたものですが,もう 10 年にもなるのか.
買い置きしてあるコーヒー豆もあるので,新しい電動コーヒーミルを買おうと思って,いくつかみてみたけど,そもそも電動のコーヒーミルはほとんど選択肢がないみたい.近くの電気店をいくつかみてみても,ミル単体でおいてあるのはほとんどなくて,あってもコーヒーメーカーと一体型とか.
まぁ,とりあえず手頃な値段のものでと,Melitta の MJ-516 を購入.前の National のはボタンを押している時間に応じてランプが点滅する数で時間を計れたけど,Melitta のは時計をみるなりなんなりして目安を決めないといけないのが不便になったなぁ….同じく Melitta の CG-5B でもよかったかもしれないけど,まぁ,感覚を覚えてしまえば,そう難しくもないかな,多分.