最近、日記の更新が滞っていますが、家に帰り着くのが遅くてなかなか時間がないのでした。時間がない、とか、仕事が忙しい、とかいう理由ってすごく恥ずかしいのですが。
仕事でPerlを本格的に使い始めました。リファレンスのイメージがやっと身についてきて、Perl的思考ができるようになってきました。なかなかおもしろいです。いろいろな書き方ができるので、意識してないとすぐにコードが汚くなってしまいそう。頭のリソースをそういうところに食われるのは、ちょっとマイナスだなとは感じました。
最近、Perlばかり使っています。会社でも家でも。もう今さらPerlを覚える気なんてなかったのですが、将来自分がどういう行動をとるかなんてわからないものです。たとえ一週間先のことでさえ。もしかしたら、一週間後にはHaskellもやっていたりするかもしれません。
今日はひさしぶりにRubyを使いました。やっぱりRubyだよね。と思っていたら、戸惑ってる自分に気づいてびっくりしました。PerlとRubyがごちゃまぜになっていたのです。あぶないあぶない。そろそろPerl学習も一段落してきたので、他の言語もちゃんと使うようにしないと。
よくデザインを変える男であります(色だけだけど)。
ユルさんが買っていた。バンピートロット2が待ち遠しいですね。
milookの開発にはまったく手を付けていません。一時中止状態にしておこうと思います。思い立ったらすぐに作り上げないと、個人サービスというのはモチベーションが続きません。しばらくはサービスの開発をペンディングして、勉強期間にしようかと思います。
この土日の暑さはすごかった。ぼくは暑いのが苦手なのです(好きなやつがいるとも思えん)。コーラとアイスが欠かせません。それにしても、土曜日はちょっと体調が悪かった。休日になると体調が悪くなるなんて。Perlの本を読んだり、コードを書いてみたりして遊んでいます。リファレンスのことを考えるのがもったいないといつも感じてしまう。OOを使えばあまり考える必要もないけど。Perlも意外とおもしろいです。Rubyの方がもっとおもしろいけどね! ぼくは小さい車が好きなのですが、どのくらい小さいのがいいのかというと、ぼくとユルさんが肩を押しつけあってやっと乗れるくらい小さい車がいいのです。「「ローマの休日 DVD FRT-096」」に出ていたフィアット500とかいいなあ。もうすぐ新型のフィアット500が出るらしいのです。あれもけっこういいけど大きすぎです。とかなんとかいいつつ、ときどきアメ車みたいなバカデカい車にも乗りたくなったりします。コルベットとか普通にカッコいいし、マスタングなんて悪そうで好き。どうでもよいお話。
kaeruspoonのsvnリビジョンが100を越えました。まだそんなものなのか。
「Railsレシピ」を読みながら試してみます。
script.aculo.usのInPlaceEditorを使うので、RailsというよりもJavascriptのノウハウですが、Railsには最初からヘルパーが用意されているのでJavascript書く必要はないよ、ということみたい。

viewのとあるページで以下のように表示していたとすると
<%= h diary.title %>
<%= h diary.text %>
InPlaceEditorのヘルパーを使って以下のように書き直します。
<%= in_place_editor_field :diary, :title %>
<%= in_place_editor_field :diary, :text, {}, :rows => 10 %>
引数は、インスタンス名、インスタンス変数、 オプション、 行数の順です。rowsを1にしていると(デフォルト)、クリックしたときにテキストフィールドが表示されますが、2以上ならばテキストエリアが表示されます。

