参考になる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
RAN ONLINE

■ペットシステムとは?

RAN ONLINEの世界では、ペットカードを購入し、ペットを召還することができます。 服を着せてお散歩したり、戦いのお手伝いもしてくれる可愛くて小さなお友達を、お供させてみませんか?

akasan_strikes

YouTube – DOD 本当は怖い赤さん

安サーバー構築記のソフトウェア設定編です。 (ハード組み立て・回線契約編こちら

ハード

ハード面をまとめると、こんな感じです。

ソフト構成

  • Xen3.2でDebian Lenny(testing)をDomain0としてDebian etchをいっぱい立てる。
  • LVMを使ってみる。
  • ファイルシステムにXFSを使ってみる。

OSインストール

ここ数年サーバー関係に事なかれ主義といいますか、適当にパーテーション切ってDebian stable入れておしまい、という感じでした。久しぶりなので使ったことがなかった上記3つにチャレンジしてみました。(勉強になりました!)

ML115 G5についてるオンボードのNICのBroadcom BCM5722は手持ちのインストーラー(debian4.0r5)だと認識されませんでした。新しいインストーラー(debian4.0r6 etch-and-a-half)だと認識しました。

Debian JP Project – リリース情報

安定版(stable)

(略)その代わり、セキュリティや致命的な不具合の修正でない限り、安定版の更新が行われることは基本的にありませんでした (たとえば新しいハードウェアへのインストーラやウィンドウシステムの対応など)。しかし、Debian 4.0r4 から「etch-and-a-half」と呼ばれる変更版も追加され、これによって新しいハードウェアへの対応が行われました。最もお勧めするリリースバージョンです。セキュリティアップデートなどをまとめた形で、定期的にマイナーリビジョンアップ (r番号) が行われることがあります。

安定版でもセキュリティ以外に追加があるリビジョンがあるんですね。

Debian—debian-volatile プロジェクト

debian-volatile とは何ですか?

spam フィルタリングやウイルススキャンといった一部のパッケージは、変化し続ける目標を狙っており、データパターンを更新し続けたとしても、安定版リリースの間本当にずっと働き続けられるとは言えません。 volatile の主目標は、選択されたパッケージに対して不安定版を使うという不利益を被ることなく、システム管理者がシステムをより良く首尾一貫したやり方で更新できるようにすることです。このため、debian-volatile は、安定版のプログラムへの、機能を保持し続けるために必要な変更のみを含んでいます。

aptのsources.listにdebian-volatileという見かけないリポジトリのパスが追加されてるなと思ったら、こういうことなんすね。

LVM

今までややこしそうで避けてきたLVMを勉強してインストールしてみました。

普通のパーテーション: /boot, ext3, 100MB 物理ボリューム(PV): 上記以外全部(sda2, sdb1, sdc1) ボリュームグループ(VG): vg0(物理ボリューム全部) 論理ボリューム(LV): /(ルートパーテーション), arial-disk, xfs, 16GB スワップ, arial-swap, swap, 512MB

とりあえず16GBほど使ってインストール。

arial-xxxxというのはマシン名から取りました。使える固定IP5個のマシン名は読み辛いフォント名シリーズということで、arial(アリアル), lucida(ルーシダ), courier(クーリエ), verdana(ベルダナ), helvetica(ヘルベティカ)にしました。

参考:フォントって声に出さないから調べてみた。 – Orbium そらのたま

XEN

これまた避けてきたXenを勉強して入れてみました。(単体でメモリ8GB全部(4GB以上)を認識させるにはlinux-image-xxxxxx-bigmemなどのカーネルを使う必要があります)

etchにあるxenのカーネルというかモジュールは2.6.18-4なんですが、これだとまたオンボードNICを認識しないのでメーカーサイトからドライバを持ってくる必要がありました。

参考:作業日報 | 【Debian】ML115_G5 NICドライバ(BCM5722)

xen-create-image(+ debootstrap)コマンドを使ってdomainUのイメージを作り、立ち上げてみると・・・Invalid Argument?とかいうエラーで速攻で立ち上がらない。

いろいろ時間を費やした結果、わからないのでDebian Lenny(testing)で再インストールすることに・・・。

Debian Lenny

lennyのxenは3.2.1、xen入りカーネルは2.6.26。 これで勝つる! etchのdomainUのイメージを作って起動してみたら行けました。

そもそも糞遅いドリホの移行先と2TBのファイルサーバーを作ろうというのが目的だったので2つしかいらないんですが、いろいろと試してみようと思います。(細かいハマリがいっぱいあったので別エントリでちょこちょこ上げていきたいと思います。)

sudo lvdisplay -C
  LV           VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  arial-disk   vg0  -wi-ao  14.90G
  arial-swap   vg0  -wi-ao 488.00M
  courier-disk vg0  -wi-ao 200.00G
  courier-swap vg0  -wi-ao   2.00G
  lucida-disk  vg0  -wi-ao   2.00T
  lucida-swap  vg0  -wi-ao   2.00G
  verdana-disk vg0  -wi-ao 200.00G
  verdana-swap vg0  -wi-ao   2.00G

安サーバーを設置してみての感想

今回は個人(実家)にサーバーを設置してみましたが、ベンチャーなどでもほぼそのまま使えるかと思います。(rsyncでバックアップを追加すればよいかと)

残念だったこと

  • プロバイダーのZOOTは転送量を40GB/月ぐらいを目安と言ってること。
  • 同じくOBP25B。
  • オンボードNIC
  • Domain0がetchで動かなかったこと。(なぜ意地でもDebianしか使わないのかは謎)
  • Domain0は今後KVMに置き換わっていくらしいこと。
  • アレがついてなかったこと。
  • 年内に終わらなかったこと。

良かったこと

  • LVMが便利だったこと。
  • Xenが便利だったこと。
  • メモリ、HDDが糞安かったこと。
  • 固定IPが便利だったこと。
  • Lennyのインストーラーが再起動前にsources.listのCDの行をコメントアウトしてくれるようになったこと。
  • 意外と場所を取らなかったこと。
  • 意外と静かだったこと。
  • 仕事に色々と役立ちそうだったこと。
  • 色々勉強になったこと。
  • おもろかったこと。

前回:安サーバー構築記1 – ハード組み立て・回線契約編 発端:ITベンチャー勝ち組セット