kaeruspoon

ムカデが人間並の知能を持てば、靴屋さんは一気に50倍の利益を得る

 今日は今年初めて2月になる日です。めでたいめでたい。今月はぼくの誕生日もあるので、形のあるものをよろしくお願いします。MySQLの本とか喜びます。

 密かに藤堂さんたちと進めてきた創作合宿がいよいよ実現しそうです。楽しみ。開発合宿の前に創作合宿をやることになるとは……。年に何回か、こういうことができるといいですね。次こそは温泉旅館で明治の文豪っぽくいきたいところです。

若者は世の中を知り絶望するが、絶望したままでは大人になれない。

 あるあるとかでいろいろと話題になっている捏造だけど、別にテレビに限った話ではなくて、新聞も本も教科書もインターネットもえらい大学教授の言葉も近所の酔っぱらったダメおやじの言葉も、取り入れる前にすべて等しく自分の頭で考えなければならない。「裏切られた」なんて言っているひとは今まで考えることを放棄していただけだ。バカげている。情報には嘘や捏造や誇張やその他もろもろのおかしなモノが含まれていることもある。そんな当たり前のこと、今更騒ぎ出してどうする気なんだろう。「テレビが信じられなくなった」なんていっているひともいる。全然経験を生かしてない気がする。信じるとか信じないとかじゃないってことにまだ気づいていない。懲りない人たちだ。

天才がいるとしたら、それは芸術の世界にのみ存在する

 柳沢大臣の「産む機械」発言がいろいろと騒がれているけど、これこそ言葉の一人歩き。柳沢大臣は騒がれているような意味合いのことを言っていないのに。人間は自分の信じたいように文章を解釈するといういい例。さらには柳沢大臣の発言を調べもせずに、マスコミの論調に阿呆みたいに乗せられている人たちもいる。あるある捏造事件があったばかりなのに。まあ、マスコミはともかく、こんなことで騒いでいる政治家のほうを問題にするべきでは。

 のだめの影響でいろいろとクラシックを聴いているのだけど、最近よく聴くのがレナード・バーンスタインの指揮するもの。この人の指揮は見ているだけで楽しくなるのです。

 バーンスタインはピアノもすごくうまくて、

こんなわくわくするような演奏をしてくれる。ロックに通じるものがあるなあ。

 kaeruspoonにAmazon検索機能を追加しようとしていて気づいたのだけど、Ruby/AmazonってAWS3.0を使っているのです。ECS4.0じゃなかったのか。Ruby/Amazonのアップデートって2006年になっているんだけど、なんでいまだにAWS3.0なんだろう。なんだかイヤな感じなので、ECS用のライブラリを自分で作っちゃおうと思います。

失言をしても許される人間と許されない人間がいる

77
 昨日は日帰り創作合宿に行ってきました。会場となったのは、SO!Oomori Meeting Space。一日借りて1万5000円です(平日は一万円)。LANもありますが有線で、LANケーブルは貸していただけました。ただ、ポートが2つしかないので、大勢のときはハブ必須です。コンセントが壁にしかないので、同じく大勢でPCを使うときは延長タップを持って行ったほうがいいかも。受付のお姉さんもいますが、休日だからなのかすぐにいなくなってしまいました。コーヒーも無料であるのだけど、こちらも途中で水切れになってしまって使えず。一階にあるコーヒーショップから買ってきたりしました。微妙に行き届いていない感もありますが、まあこんなものでしょう。次も利用するかどうかはちょっとわかりません。
 ひさしぶりに丸一日を執筆に使いました。2年ぶりくらいかも。1万2000文字ほど書き上げたところで時間切れです。まだ最初の事件が起きたところなので、しばらく休日はこいつの執筆に使おうかと思います。時間があくと書けなくなるのです。
 参加者は武石さん、土方くん、藤堂さん、なつめさん、ユルさん、丸岡さん、神風くん。みんなそれぞれ成果を出せたみたいでよかったです。今度はやっぱり泊まりで行きたいですね。温泉付き旅館です。
 帰りに居酒屋さんによって帰りました。充実した一日でした。

 かわいすぎる。

