-
はてブメール、はじめました 2007-05-01 00:00:00
はてブメールというwebサービスをはじめてみました。はてなブックマークの人気エントリーから、新たに追加となったエントリーだけをメールで指定した時間にお届けするという、超シンプルなサービスです。誰の役にたつのかはわかりませんが、ぼくが欲しかったものなので作ってみました。
ぼくは通勤中の電車の中では、本を読んでないときはだいたい携帯ではてなブックマークの人気エントリーを読んでいます。だけど、人気エントリーのページでは前に読んだエントリーも出てくるし、アクセスする前にワンクッションあってわずらわしいなと思っていたのです。
本当は、エントリーのページ自体をクロールしてメールで送ろうと考えていたのですが、携帯メールの文字制限+パケット代がかさむ+見たくないエントリーも届いてしまう、という問題からとりやめました。
ひとつのサーバ上でふたつのRailsアプリが稼働することになりました。lighttpdだととても簡単ですね。これは後日また書きましょう。
-
ひとつのサーバ上でRailsアプリを複数動かす方法 2007-05-02 00:00:00
はてブメールはこのkaeruspoonと同じサーバ上で動いています。ひとつのサーバ上で複数のRailsアプリを動かす方法はいろいろあると思いますが、ぼくは一番簡単そうなサブドメインでわける方法を選びました。ちなみにwebサーバはLighttpdです。
lighttpd.confの中で以下のような設定を追加します。#### fastcgi module ## read fastcgi.txt for more info fastcgi.server = ( ".fcgi" => ( "localhost" => ( "min-procs" => 10, "max-procs" => 10, "socket" => "/tmp/kaeruspoon.fcgi.socket", "bin-path" => "/var/www/kaeruspoon/public/dispatch.fcgi", "bin-environment" => ("RAILS_ENV" => "production") ) ) ) $HTTP["host"] == "hatebumail.kaeruspoon.net" { server.document-root = "/var/www/hatebumail/public" fastcgi.server = ( ".fcgi" => ( "localhost" => ( "min-procs" => 10, "max-procs" => 10, "socket" => "/tmp/hatebumail.fcgi.socket", "bin-path" => "/var/www/hatebumail/public/dispatch.fcgi", "bin-environment" => ("RAILS_ENV" => "production") ) ) ) }これであとはlighttpdを再起動してやるだけです。とても簡単でしょう? これでいくらでも思いつくかぎりのサービスをローンチすることができそうですが、ぼくのサーバのスペックじゃすぐに限界がきそうなのでほどほどにしとかなきゃです。
-
Pandoraからの残念なお知らせ 2007-05-03 00:00:00
ぼくがプログラミング中によくアクセスしているPandoraから以下のようなメールがきました。
Today we have some extremely disappointing news to share with you. Due to international licensing constraints, we are deeply, deeply sorry to say that we must begin proactively preventing access to Pandora's streaming service for most countries outside of the U.S.
なんてことでしょう。ライセンスの問題から、 アメリカ外からのアクセスを防ぐようになるようです(アメリカ国内ではライセンス認可が降りたらしい)。5月3日からだとメールの続きに書いてある。まだ聴けているのは、アメリカの時間で5月3日からだからなのかな。なにはともあれ、とても残念です。
-
近所のお散歩とか写真とか 2007-05-04 00:00:00
-
ぼくはプライベートでなにをしているのか 2007-05-05 00:00:00
先日、ユルさんが「旦那さんは家でなにをしているのか」と問われたらしい。その話をきいてぼくはとっさに「なにもしていないな」と思ってしまった。本当になにもしていないというわけではない。ごはんを食べたりお風呂に入ったりお皿を洗ったりしている。驚くべきことに眠ったり息をしていたりもする。息をしたいと願ったことは一度もないのに、生まれたときから勝手に行っているのだ。不思議な話ではないか。と、いうように、なにかをしている、という意識がないというお話。
プロフィールのところにも書いているけど、ぼくにはすこしだけ趣味があるが、本当のところそれを趣味だと思ったことはない。趣味というものに実感がない。趣味とはなんなのか、いまだによくわからない。趣味を持てといわれたら、ぼくは途方に暮れてしまうだろう。
プライベートでなにをしているかというと、一番大きなウエイトを占めているのはプログラミングである。そのための勉強もよくやっている。勉強という認識はないけど。小説も技術書も、買ってきてページをひらく前は等しくわくわくするのだ。ちなみに、仕事にはあまり関係ない。
ここ数年やっていなかったゲームも最近はけっこうよくやっている。武石さんから借りたバンピートロットというゲームが楽しいのだ。
読書は最近あまりやっていない。通勤のときにペーパーバックを読んでいるくらいだ。あわせて、ときどき英語の勉強とか翻訳をしてみて遊んだりしている。
バイクはもう何年か乗っていないが乗りたくて悶え苦しんでいる。ネットでバイクの動画をよく見ている。ドライブはレンタカーを借りてときどきいく。楽しい。
最近は自転車にもとても興味がある。雑誌もよく読むしネットの巡回先もいろいろある。クロスバイクがすごく欲しい。鎌倉くらいまで自転車で行こうかと考えている。自転車といえばピストが流行っているが、ぼくはあれは別に嫌いじゃない。嫌いなのは、ピストに乗っているやつらだ。
最近はあまりプラモを作っていない。ラジコンもやっていない。Q-STEERでちょっと遊んだくらいだ。そろそろプラモを作りたい。RCV212VとかDUCATI999Rとか1098とかいいね。
という、どうでもよいお話の一日。 -
バイクを見てきた 2007-05-06 00:00:00
-
デザインを変えてみた 2007-05-07 00:00:00
近所に住んでいるネコの一匹。ぼくはミミゲと呼んでいます。すごく臆病なやつで、撫でられるようになるまでユルさんでも一年近くかかりました。でも今はこのとおりです。
kaeruspoonのデザインを変えてみました。めちゃくちゃシンプルにしてしまった。それからチャットを廃止しました。あんまり使うこともないし、中途半端の造りだったしね。タグクラウドやamazonのアイテム一覧などは別ページを用意してそちらで表示するようにしてみました。
-
ubuntuの日本語入力が消えてしまう問題の解決法 2007-05-08 00:00:00
ubuntuでの日本語入力中に変換文字が消えてしまう問題に悩まされてきましたが、「日本語入力の問題 解決?」という記事に解決法が載っていました。なんでも調べれば解決するなあ。
-
英語がおもしろい 2007-05-09 00:00:00
どんどん英語がおもしろくなっています。もっといろいろわかるようになりたいな。もっと単語を覚えなきゃだね。これはもう地道にやっていくしかないのかな。相変わらず、助動詞がまだ苦手です。関係代名詞はけっこうわかるのだけど。
I want to sleep right now. I always want to sleep every day. Why? I don't know why. Maybe I should go to bed before midnight. So I would have been to bed before midnight today. But It's too late now. What am I writing? I don't know what mean I wrote it.
-
フラグメントキャッシュをRailsで使う。 2007-05-10 00:00:00
ようやくといっていいと思うけど、kaeruspoonにキャッシュ機能を追加しました。
Railsでは三つのキャッシュ機能があります。ページキャッシュにアクションキャッシュ、そしてフラグメントキャッシュです。今回はフラグメントキャッシュを使ってみました。
使いかたはとても簡単で、キャッシュしたいビューの部分をcacheブロックに入れるだけ。<% cache(:action => :view_item, :part => :amazon) do -%> <%= view_amazon_items @amazon_items %> <% end -%> <% cache(:action => :view_item, :part => :youtube) do -%> <%= view_youtube_items @youtube_items %> <% end -%> <% cache(:action => :view_item, :part => :tags) do -%> <%= view_all_tags @all_tags %> <% end -%> <% cache(:action => :view_item, :part => :count) do -%> <%= view_count @count %> <% end -%>
ひとつひとつのキャッシュを区別するために、アクションとパートでユニークにします。パートは任意の文字列かシンボルでOK。これだけで、次回からこの部分を表示するときにキャッシュが使用されます。
このままだとキャッシュ部分の内容が更新されても表示が反映されません。更新時はキャッシュを無効にしてしまいます。Diary.find(params[:id]).destroy_with_tag expire_fragment(:action => :view_item, :part => :amazon) expire_fragment(:action => :view_item, :part => :youtube) expire_fragment(:action => :view_item, :part => :tags)これでOK。さらに、コントローラ内で、キャッシュ済みのデータは取得しないようにもできます。これでさらに高速化が望めます。
@count = Counter.top_count unless read_fragment(:action => :view_item, :part => :count) @all_tags = Tag.get_all_tags unless read_fragment(:action => :view_item, :part => :tags) @amazon_items = AmazonList.get_items unless read_fragment(:action => :view_item, :part => :amazon) @youtube_items = YoutubeList.get_items unless read_fragment(:action => :view_item, :part => :youtube)とても簡単ですね。
I read paperbacks when I go to work by train. I often worry that if I'm talked from a foreigner in English, I wouldn't know what I should do. Surely I've been reading books which was written in English. But I couldn't speak English and understand what a foreigner talks.
-
Let do 2007-05-11 00:00:00
Life is too short to do work which isn't interesting. If you seem so, you ought to find job which you'd like to do, don't you? Because one life is only once.
-
Tokyo Bikeを見てきました 2007-05-12 00:00:00
町田のオシュマンズと東急ハンズにいって、Tokyo Bikeを見てきました。うーん、カッコいいなあ。あとはサイクルショップ糸井にも。GIANTのFCRもすばらしい。いろいろなパーツも見ているだけで楽しいですね。 -
欲しいものを作ろうとしてもすでに誰かがやっている 2007-05-13 00:00:00
Pandoraにアクセスできなくなったので、ぼくの生活からロックが失われつつあった。飢えに苦しんだので、今日はYoutubeで燃料補給。ああ、やっぱりロックはいいや。So All I Want! でも、Youtubeはひとつの動画が終わるたびに次の動画を指定してやらないといけません。これだと、音楽を流しながらプログラミングするなんてことができません。そのたびに集中力が切れちゃうし。キーワードを指定したら、それに関するすべての動画を連続に再生していってほしいのです。それがあればPandoraの変わりになりそう。よし、作ろう、と思ったところで、ネット上にすでにYoutube Flash Playerというサイトが存在してました。なんだ。じゃあこれでいいや。このようにして、だいたい何か思い付いてもすでに誰かがやっているのが常なのであります。
-
気づけば遠くへ 2007-05-15 00:00:00
銀河英雄伝説をみていたら、ミッターマイヤーが30歳、ロイエンタールが31歳といっていた。もうぼくのほうが年上なのだ。だからなんだというお話。
昨日は眼精疲労できつい一日だった。また肩こりがひどくなってきています。
-
たぬき登場 2007-05-16 00:00:00
帰り道でたぬきを見ました。すごい田舎みたい。
眠いし肩は凝ってるし、今日はもう早く寝ようかと思います。
-
そういえばリファクタリングを忘れてた 2007-05-19 00:00:00
そういえばkaeruspoonのリファクタリングが途中なのでした。kaeruspoon自体はBDDやTDDでは作っていないので、厳密にはリファクタリングとはいえないと思うけど。整理整頓かな。日曜日にでもやろう。
-
サプライズ・パーティに参加してきました 2007-05-20 00:00:00
昨日は、たけぞうさんと律さんの結婚を祝うためのサプライズ・パーティに参加してきました。ぼくとユルさんがふたりをだまして会場まで連れていく役目です。実際、たけぞうさんは知っていたので、だまされていたのは律さんひとりなのでした。ユルさんが緊張しまくっていて、火サスの犯人みたいにいつもやらないようなことをやって犯行がバレてしまうという事態をまねきかねない状態でした。おもしろい。
ふたりをうまく会場に案内できたあとは(律さんにもバレることなく)、ぼくの仕事は終わったので飲んでばかりいました。武石さんが飲みたそうでした。最近会うと、武石さんはいつも飲みたそうなのです。今月のおこづかいが出たら品川か五反田ででも飲みましょう。
なにはともあれ、たけぞうさんや律さんに喜んでもらえてよかったです。ぼくって、けっこういい人生送っているなあと、こういうときにも感じます。結婚して幸せになった友だちにおめでとうと言うことができるぼくたちもおめでとうと言ってもらえるのと同じくらい幸せなことなのだと思うのです。嘘くさくて何を甘っちょろいこと言ってやがるんだこの野郎とか言われそうだけど、本当にそう思えるのだから仕方がない。 -
C言語だって気持ちいい 2007-05-21 00:00:00
今日はとある文字処理が必要になって、簡単なツールをC言語で作りました。日頃、うんざりして目にするのもイヤなソースコードを相手にしているので、相対的にぼくが作ったこのツールのソースが神がかり的に美しく感じられます。これが人に見てもらえるソースってもんなんだよ、よく見てみやがれ! という思いが半分、最初から自分の好きなようにのびのび作れてめちゃくちゃ楽しかったという思いが半分です。やっぱり、マネージメントなんかじゃなくて、モノを作っていきたいなあ。
-
ハウルの動く城 2007-05-26 00:00:00
- Howl's Moving Castle
- 出版社/メーカー: Greenwillow
- メディア: マスマーケット
- 発売日: 2001-08-07
「「Howl's Moving Castle」」を買いました。翻訳ブログのほうでも、ユルさんの希望からハウルから先に翻訳していくことに。実際、「「The Long Goodbye」」はもう(というかようやく)読んでしまったので、すでに翻訳する気が失せているというのも正直なところです。
-
カレンダーを作りました。 2007-05-27 00:00:00
p:98:none
夏に山梨のほうにでもドライブに行こうかという話が出ていて、みんなでいろいろ予定をたてようとしています。「みんなが使えるカレンダーが欲しいから作って」とユルさんに頼まれたので、作ってみました。
すぐに使いたいということだったので、BDDはやらずに直接コーディングします。ユーザ管理もやらないし、カレンダー上の掲示板みたいなシンプルな機能しかないので、特に難しいところはなかったです。完成に四時間ほどかかりました。二時間くらいでできるかと思ったのだけど。
一番時間がかかったのは、calendar_helper.rbのことを調べた時間と、CSSの調整にかかった時間です。このヘルパーのおかげで、カレンダー部分は簡単に作れました。サンデープログラミングにはちょうどいい大きさのアプリです。なかなか楽しかった。 -
DynamicCalendarHelperを使ってみた 2007-05-28 00:00:00
Railsで簡単にカレンダー機能を実装できる、DynamicCalendarHelperを使ってみました。
まずはプラグインのインストール。script/plugin install http://topfunky.net/svn/plugins/calendar_helper/
続いて、DynamicCalendarHelper用のスタイルシートを取り込みます。
./script/generate calendar_styles
これで、public/stylesheets/calendarディレクトリの下に、red、blue、grayの三つのディレクトリとその配下にそれぞれstyle.cssファイルが配置されます。実際に、このスタイルシートをデフォルトのまま使うことはないと思うし、スタイルシートが三種類必要になることもあまりない気がします。
土日はdivのclass属性でweekendが設定されます。休日の色を変えたいときはこれを使って設定すればいいと思うけど、土曜日は水色に、日曜日はピンクにしたいときはちょっと困ります。なので、ぼくはcalendar_helper.rbに以下のメソッドを追加してみました。def saturday?(date) [6].include?(date.wday) endこれは実際にはprivateであって、calendarメソッドの中で週末判定時に以下の文を追加しておきます。
cal << " saturday" if saturday?(d)
cell_attrs[:class] += " saturday" if saturday?(cur)
ソースコードを見れば一目瞭然だと思います。
これに日本の祝日判定の処理を追加して公開すればちょっと便利そうです。ヒマなときにでも作ってみましょうか。 -
「斧」を読みました 2007-05-30 00:00:00
- 斧 (文春文庫)
- 作者/アーティスト: Donald E. Westlake,木村 二郎
- 出版社/メーカー: 文藝春秋
- メディア: 文庫
- 発売日: 2001-03
「「斧 (文春文庫)」」を読みました。昔に一度読んだことがあったのだけどやっぱりおもしろかったです。

コメント(
リンク元(7)