| @WWW

ちょっと前の本だけど、『Webを支える技術』をいま読んでます。

HTTPの話とか、毎日使ってる技術のことを知らなくて、いちいち感動しながら読んでるんですけど、中でも興味深かったのがURIの話。56ページの、「URIはリソースの名前だから名詞であるべき」というくだり。バージョン 2.0以前のRailsでは、

http://example.jp/sample/people/show/123

みたいなURIがデフォだったそう。しかしRails 2.0以降は

http://example.jp/sample/people/123

となって、動詞 show が省かれるようになった。HTTP通信で動詞を表すのはHTTPメソッドだから、URI自体が動詞を含むのはおかしいということらしい。ちなみにこのとき、名詞であるURIにアクセスするためのHTTPメソッドは GET ですね。

確かに自分が作っているサイトでもRailsで動かしてるものは、動詞を含まない名詞だけで表現されたURIを表示する。しかしながらCakePHPは

http://example.jp/sample/people/view/123

みたいなのがデフォだ。クールじゃない。というわけでURIから view を省くようにルーティングの処理を書き換え、各クラスのコントローラーも書き換えといた。

この『Webを支える技術』、プログラミングの話とかは載ってないから読んでいきなり何かの役に立つというタイプの本ではないけど、Web制作者なら職種にかかわらず読んどいた方が良さそうな本だなーと思いました。

| @技術/プログラミング

80個近くある静的HTMLファイルをシステム化する必要が生じたので、HTMLをHpricotでスクレイピングしたあと、抽出したデータをSQLiteにぶっ込んだ。しかしSQLiteにぶっ込んだあとでデータの一部をいじりたくなった。そこでRailsのActiveRecordを単体で使ってみた。

なんでわざわざActiveRecordを使うのか

いやそりゃもちろんSQL書くのが怖いからですよ。というのは半分冗談なんですけど、CakePHPはSQLite 2にしか対応しておらず、SQLite 2は何かと制限が多い。replace関数が使えんとか。temp tableとか作るのかったるいし、フレームワークばっかり使っててSQLはあんまりよく分からないのでActiveRecordを使った次第です。

作業詳細

このシステム化するプロジェクト自体はCakePHPで動いており、DBはSQLite2。デフォの状態だとRailsは sqlite3-ruby しかインストールしないので、ActiveRecordからSQLite2なDBを操作することができず若干まいっちんぐだったんだけどなんとかでけた。ちなみにやったのはCRUDのReadとUpdateね。

やったこと

とりあえず以下のようなファイルを用意。各レコードの name フィールドの "hogehoge" という部分なのが邪魔なので削りたかった。

#!/usr/bin/env ruby

require "rubygems"
require "sqlite"
require "active_record"

ActiveRecord::Base.establish_connection(
  :adapter => "sqlite",
  :database => "path/to/db"
)

class Hoge < ActiveRecord::Base
end

hoges = Hoge.find(:all)
hoges.each do |hog|
  hog.name.gsub!(/hogehoge/, "")
  hoge.save
end

まず最初に、 no such file to load -- sqlite みたいなエラーが出た。要するに「お前SQLite 2のアダプター入れてねえだろ」というエラー。とりあえず sudo gem install sqlite-ruby したんだけど、それでも no such file to load — sqlite が出るのでMacを再起動したら「Rails 3ではSQLite 2はdeprecatedだからさっさとSQLite 3に移行しろや」みたいなメッセージは出るもののちゃんとDBの内容を読み込めた。CRUDのReadはでけた。

しかしUpdateの部分で失敗。Railsの感覚で hoge.save とかやったんだけどこれは意図したとおりに機能しなかった。しょうがないのでRailsのAPIリファレンスを見ながら、 update_attribute() というメソッドをぶちかましてやった。こんな感じ。

hoges.each do |hog|
  if hog.name =~ /hogehoge(.*)/
    hog.update_attribute("name", $1)
  end
end

これで狙ったことができました。

Rubyいいわー。ほんといいわー。

| @映画/ドラマ/テレビ

ルドandクルシ

評価 : ★☆☆☆☆

あらすじ

ルド(ディエゴ・ルナ)とクルシ(ガエル・ガルシア・ベルナル)の兄弟はメキシコの田舎町のバナナ農園で働いているが、一緒に暮らしている母親の再婚相手の男はむかつくし、仕事はつまらないし、人生一発逆転してやりたいと思っていた。二人はアマチュアのサッカー選手で、たまたま街で車が立ち往生したスカウトのバトゥータの目にとまり、プロサッカー選手としてメキシコシティに出ていくことになった。果たして二人は一発逆転できるのか?