カテゴライズは思考停止の始まりである

 ぼくは中学生のころ、思いっきり左側の思想の持ち主だった。天皇制に批判的で日の丸や君が代が大嫌いで太平洋戦争は侵略戦争でありアジアの人々にはいくら頭を下げても足りないと感じフェミニストで我ながら信じられないくらいだけど社会党が政権を取ればいいのにと考えていたくらいだった。当時は、左側の思想が洗練されていて先進的に思えて知識人っぽく、とても魅力的でカッコよく思えた。バカげているなんて思わないでくれ。中学生のころなんて、思いこんだらとことんいってしまうものなのだ。
 でも今はそうじゃない。そうじゃないと言ったって右側というわけでもない。中道というのもなんだか違う。自分がなんなのかなんて決めていないというが一番近いかもしれない。
 自分で決めた枠組みに自分で捕らえられていて、ブラックボックスみたいにある入力に対する出力がいつも決まっている。自分がなんなのかを決めつけてしまっている人は、ぼくにはそう見えてしまうのだ。そこに自由はなさそうじゃないか。
 ぼくが左側の思想から脱却できたのは、ふと客観視したときに、左側の人間がとてつもなく気持ち悪く思えたからだ。同様に右側の人間もとてつもなく気持ちが悪く思えた。思想の内容は無関係なのだ。どんな思想でも、端っこの部分に位置する人ほど、ぼくにとっては気持ち悪くて仕方がないのだ。
 何が気持ち悪いのか。よくよく考えるとそれは、ある特定の宗教を信じ切っている人や、悪徳商法に騙されているのに自分が騙されていることを認めない人に対して感じる気持ち悪さと同じであることに気づいた。思考や思想が固まってしまっていることに気持ち悪さを感じるのだ。その思想や思考を出力するためだけのロボットみたいなのだ。

誰もが評論家になりたがる

 ユルさんが誕生日プレゼントを買ってくれました。カッコいい服なのです。今日にでも着よう!
 そういえばなかなか出ないと思っていた「CASSADY」は廃刊になったみたいです。うーん、残念。ぴったり合うファッション雑誌なんてこれしかなかったのに(たぶん30代前半の人にとってはみんな同じ思いでしょう)。しかし、洗練されたイメージだったデザインが、vol.3では小汚い広告で汚されていたりしていたし、中はけっこうゴタゴタしていたのかもしれません。

2007年になったが、まだ車は空を飛びそうにない

ザ・シールド 1st シーズン コンプリート・ボックス DVD

 ロサンジェルスの悪徳警官が主人公の海外テレビドラマ。vol.1を見ました。うーん、おもしろいなあ。海外ドラマってどうしてこうおもしろいものばかりなんだろうか。
 本当は「SAW2」とか「session9」とか「es」とか「REM」とか、とにかくちょっとアブない感じの映画を借りたかったのだけど(そういうのが好きなのです)、あらすじを眺めながらどれを借りようかと悩んでいるうちにお腹いっぱいになってしまったのでした。

 ちょっとだけ執筆の続き。3000字ほど書きました。

 

毎日眠くて仕方がない

 kaeruspoonのamazon機能で使用するサービスをAWS3.0からECS4.0に移行しました。当然Ruby/Amazonは使えないので、net::httpでXMLを取得してREXMLでパースしています。

require 'net/http'
require "rexml/document"

