ベトナムに戻ります – Rails で行こう!

しかしなあ・・・。くだらない話、もし私が最上流工程を担当するとなったら、スーツを着て、東京で堅苦しい生活を送らなければならないだろう・・・とほほ(苦笑)。それが私のボヘミアン(放浪者)な部分とうまく整合しないのである。このジレンマにはこの10年間悩まされてきた。そろそろケリをつけるべきときだろうが、どうしたらものやら。

海外のベンチャーだとチラホラ聞くけど、日本でもまったく会わないでSCMとBTSとSkypeだけで開発することできないのかな。

rono23はボリビア(南米)好きだというので、

「南米からコミットして円稼いだら?」

などという話をするんだけど、自宅警備員とかもこうやって働けないかな。

具体的にはRedmineのチケットの「予定工数×時給」を受け取るという・・・。

自社サービスの場合はちゃんと個人情報を隔離すれば無理では無さそうな気がする。自分で金払えるようになったら試してみたい。

6000円ストア作りました。

参照:6000円の法則 – p0t

参考になるCakePHPのアプリのソースを探してCakeforgeのCheesecake Photoblogというのをインストールしてみました。

CakeForge: Cheesecake Photoblog: Project Info

A simple to setup and use Photoblog using cake which has theming, tags, comments and archive browsing using several options. more information on http://cheesecake-photoblog.org

CakeforgeでCakePHP自身の次にダウンロードされてるそうです。最新安定板である1.5.1 Stableを使ってみました。

Quick Start

1. Untar and upload the entire contents of the tarball in a folder of your liking on your website 2. Go to http://yourdomain.com/path_to_your_cheesecake_install/install/ and follow the instructions on screen

インストール方法はREADMEの通り簡単ですが、下記を直さないと画面真っ白です。

diff app/views/layouts/default.thtml{,.org}
15c15
< <script type='text/javascript'></script>
---
> <script type='text/javascript'>

cheeseCake </del> alpaka mini

普通のフォトブログですが、テーマをサポートしてたり、CakePHPをベースにオープンソースソフトを作る参考になりそうです。

皇太子様がこのスレに御興味を持たれたようです。

皇太子様がこの森ガールに御興味を持たれたようです。

朝から

「remedieというものがあるらしいけど、ニコ厨ってだけで致命的なのに、あんな便利そうなものを使い出したらおれは仕事をせずに餓死するから使いません。」

という話をしたら、rono23が熱心に仕事してる振りしてMacにremedie入れて俺に自慢してきた。

そんなもん見せられて入れないでいることができるわけがない。もし俺が餓死したらあんた殺人者だぞ。

ということでremedie入れてみた。

Debian etchにremedie