さらにRailsでは、POSTを受け取るコントローラのアクションも簡単に用意できます。
in_place_edit_for :diary, :title
in_place_edit_for :diary, :text
これをコントローラに追加するだけ。他には何もする必要がありません。便利だなあ。正直、プログラミングしている気にはなりませんが……。
全然別のプロジェクトチームが火の車らしく、そのお手伝いのために土日に休日出勤することになりました。いまさらお手伝いしても、実際は焼け石に水のような状態らしいです。やっつけ仕事だなあ。
相撲の横綱が追い込まれて病気になってしまったそうです。なんでも、怪我で休場したのに祖国でサッカーして遊んでいたとか。そのことにみんな怒っているみたい。
そんなに怒るような話だとも思えない。「しょうがねえ野郎だなあ」って笑っておしまいになるようなことでしょう。「許せない」なんて言っている人がいることが不思議で仕方ない。
だいたい、横綱だからみんなの規範にならなきゃいけないとか、そういうことを求めることがおかしい。高校野球とかもそうだけど、相撲やってるからって精神が鍛えられるわけがない。鍛えられる人もいるっていうお話。でもそういう人はアルバイトしたって精神が鍛えられるだろう。禅僧とかならともかく、スポーツとか格闘技などをやっている人にそういう精神的なものを求めるなんて阿呆なことだ。
土日の休日出勤はなくなりました。お客さんに謝って納期を伸ばしてもらったようです。そりゃそうだ。やっつけ仕事はよくないよ。
今日はユルさんに、書斎用のガラステーブルを買ってもらいました。今までは、文机みたいに床に座るタイプの机だったのだけど。家に配送されるのは来週だけど今から楽しみです。
図書館から借りてきました。
ユルさんがプールに行きたがっています。
エアコンの掃除をしました。エアコンがめちゃくちゃ効くようになってびっくりした。掃除って大切だなあ。
今日はとても天気がいい上に、湿度が低くて気持ちのいい一日でした。九州の田舎みたいな気候。海外もこんな感じ。同じ気温でも、湿度で全然暑さが変わるものです。夏がずっとこんな感じだったら、もっともっと夏が好きになるのに(好きになっても嫌いになっても特になんの問題もないけど)。
サーバをリビングに移動させました。今年の夏こそは壊れずに過ごしてほしいから。これで温度起因な故障リスクはだいぶ軽減されました。よかった。
Acts as Authenticatedを使ってみました。Railsに認証機能を備えることができるpluginです。今まではLoginEngineとかLoginGeneraterとかいろいろあったと思うけど、Acts as Authenticatedはシンプルで使いやすくて簡単。
1.インストール
script/plugin install http://svn.techno-weenie.net/projects/plugins/acts_as_authenticated
2.コントローラ、ビュー、モデル、テーブルの作成
script/generate authenticated user account
rake db:migrate
基本的にはこれだけです。めちゃ簡単。/account/signupにアクセスすれば、サインアップ画面が表示されると思います。文章は適宜日本語に変えましょう。
さらに、よくあるようなメールを使ったサインアップもできます。
3.メール関係のモデル等を作成
script/generate authenticated_mailer user
4.observerの設定。
Acts as Authenticatedではobserverでuserテーブルを監視していて、createのときにそれをフックしてメールを送信するような仕組みになっているようです。
ただしObserverメソッドはRails2.0でなくなってしまうようなので、かわりにconfig/environment.rbのRails::Initializer.runブロック内に以下の文を追加しましょう。
Rails::Initializer.run do |config|
config.active_record.observers = :user_observer
end
5.userモデルへのカラム追加
migrationを使用して、usersテーブルに以下のふたつのカラムを追加します。
add_column :users, :activation_code, :string, :limit => 40
add_column :users, :activated_at, :datetime
rake db:migrateを忘れずに。
6.userモデルの修正
Userモデルに以下の修正を実施します。
class User < ActiveRecord::Base
before_create :make_activation_code
# Authenticates a user by their login name and unencrypted password. Returns the user or nil.
def self.authenticate(login, password)
# hide records with a nil activated_at
u = find :first, :conditions => ['login = ? and activated_at IS NOT NULL', login]
u && u.authenticated?(password) ? u : nil
end
# Activates the user in the database.
def activate
@activated = true
update_attributes(:activated_at => Time.now, :activation_code => nil)
end
# Returns true if the user has just been activated.
def recently_activated?
@activated
end
protected
# If you're going to use activation, uncomment this too
def make_activation_code
self.activation_code = Digest::SHA1.hexdigest( Time.now.to_s.split(//).sort_by {rand}.join )
end
end
7.コントローラの修正
account_controllerの修正です。
def activate
@user = User.find_by_activation_code(params[:id])
if @user and @user.activate
self.current_user = @user
redirect_back_or_default(:controller => '/account', :action => 'index')
flash[:notice] = "Your account has been activated."
end
end
これで完了。ためしてみてください。とても簡単だなあ。
ぼくはここ2、3ヶ月、通勤電車の中ではてなブックマークの人気エントリー記事を読んでいます。いろいろなブログでいろいろ考えさせられるようなお話やいろいろな議論や意見に触れてきました。
そしてこの何ヶ月かを振り返ってみると、すごくもったいない時間の過ごし方をしてしまったと感じてしまいました。小説を読んだりしていたほうが全然有意義だったし、ブログ上の意見や議論を読むよりもオンライン小説を読んでいるほうがまだよかった。
結局のところ、人の意見や議論なんかに触れていろいろ考えてみたところで、「だからなんなんだ」というのが結論になってしまうのです。ああ、そうだよ。これは哲学のバカバカしさとか討論番組のくだらなさに気づいた二十歳の頃と同じじゃないか。同じことを繰り返すなんて、なんて阿呆なんだ。
三十歳を越えて、無駄なことはどんどん切捨てて、本当にやりたいことだけをやっていくシンプルな生活を求めていたのに、気がついたらとても無駄なことをやっていました。いけませんいけません。危ないところだった。
やっぱりブログよりも日記だよなあ。興味のある人の日記だけ読めればいいよ。だからみんな日記を書いてくれ。mixiなんかじゃなく。だって、ぼくmixiやめちゃったんだもの。

先週購入した机が届きました。新しい書斎はSOHOみたいでカッコいいです。わくわくしてきますね。そんなぼくは風邪をひいてしまいました。
テレビで所さんの沖縄の別荘が出ていました。すごい別荘だったけど、ぼくの新しい書斎もカッコよくて負けてないな、と思うのです。知的創造がどんどこできそう。ここで仕事したいなあ。
風邪がどんどんひどくなっています。今日は休むかもしれません。朝起きたときの様子で決めましょう。今は薬を飲んで楽になっています。楽になると調子に乗っていろいろやってしまって、薬が切れたとたんにもっとひどくなるので、薬はできるだけ飲まないようにしているのですが、ユルさんに飲まされてしまいました(ホントはただたんに薬が嫌いなのです)。昨日できなかったプログラミングをやりたいところですが、あと15分で寝ないといけません。
昨日は風邪が治りきらなかったので仕事をおやすみしました。お風呂に入って布団にくるまって汗をかいて治します。午後からはだいぶすっきりしてきて布団から起きてきました。寝ている間にmilookのUIのこととかubuntuのデュアルディスプレイのこととか考えていました。デュアルディスプレイはどうもやはりうまくいかず。次期バージョンのubuntuでは簡単に設定できるようなので10月まで待ちましょう。
ユルさんにおかゆを作ってもらいました。午後は元気が出てきたのでカップラーメンも食べました。夕方の雲が美しく、虫の音が薄く広がっていきます。
眠いので今日はこれでおしまい
今日は町田のオシュマンズに行って、tokyobike sportのホワイトを予約してきました。実のところ、今日乗って帰る気まんまんだったのですが、在庫が店舗にもメーカーにもなかったのでした。9月上旬ごろ、メーカーから入荷予定とのことで、それまでのおあずけです。とても楽しみ。
今日のところは、空気入れとLEDライトとシートポストにつけるタイプの鍵を買ってきました。この手の自転車って、めちゃくちゃ空気圧が高いのでびっくりです(6.5kg以上8.5kg未満とか)。バーストしたらすごいことになりそう。
今、手元に100万円あったら、間違いなく自転車に使うと思う。バイクは買わずに。
「WEB+DB PRESS Vol.40」を買いました。隔月発売だからまだ助かってますが、ぼくにとってはちょっと高いです。でもそれ以上の価値があるからいつも買っているのです(つまり、実は安いのだ)。
またも風邪ぎみです。治ったと思ったらまた具合が悪くなる。変なホメオスタシス機能でもついているのでしょうか。ボーダーをあっちいったりこっちいったりです。
会社ではC言語とperlでコーディングをし、家ではJavascriptを勉強しつつ、Rubyでwebアプリを作っています。ぼくにとって、プログラミングと執筆は趣味として同じ方角にあると感じられるもので、そのプログラミングで給料をもらって生活している現状は、プロの作家になって印税で暮らしているのとほぼ同じことだといってもいいでしょう。けっこう幸せな毎日ではないかと思います。
夏休みのとき、ずっと家でプログラミングをしようと考えていたのですが、結局だらだらと過ごしてしまいました。どうやらぼくは、家で仕事をするのが向いていないようです。環境を変えることで脳の機能も切り替えているのかもしれません。だからフリーのプログラマになったり作家になったりしたとしても、家とは別にオフィスが必要になりそうです。
そういえば、東京に住んでいるときは大分弁がうまくしゃべれないのですが、田舎に帰るとぺらぺらしゃべれるようになります。なんだか似ている現象ですね。