class AmazonList < ActiveRecord::Base
  include REXML

  ASSOCIATE_TAG = 'アソシエートID'
  AWS_ACCESS_KEY_ID = 'AWSのアクセスID'
  SEARCH_ELEMENT = 'ItemLookupResponse/Items/Item/'

  def self.find_web(asin)
    Net::HTTP.version_1_2

    item = self.find_by_asin(asin)
    if (item == nil) || (item.updated_on.to_time.since(7.days) < Time.now)
      amazon_list = Hash.new
      Net::HTTP::start('webservices.amazon.co.jp') do |http|
        response = http.get("/onca/xml?Service=AWSECommerceService&\
                             AWSAccessKeyId=#{AWS_ACCESS_KEY_ID}&\
                             AssociateTag=#{ASSOCIATE_TAG}&\
                             Operation=ItemLookup&\
                             ItemId=#{asin}&\
                             ResponseGroup=Medium")
        elements = Document.new(response.body).elements

        elements.each("#{SEARCH_ELEMENT}MediumImage/URL")  do |element|
          amazon_list[:image_url_medium] = element.text
        end

        elements.each("#{SEARCH_ELEMENT}SmallImage/URL") do |element|
          amazon_list[:image_url_small] = element.text
        end

        elements.each("#{SEARCH_ELEMENT}ItemAttributes/Title") do |element|
          amazon_list[:product_name] = element.text
        end

        elements.each("#{SEARCH_ELEMENT}DetailPageURL") do |element|
          amazon_list[:url] = element.text
        end

        elements.each("#{SEARCH_ELEMENT}ItemAttributes/Manufacturer") do |element|
          amazon_list[:manufacturer] = element.text
        end

        elements.each("#{SEARCH_ELEMENT}ItemAttributes/Binding") do |element|
          amazon_list[:media] = element.text
        end

        elements.each("#{SEARCH_ELEMENT}ItemAttributes/ReleaseDate") do |element|
          amazon_list[:release_date] = element.text
        end

        elements.each("#{SEARCH_ELEMENT}ItemAttributes/PublicationDate") do |element|
          amazon_list[:release_date] = element.text
        end

        authors = Array.new
        elements.each("#{SEARCH_ELEMENT}ItemAttributes/Author") do |element|
          authors << element.text
        end
        amazon_list[:authors] = authors.join(',') unless authors.empty?

        artists = Array.new
        elements.each("#{SEARCH_ELEMENT}ItemAttributes/Artist") do |element|
          artists << element.text
        end
        amazon_list[:artists] = artists.join(',') unless artists.empty?
      end

      if item
        item.update_attributes(amazon_list)
      else
        amazon_list[:asin] = asin
        item = self.new(amazon_list)
        item.save
      end
    end

    return item
  end
end

とりあえず動くようにしただけですが、ちょっとなんとかしたいです。あまり美しくない感じ。REXMLをもうちょっと調べてみようかな。ちらりとオンライン上のドキュメントを見ただけなので。続きは今度です。検索機能も早くつけてしまおう。

 kaeruspoonに関しては、Ajaxチャットも作ろうと考えていたのでした。忘れてたよ。執筆と開発とを一日ごとにやりながらぼちぼち進めていきましょう。

やりたいことだけやればよい(勉強も遊びも)

 そろそろkaeruspoonのデザインにも飽きが出てきた今日この頃。またかよ。またかよと言っても、kaeruspoonを始めてからは初めてだけど、手打ちでHTMLを叩いていたときはよくサイトのデザインを変更していたのです。あのころはTABLEタグを使ってレイアウトをやってましたね。

 書きかけの小説はすべてがくだらなく思えて破棄してしまいました。もうぼくには書けないのかもしれません。書きたいものがないし、書いていてもあまり喜びが感じられなくなっています。プログラミングはめちゃくちゃ楽しいのに。昔の執筆みたいに。この日記の執筆状況という名前が、歴史的理由で今も残り続けているけど今ではその理由を知る人も数少ないコンピュータ関係のあれこれみたいな感じになる日も近いかもしれません。まいっか。