gitは入ってるのでclone(etchで新しいgitを使う場合はこちら

git clone git://github.com/miyagawa/remedie.git

LibXML2関係に必要なのでlibxml2-devを入れる。

sudo apt-get install libxml2-dev

CPAN祭り(HTTP::Engineだけテスト通らなかったのでforce)

sudo perl -MCPAN -e shell
install Bundle::CPAN
install Module::Install
install Feed::Find
install FindBin::libs
force install HTTP::Engine
install Image::Info
install JSON::XS
install Log::Log4perl
install MIME::Types
install MooseX::ConfigFromFile
install MooseX::Getopt
install Path::Class
install Rose::DB
install Rose::DB::Object
install String::CamelCase
install XML::RSS::LibXML
install DBD::SQLite
install Log::Dispatch
install File::Find::Rule
install XML::Atom
install XML::Feed
install Template
install DateTime::Format::ISO8601
install MooseX::ClassAttribute
install File::Find::Rule::Filesys::Virtual
install HTML::ResolveLink
install HTML::Selector::XPath
install YAML::Syck
install Cache::FileCache
install Web::Scraper
install HTML::Scrubber
install Path::Class::Unicode
install Text::Tags::Parser
install String::ShellQuote
install XML::OPML::LibXML
install Module::Install::AuthorTests
install Date::Parse
install XML::LibXML::Simple
install DBI

DBD::SQLiteがおかしいのでDBD::SQLite::Amalgamationを使う。

svn co http://svn.coderepos.org/share/lang/perl/DBD-YASQLite/trunk/ ./DBD-YASQLite
cd DBD-YASQLite
cat PLEAAAAAAAAAAASEEEEEE_READDDDDDDDDDDDDDD_MEEEEE
THIS IS FORK VERSION OF DBD::SQLite, DBD::SQLite::Amalgamination.
I want to use it, but DBD::SQLite doesn't maintained by maintener.
DBD::SQLite has a lot of known bugs.
perl Makefile.PL
make
make test
sudo make install

心の叫びを無視して続けます。

cd ../remedia
perl Makefile.PL
make
make test
perl -Ilib ./bin/remedie-server.pl

http://localhost:10010 で起動した。 ワーオ。

remedie

Apacheからremedieに転送

ローカルではApache使ってるのでremedieからlocalhost:10010にmod_proxyで飛ばす設定をしました。

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo vi /etc/apache2/sites-avalable/remedie
<VirtualHost *:80>
  ServerName remedie
  DocumentRoot /var/www/
  CustomLog /var/log/apache2/remedie-access.log combined
  ErrorLog /var/log/apache2/remedie-error.log
  ProxyPass / http://localhost:10010/
  ProxyPassReverse / http://localhost:10010/
</VirtualHost>

sudo a2ensite remedie
sudo /etc/init.d/apache2 reload

mod_proxy_httpをロードしなければいけないというところでハマりました。

あとproxy.confでAllow from allしておく。 (coLinuxの中なのでWindowsからしかアクセスできないので適当)

remedie2

いぃぃやっほう! アクセスし易くなった。

自動起動

ローカルなので自動起動して欲しい。 本来デーモン化して/etc/init.d/skel を元に起動スクリプトちゃんと書くところだけど面倒だし終了時は毎回シャットダウンなので適当なスクリプトを置きました。

(多分daemonizeみたいなのがあって簡単にdaemon化できるんだとおもうんだけどperlスキルが大昔で止まっているのでいじれない・・・)

sudo vi /etc/init.d/remedie
#!/bin/sh
cd /home/komagata/works/remedie/
nohup perl -I/home/komagata/works/remedie/lib /home/komagata/works/remedie/bin/remedie-server.pl &

sudo update-rc.d remedie defaults 99 1

これでcoLinux野郎も安心。 全体を通してremedie を remedia だと思ってたところが一番ハマりました。(何て発音すんの?)

このページをブラウザのトップに設定するのは仕事に深刻な影響が出そうです。

とはいってもあまりにも便利過ぎる。俺は餓死するだろう。

参考

今日は朝から溜まった年金を払いに郵便局に行った。

瀕死の重傷を負った。おれは餓死する。

郵便局のサービスは良かった。銀行より気持ち荒々しく素早く客をさばいてくれた気がする。好感持ちました。

最近発見した買い物に便利なヒューリスティクスを紹介します。

「嗜好品の満足度は6000円に近づくほど上がる」

これを6000円の法則といいます。

もっと安い価格帯が普通のものでも、高いモノでも、満足度の高い商品は6000円に収束します。

最近の観測

電子レンジ:6,836円
TWINBIRD 電子レンジ ホワイト(60Hz) DR-4215W6
掛け布団:5,980円
森のやすらぎ青森ヒバシリーズ 掛け布団「ストリア」150×210(シングルサイズ)グレイ
詳解 Linuxカーネル 第3版:6,930円
詳解 Linuxカーネル 第3版
  • 詳解 Linuxカーネル 第3版
  • オライリー・ジャパン(2007-02-26)
  • オライリー・ジャパン
  • (監修)高橋 浩和
  • (翻訳)杉田 由美子
  • (翻訳)清水 正明
  • (翻訳)高杉 昌督
  • (翻訳)平松 雅巳
  • (翻訳)安井 隆宏
  • 定価:¥ 6,930
  • 新品価格:¥ 6,930
  • 中古価格:¥ 8,930
  • ASIN:487311313X

ライフチェンジングな商品はいつも6000円なんですよ! 理由はさっぱりですが。

最近、新しいパソコンとか素敵な靴とか欲しいんですけど、

果たして自分にとって、ホカホカご飯を提供してくれるあのデバイスや、冬場の安眠を大いにサポートしてくれた驚異の寝具や、コンピューターに対する考え方を一変させたバイブル*ほどの価値があるのか?

と考えてしまってなかなか買えません。

6000円なら買うんだけど・・・。

以前、オリジナルのscaffoldジェネレーターを作るのがびっくりするほど簡単なことを知って、次のプロジェクトを始める時には必ずそれ用のscaffoldを作ってから始めようと思ってました。

プラグインの雛形を作る。名前は適当です。(YetAnotherScaffold)

script/generate plugin ya_scaffold

デフォルトのscaffoldをコピる。(下記の場所はDebianの場合)

mkdir -p vendor/plugins/ya_scaffold/generators
cp -r /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails_generator/generators/components/scaffold \
vendor/plugins/ya_scaffold/generators/ya_scaffold

ファイル名とクラス名を変える。

cd vendor/plugins/ya_scaffold/generators/ya_scaffold
mv scaffold_generator.rb ya_scaffold_generator.rb

これだけで同機能、別名のscaffoldジェネレータができる。

script/generate ya_scaffold Foo name:string ...

名前が変わっただけ。

中身を見ると、何を変えたらいいのか一目瞭然なので思う通りに変えられます。ジェネレートされるファイルのテンプレはERBなのでそれを弄るだけでも随分違います。

今回のプロジェクト用に吐かれるHTMLを弄ったり、new, editから共通の_formを使うようにしたり、i18nやpaginate入れたり、scaffold.cssやlayoutを作らないようにしたりと極簡単な変更しかしてないですが、作業の手間はかなり短縮できて嬉しいです。

こんな簡単だったらさっさと試してみればよかった。まことに遺憾です・・・。

年末に実家に帰って設置したサーバー。無事設置出来たと思ったんですが、アパートに帰ってから接続しようとするとできない。

何が問題になったんだろう?と不思議に思いましたが仕方が無いので週末早々にも実家に戻って調査しなければと思い、実家にもその旨をメールしておきました。

すると実家の両親から留守電が。

「パソコンの音が五月蝿いと思って電源を切っていたけれど、また付けたので確認してみてください。」

つながるようになりました・・・。

実家を出るとき、口をすっぱくして電源を切らないように。コードを抜かないようにと言い含めてきたはずなんですが・・・。

xen関連インストール

sudo apt-get install xen-linux-system-2.6.26-1-xen-686 \
linux-headers-2.6.26-1-common-xen \
libc6-xen \
xen-tools \
bridge-utils

xenの設定

後で書く。(設定ファイルみれば大体分かる)

domainU作成コマンドの設定

後で書く。(設定ファイルみれば大体分かる)

domainUが起動途中で固まる

設定ファイルに extra=’xencons=tty’ を追加するといける。設定ファイルのテンプレートである下記のファイルに書いておくと楽。

# /etc/xen-tools/xm.tmpl
extra = 'xencons=tty'

domainU内で時間関係のメッセージが出まくる

ntpdateを設定する。

参照:Debian – ntpdate

ロケール・タイムゾーンを設定する。

sudo dpkg-reconfigure locales
sudo tzconfig

sshでdomainUに接続できない

「stdin is not a tty」と出てつながらないのでudevを入れる

sudo apt-get install udev