感想

アルフォンソ・キュアロンの弟カルロス・キュアロンが監督で、アルフォンソも制作に関与しており、さらにガエル・ガルシア・ベルナル、ディエゴ・ルナの組み合わせという、『天国の口、終りの楽園。』のキャストが再結成して制作された機動戦士ガンダム 逆襲のシャアのような作品。期待して見に行ったんだけど、「そんなのありなの?」ってくらいつまらなかった。メキシコのオールスターが集まって作られてる映画なのに、熊本のDenkikanでは一週間しか上映されなかったのが不思議だったけど、実際に見てみて「これはお客さん入らないわ」と思いました。

ルドとクルシはそれぞれ父親が異なり、母親はさらにその後離婚して別の男と暮らしている。複雑な家庭なのだ。しかしルドもクルシも、直接会ったことはないそれぞれの父親のことを誇りに思っている。ことあるごとに「俺の親父は…」と言う。このあたりがガキっぽい。

そもそもルドもクルシも年齢不相応に夢見がちな少年として登場する。ルドは妻子がいるのに人生一発逆転したい一心で家族に黙ってメキシコシティに出て行くし、クルシはサッカー選手はどうでもよくて、本当はミュージシャンになりたと思っていて、そのための足掛かり作りのためにサッカーをする。この辺の感覚がよくわからない。

そんな軟派なノリじゃサッカー選手として大成しないだろ、と思うんだけど、映画では二人とも大活躍して、クルシはメキシコ代表として招集されたりする。さすがにこれはやり過ぎだろ思った。

クルシは念願かなってレコードデビューを果たし、カウボーイの格好して歌をうたうのだが、このシーンはまるでインドの映画を見ているみたいで異様なテンションに正直引いてしまった。ひょっとするとメキシコ人は特殊な感性を持っている人たちなのかも知れない。

ただ、ルドの嫁さんがネットワークビジネスにはまったり、ルドがギャンブルと麻薬におぼれたり、クルシが悪い女に騙されたり、兄弟の妹がマフィアと結婚したりするところが、メキシコ社会の暗い部分を描いているのかなと感じた。なんでそうなるんだよ、みんなもうちょっとしっかりしろよ、と自分はしっかりしてないくせに思いました。

そういうわけでして、ガエル・ガルシア・ベルナルが出てるからと期待して見に行っても期待を裏切られることになりますのでご注意あれ。

| @労働

三日で仕事を辞めた理由ですけど、

  • むかつく人間の下で人格否定されながら働きたくなかった
  • 裁量労働制の15時間労働に耐えられなかった

が原因ですね。

, , 「いい年したおっさんが何甘いこと言ってんだよ」でしかない。

はてなブックマーク - activecuteのブックマーク

activecuteさん、一年も前の記事に「これはひどい」とか「日本的なるもの」とか「もうすぐこの国は滅ぶ」みたいなわけわかんないブックマークタグつけて、さぞ気持ちが良いでしょうね。でも、あなたは俺のことよく分からないし、俺が辞めた会社のことだって分からない。それなのにこういうブックマークコメントで安直に悪口を書くのはやめて欲しいな。俺がやばい会社に入ってしまったなと思って三日で辞めることは(家族とかには迷惑かけたけど)本質的に自由なはずだし、あなたには何ら害を及ぼしてないのに。すごく不愉快な気持ちになりました。

| @映画/ドラマ/テレビ

ニューヨーク、アイラブユー

評価 : ★★★☆☆

あらすじ

有名な映画監督が各々短編を撮ってそれをつなぎ合わせるオムニバスフィルム。ナタリー・ポートマン出てるし『パリ、ジュテーム』っぽいですが、今作は“つなぎ役の”の出演者がいて、一応一本のストーリーがあります。日本人では岩井俊二監督が参加してました。

感想

印象に残ったのはファティ・アキンとイヴァン・アタルのエピソード。もともとこの二人の監督は好きなんですが、監督してると知らずに鑑賞してエンドロールを名前を見てはっとしました。岩井俊二もそう。参加してるって知らなかった。

岩井俊二のストーリーでは音楽制作を生業とする若者が主人公で、自宅兼スタジオはApple製品に囲まれていて机上にはCinema HD Displayが鎮座し、初代iPhoneでエージェントと電話したり、フロントカメラのない初代iPhoneで自分取りしてエージェントにメールを送ったりするシーンが楽しかったです。あと作品のためにカラマーゾフの兄弟を読めと言われてうんざりするシーンも面白かった。僕も6年前に買ったカラマーゾフ、100ページくらい読んだまま止まってます。