心理テストのせいで、心が不健康な状態になっしまった人がいると思われる

 最近のぼくの夢にはしばしばある人物が登場します。その人物は友だちではないし、顔見知りだというだけでそれほど親しいわけでもなく、さらにいうと現実には存在しない夢の中だけの登場人物なのですが、夢を見ているときは彼が知り合いだということがリアルに感じられるのです。たいていぼくたちは電車に乗っていて、それも山手線みたいな通勤電車ではなく田舎路線によくあるボックス席のローカル電車なのです。
 さて、そのあまり親しくはない顔見知りの男はもうひとりの人物とともに同じボックス席に座っていて彼らは友だち同士のようです。その顔見知りの男の友人、ぼくとは赤の他人のそいつは絵画を手にしていて、顔見知りの男と一緒にその絵を買うことを勧めてきます。その絵は有名な画家のものですが実はぼくは偽物だということに気づいていて、それは顔見知りの男も気づいているし、顔見知りの男の友人も気づいているのですが、彼らはいっこうに気にする様子もなく絵を売りつけてきます。ぼくはことあるごとにその絵のおかしいところを指摘するのですが、彼らは「まあまあ」と言いながら絵を勧めてきます。
 一番熱心なのは顔見知りの男の友人の赤の他人の野郎で、顔見知りの男は「しょうがないなあ」という顔をしながらも彼をフォローしています。この夢はいったい何を示唆しているのでしょうか。

A.夢などで何かがわかったりするもんか。


 唐突だけど、VMware+ubuntuをインストールしてみた。おお、ubuntuかっこいい。一時期、VineをデスクトップPC用のOSとして使っていたけど、ubuntuと比べるとかなりの違いがありますね。これならメインに使ってもいいかなあ。なにしろ、ぼくのPCのメモリは512なので、XP+VMware+ubuntu+coLinuxなんて構成は重すぎるのです。
 ちなみにインストールも使いかたも、coLinuxと比べるとめちゃ簡単。「VMware Player」をインストールして、あとは「ubuntu」のVMware用のイメージをダウンロードして解凍。VMwareを起動したら、解凍したubuntuの*.vmxファイルを指定するだけ。ブリッジでLANにつなぐ設定はデフォルトなので触る必要がありません。DNSサーバの設定だけGUIでちょこちょことしてやればOKです。
 うーん、しかしubuntuはいいな。ちょっと考えておこう。

さらにプログラムに力を入れていこうと思う今日この頃

 VMware+ubuntuはとりあえず封印です。開発に使うならcoLinux+puttyが軽快なのです。

 kaeruspoonにAmazon検索機能を追加しました。検索機能よりも、その結果をtextareaに書き込むところでちょっとハマってしまいました。javascriptはまだちゃんと勉強してないので探りながら使っている状態です。今度勉強しておこう。とりあえず、おれってすげー感が味わえたのでよかったです。

もっとたくさん本を読みたい今日この頃

80
 Amazon検索機能は上の画面のような感じで実現。検索結果から「詳細」「タイトル」「画像」などのリンクをクリックすれば、それに対応したkaeruspoonのAmazon記法がtextareaに書き込まれます。えっと、つまり、「はてな」の「はまぞう」のパクりです。
 検索機能自体は、Amazon ECS4.0のItemSearchを使えば超簡単。パジネーション機能も持っているからホントに楽チンです。
 ちょっと考えたのが、ポップアップしたウインドウからの操作で元のウインドウのtextareaの文字を変更するところ。Javascriptで以下のように作ってみました。

function amazon_print(asin, mode){
  if (window.opener) {
    var target = window.opener.document.getElementById('diary_text');
    var text = target.value;
    var point = target.selectionStart;
    var before = text.substr(0, point);
    var after = text.substr(point, text.length);
    var ret = '';
    if (mode != 'title') {
      ret = "\n";
    }
    window.opener.document.getElementById('diary_text').value = before + "[amazon :" + asin + ":" + mode + "]" + ret + after;
  }
}

'diary_text'というのがtextareaのID値。これでtextareaのカーソルの位置にkaeruspoonのAmazon記法が追加されます。タイトル文字だけ表示するとき以外は、Amazon記法のあとに改行をいれています。この関数の呼び出しもとは以下のような感じ。

[<a href="", onclick="amazon_print('<%= item.asin %>', 'detail'); return false;" %>詳細</a>]
[<a href="", onclick="amazon_print('<%= item.asin %>', 'title'); return false;" %>タイトル</a>]
[<a href="", onclick="amazon_print('<%= item.asin %>', 'image'); return false;" %>画像</a>]<br/>

最初はどれかをクリックした時点でポップアップウインドウを閉じていたのだけど、同じ商品の詳細表示とタイトル表示を一緒にやったりすることが多いのでそれはやめました。「はまぞう」もそうだしね。
 Amazon検索機能のおかげで、さらにkaeruspoonが便利になりました。今まではわざわざAmazonのサイトまでいって検索してASINを調べてAmazon記法を書いていたんだもんな。すばらしい。

 チャット機能をちょっとだけ作ってみました。まだアルファ版です。ヒマを見つけてはちょこちょことよくしていきましょう。

そろそろカニが食べたくなってきました。伊豆とかで

 Ajaxチャットはだいたい骨組みができあがった感じ。昔ながらのチャットしか知らない人に説明すると、リロードなしにほぼリアルタイムに書き込みが反映されるチャットです。デザインはまだまったく手をつけてないので、これからちょこちょこやっていく予定です。そろそろbetaかな。
 あと、googleのサイト内検索機能もつけました。これはまあ、コピペだけですけど。
 これで機能的には、kaeruspoonで予定していたものはすべて実装したかたちになります。そろそろ何か新しいものを作ろうかなあ。シンプルでぼくが使いたいようなものにしようと思います。

 コーラを飲んでいます。コーラ大好き。

 昨日、ひさしぶりに野上さんと話をしたせいかバイクに乗りたい熱がまた盛り上がってきました。YZF-R6、いいよなあ。でもホントはちょっと、VTR250を超レーシーに仕上げてみたい野望も持っていたりします。モタードとかもいいよね。DR-Z400SMとか。でも、ホントはducati999Rがいいよ。ホントを言うともうあまり公道には興味なかったりもするんだけど。NS50Rとかでもいいです。ホントのホントを言うと、なんでもいいからバイクに乗りたい今日この頃なのです。

「あのとき勉強しておけばよかった」という人は、今でも勉強できることを忘れている

英文法のトリセツ ~とことん攻略編

 ひととおり読み終えたところ。「「英文法のトリセツ—英語負け組を救う丁寧な取扱説明書 じっくり基礎編」」とあわせて読んだことで、なんだか本当にちょっと英語が読めるようになってきました。おや、おかしいな。なんだか英語って楽しいぞ。なんで中学生から今までの間、あんなに英語が嫌いだったのだろう。そのことが不思議に思えるくらい、今は英語が好きになってきました。みんな、この本のおかげです。

 「2007年01月20日」の日記に"I want that he comes to Japan!"なんて書いていたけど、これは間違いでしたね。正しくは、"I hope that he comes to Japan!"もしくは、"I want him to come to Japan!"です。(ほんとかな?)

二十年前とくらべて、それほど違いがわからない

 ぼくはひどい肩こりの持ち主で、肩どころか背中全部がこっています。ひどいときは首筋からがちがちになって吐き気を催す眼精疲労にもなったりします。肩こりにはいいところもあって、それは肩をもんでもらうととても気持ちがいいというところ。肩こり持ちじゃなきゃ、あの気持ちよさはわかりません。どうにかして肩こりを治したいのですが、たぶん本当に直ったら寂しくもなるような気がします。どうでもよいお話。

死語の世界を語る人。知ったかぶり野郎みたいだ。

 ときどき、自分の手とか足が自分からあまりにも遠く離れすぎていて、自分がそれを動かしているのが不思議に思えることがあります。このとき、ぼくが感じている自分はどこにあるのかと考えてみると、それは眼球の位置にあるようです。そんなところに本当のぼくはいないのに。
 本当のぼくはどこにいるのでしょうか。実際のところ、本当のぼくは確かに存在しているのですが、そのぼくがどこにいるのかは不確定のような気がしています。ぼやんとした靄みたいなものが、どこかこの世界のどこにでもない場所にあって、でもこの世界の自分の身体があるところとアクセスすることができる、そんななんだかよくわからないみたいなイメージがある気がします。もちろんそんなものは単なるぼくのイメージ、現実ではありません。でも人間の考えることというのは、現実の法則やら事実になんら影響を受けないし、それでいてリアルでいられるのです。