ファティ・アキンのストーリーは『そして、私たちは愛に帰る』みたいな雰囲気があって良かった。中国からの移民の女の子と中年の画家のストーリー。

イヴァン・アタルのは、レストランの外で見ず知らずの男女がたばこを吸いながらナンパしたりされたりするストーリー。ヨーロッパの映画みたいでとてもかっこよかったです。

とはいえ、ぶっちゃけると『パリ、ジュテーム』の方がおもしろかったし、宣伝コピーみたいな胸キュンな映画ではないと思います。DVDで借りて見るんだったら断然『パリ、ジュテーム』の方が良いですね。

| @映画/ドラマ/テレビ

ハートロッカー

評価 : ★★★☆☆

あらすじ

イラクで爆弾処理を担当するアメリカ兵たちの映画。主人公はウィリアム・ジェームズ二等軍曹。前任者が映画冒頭で爆弾処理中に死亡したため、後任としてチームに合流した。

感想

フィクションだしストーリーはあるんだけど、どこかドキュメンタリーぽかった。主人公は常識破りな方法で爆弾を次々処理していく。

リアルに感じたのが以下の描写。

  • 携帯電話の電波で爆弾が爆発してしまうため、街中で爆弾処理してる最中に近くでこれ見よがしに携帯を使う人物がいたらテロリストであるかどうかを確認せずに射殺するしかない。
  • テロリストが善意の市民を脅して爆弾を体に巻き付けて自爆テロをやらせることもある。善意の市民ぶってても非常に怪しい。敵と味方の区別が非常に付けにくい。
  • 普通の戦争映画だと、スナイパーの撃ち合いとかすぐ終わっちゃうけど、砂漠での狙撃戦はとてもリアルだった。四方を砂に囲まれた砂漠でどこから狙われるか分からない。伏せて敵を探し、スナイパー同士が息をつめて狙撃しあう。長時間集中を迫られる消耗戦の様子がとてもリアルだった。

一方で、後半からストーリーがロールプレイングゲームっぽくなる感じが違和感があった。軍の作戦とかとあんまり関係なく、たった三人の爆発物処理班で敵の追跡とかやっちゃう。

『ブラックホークダウン』のような恐ろしさはないけど、戦場の緊迫感が伝わってくる映画だった。

戦争は派手にドンパチやっておしまいなわけじゃなくて、その後の占領期にはテロリストとのゲリラ戦もあるわけで、人間は何のために戦争するのかわけがわかりませんね。

| @Mac/iPhone

Cha-Chingからのデータの書き出し方法について書いときます。

Cha-Chingから他のソフトにCSVでデータを書き出すことが出来ます。ただしテキストエンコーディングがUTF-16と若干特殊なため、取り込み先のソフトで若干の混乱を引き起こすことが予想されます。以下にiComptaへのインポートの手順を記します。

まずCha-ChingでAccountを選択し、File->Export CSV File... でファイルを書き出します。

Cha-Chingが書き出すCSVは情報量が少なく、データはTitleとDateとAmountの三つのカラムしか持たないので、銀行口座やクレジットカードといったアカウントの情報を維持したい場合は、アカウントごとの書き出しが必要になります。そしてそれを各々iComptaにインポートしていく感じですね。

次に書き出したCSVファイルを適当なテキストエディターで開きます。僕はCotEditorを使いました。そんでテキストエンコーディングをUTF-16からUTF-8に変換します。

いよいよiComptaへのインポートです。

まずデフォルトだとテキストエンコーディングがMac OS Romanとかになっていますから、ここをUTF-8に変更します。またCha-ChingからエクスポートされたCSVは日付のフォーマットがyy/MM/ddになので、インポート画面でDate formatも変える必要があります。さらに何行目からデータを読み取るかといった項目もあるので、ここを2行目からにしましょう(1行目はカラム名が書いてあるので)。

次の画面で読み込む各々のカラムがiComptaでどの情報に相当するのかを割り当てます。

そのまんまTitleはTitleに、DateはDateに、AmountはAmountにしてしまえば問題ないです。

以上の手順をアカウントごとに繰り返してやれば綺麗なかたちでCha-ChingからiComptaに移行できます。

なお、Cha-ChingのDBはSQLite3なので、SQL得意な方は sqlite3 ~/Library/Application Support/Cha_Ching_2/Cha_Ching.2ccdb とかしてごにょごにょすると、タグとかカテゴリーとかもっと多くの情報をiComptaに移せるかもしれないし移せないかもしれないです。