動物のぬいぐるみよりも本物のほうがだいたいかわいい

 kaeruspoonのデザインが変わっていますが、とっても中途半端。なぜかというとデザイン考え中だからなのです。デザインって難しいなあ。いろいろ考えているのですが、なかなか思いつきません。続きはまた今日やりましょう。

 今日はおこづかい日なので町田にいっていろいろ買わなくっちゃ。本とか本とか本とか。楽しみです。

 とかいって、またちょっとデザインを変えました。ネット上のフリーサンプルを参考にしたので、ちょっとだけいい感じ。続きはまた。

見た目重要

 kaeruspoonのデザインはだいたい固まってきました。ちゃんとデザインのできる方にやってもらうのがやっぱり一番ですね。ぼくの歴代のサイトの中では、ダントツにスタイリッシュです。あとは写真の回り込みとか、細かいところを残すだけ。それはまた後日です。

英文法のトリセツ 中学レベル完結編

まるごとJavaScript &amp; Ajax ! Vol.1
  • まるごとJavaScript &amp; Ajax ! Vol.1
  • 作者/アーティスト: 天野 仁史,舘野 祐一,川崎 有亮,arton,田中 孝太郎,国分 裕,山本 有悟,海野 裕也,nanto_vi
  • 出版社/メーカー: インプレスジャパン
  • メディア: 大型本
  • 発売日: 2007-02-15

 昨日は町田にいって上記の本を買ってきました。英語の本は第三弾のもの。これで中学生レベルをクリアです。といっても、これだけクリアできたらほとんどのことが英語で表現できそうな気がする。ぼくたちは高校生のときの英語で何をやってきたのでしょうか……。謎であります。
 Javascript&Ajaxの本は前から楽しみにしていたもの。予想外に高かったのでちょっと悩みましたけど、やっぱり買ってしまいました。Web+DB Pressがまだ出ていなかったので、それはまた今度。あと、洋書のペイパーバックも買いました。これも楽しみ。

Sonyタイマーなんてウソさ

突然、VAIOがログイン画面で固まってしまいました。なんの前触れもなかったのでちょっとびっくりです。うーん、リカバリしようにもログインできないのだから手の打ちようがありません。VAIOはOSのCDなんてものは附属してなくて、HDDのなかの隠れパーティションにOSのインストーラが存在していたりするのですが、そこへもアクセスできません。いろいろやってみたのだけど。リカバリCDも作ってなかったのでお手上げです。
というわけで、急遽centOSをインストールしました。ホントはubuntuにする予定なのですが、なんだかうまくいかなくて応急処置だったりします。ふんだりけったり。

住めばどこでもいいところ

 VAIOのOSはcentOSからubuntuへ。ubuntu6.10のCDイメージではうまく起動できなかったため、ubuntu6.06を使用しました。無線LANの認識は勝手にしてくれるので超楽チン。昔、Vineで相当苦労したときと比較すると雲泥の差です。フォントもきれいだし、満足満足。仕事関係の書類はOpenOfficeでなんとかなりそうです。
 それから大切なRailsの開発環境をセットアップしました。これもあっという間に完了。とてもスムーズです。それから、Railsのバージョンを、公開しているサーバともに1.2.2にアップしておきました。特に不具合はなさそうです。
 WindowsXPはけっこう気に入っていたので残念ですが、ubuntuも負けないくらい気に入りそうです。

WEB+DB PRESS Vol.37
  • WEB+DB PRESS Vol.37
  • 出版社/メーカー: 技術評論社
  • メディア: 大型本
  • 発売日: 2007-02-23

 「「WEB+DB PRESS Vol.37」」を手に入れました。今回はリファクタリングの特集が一番楽しそう。TDDも含めて、ちゃんとやってみたいな。