結局CakePHPを勉強してる
結局CakePHPを触ってます。Railsはサーバー側の準備するのが無理っぽかったのであきらめました。CakePHPはPHP 4だろうがPHP 5だろうが、普通にサーバーにPHPがインストールされていれば、とりあえずファイルを落としてきて自分の開発機でBake(あるいは開発)し、ちょこちょこ設定をしてサーバーにアップロードするだけで(DBの準備とかは別に必要だけど)CMSが出来上がるのですごく良いと思いました。MySQLでもSQLiteでもPostgreSQLでも、DBに何を使おうとも記述内容は変わらないところとかすごく良いと思います。
オブジェクト指向の醍醐味みたいのはアホなので僕にはあまり分かりません。CakePHPを始める前に『たのしいRuby』を途中まで読んでたんですけど、僕はそれまでPHPとC言語をほんの少しだけ触っていて、そのとき感じた「なんかこれまで触ってきた言語と全然発想が違うなー」という驚きのようなものは感じられなかったです。ただCakePHPのMVCの考え方はRailsそのまんまみたいなのでRailsを勉強する足がかりにはなるかなと思いました。
最初はCakePHPの公式ガイドみたいのをチラ読みしてたんですけど、こういうのは本で持ってた方が使いやすいので『CakePHP1.2ガイドブック』を買いました。まだChapter 7までしか読んでないんだけど、誤植や記述の間違いが多くて困る。わりと最初の、「とりあえずBakeしてみよう」みたいなところで間違いがあるので、根気強くない人は本に書いてあるとおりにBakeできないことに絶望してCakePHP使わなくなるんじゃないかな。僕は公式フォーラムを読んだので間違いに気づきましたけど。“CakePHP1.2でモデルのアソシエーションの設定がビューに反映されない” フォーラム - CakePHP Users in Japan
CakePHP1.2ガイドブック、悪い本じゃないと思うんだけど、1.3対応版とかでは単純な誤植とか記述場所の間違いとかで読者を混乱させないようにして欲しいです。
MacBook (Late 2006) のHDDが死んだのでWindows 7に浮気
朝、職場でMacを起動してメールチェックをしようとしたら椅子のきしむような音が聞こえてきて、「誰だよHDDからこんなやばい音させてんの」と思ったら自分でした。
自宅のMacはTime Machineで外付けHDDにバックアップとってるのですが、職場のは何もやってなかった。しかしながら仕事上のデータはだいたいネットワークドライブに保存してあるし、個人的なメールなどはGmailなど全部IMAPだし、iCalは自宅Mac - Google Calendarと3方で同期してたので実害はほとんどナッシング。クラウド万歳。
そういうわけで1年4ヶ月ぶりにMacBookのHDDを交換。前使ってたのは日立製の320GBのやつでした。これがぶっ壊れたんだから別のを使えば良さそうなものを、また同じのを注文。容量も同じ。前回12,000円くらいしたのが4,000円台で買えました。プラス、Windows環境がやっぱりどうしても必要で、Windows 7のDSP版を購入。64bit版と32bit版、どっちにしたらいいのか迷ったけど、結局32bit版にしました。MacBookはLate 2006のIntel Core2 Duo 2.0GHzのいまとなっては低スペックなやつなので。というかぶっちゃけ64bit OSと32bit OSの違いがよく分かってなかったり。
日立のHTS545032B9A300 (320GB 9.5mm)
精密ドライバーで作業します。
HDDをステーというかケースみたいのから外すのにT8のトルクスドライバーが必要です。ホームセンターで300円くらいで買えるはず。
持ってるSnow Leopardのディスクがファミリーパックなので例の不具合にあたったのか(Snow Leopard、ファミリーパックでインストール不可の不具合か? - はてひつ!)、クリーンインストールが「残り時間: 約28分」から遅々として進まず焦りましたが、強制終了して2回目のインスコで無事入りました。
その後、VMWare Fusionを本家サイトから購入(円高のため)して、Windows 7をインスコ。DockにIEのアイコンが並ぶ姿に興奮してしまいました。アプリケーションは再インストールがめんどくさかったのでTime Machineのバックアップから移してしまったけど、開発環境はMacPortsで入れ直そうと思ってます。
MacPortsでMySQLをインストールしようとして苦戦
Ruby on RailsかCakePHPかどちらかをぼちぼち触ることにしたので、MacPortsで一通り環境を整えてました。いつまでもMAMPの世話になるのはやめようと思い、一個一個必要なものをインストールしていきました。Rails自体は簡単に入ったんだけど、MySQLのインストールがうまくいかない。
なんかを参考にインストールを試みたんですけど、ごちゃごちゃエラーが出ます。まず最初は
---> Computing dependencies for wiresharkError: Unable to execute port: can't read "build.cmd": Failed to locate 'make' in path: '/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin' or at its MacPorts configuration time location, did you move it?
というエラーが出てました。とりあえずこれは #21062 (Snow Leopard, fresh install, can’t install any ports) MacPorts を参考にしてSnow Leopardのインストールディスクに含まれてる “UNIX dev tools” をインストール。しかしまだ解決しない。MySQLだけじゃなくて
$ sudo port update outdated
とかも失敗する。rsyncがうまくいってないのかなと、ルーターの873のポートを開放したりして半日つぶしたんですけど改善せず。
万策尽きたので一回上書きインストールしたMacPorts 1.8.1を消して入れ直してみました。
$ sudo port deactivate active
してから
$ sudo rm -rf /opt/
その後パッケージ版のMacPorts 1.8.1をダウンロードしてインストールしてみたところ、すべてうまくいきました。
MacPortsはLeopardのときに初めてインストールして、Snow LeopardにしてからはSnow Leopard対応版のMacPorts 1.8.1を上書きインストールしてました。これがどうも良くなかったみたい。
OSのアップグレードとかはやっぱクリーンインストールした方が良いのかな。きちゃないファイルの断片とかをごちゃごちゃため込んでそうです。
画像リサイズJavaScriptをセルフ添削
一個前のやつ、セルフ添削してみました。
if (imgWidth > imgHeight)
のところで True
でも False
でも同じ処理になってて無意味だったし、i
を初期化してなかったし全然ダメダメですね。userAgent
っていう変数名も navigator のプロパティと同じだしダメ。以下のようにしてみました。
// fit image for iPhone
function imgReduction() {
var i, uA, imgHeight, imgWidth, imgRatio;
var newWidth = 440;
uA = navigator.userAgent;
if (uA.match(/iPhone/)) {
for (i = 0; i < document.images.length; i++) {
imgHeight = document.images[i].height;
imgWidth = document.images[i].width;
imgRatio = imgHeight / imgWidth;
if (imgWidth > newWidth) {
document.images[i].width = newWidth;
document.images[i].height = newWidth * imgRatio;
}
}
}
}
これを <body onload="imgReduction();">
でロードします。
さてどうでしょう?
京都について
京都で不思議なところは、洛中の住宅街を歩いていると突如として商店が現れ、普通に営業しているところ。田舎の感覚では住宅街と商店街は見えない線でゆるやかに隔てられるものなんだけど、京都は住宅街のなかにいきなり焼肉屋があったりするからびっくりする。
そこで「京都の人は消費するのが好きなのかなー」って仮説をたててみた。じゃなかったら駐車スペースもない住宅街で店やっても商売が成り立つわけがない。しかしながら京都府の統計と熊本県の統計を比べてみると仮説は外れていて、民間最終消費支出は熊本県の方が多く、京都府民の貯蓄率の方が高かった。
とはいえ京都の街を歩いていると、有名なお菓子屋さんには京都ナンバーの車(ほとんどドイツ車)が止まってるし、有閑マダムっぽい人が昼間からお菓子を買いにきてて、京都の商店は観光客だけをターゲットにしてるってわけでもなさそうに見える。お菓子やコーヒー、お茶といった嗜好品のお店はどこも賑わっているし、僕がコーヒー豆を買い付けている出町輸入食品なんかも地元のおじちゃんおばちゃんでいつも混雑してる。京都府民の消費マインドは旺盛なように感じるんだよな。
京都の人はただ観光客からお金を落としてもらうだけじゃなくて、自分たちもお金を使い、良い物を食べたり手に入れたりしようとしてるようなイメージがある。そしてそれが京都の文化や物、食事のクオリティーを底上げしてるように感じる。よそからお客さんを受け入れる土地の人間は物の善し悪しを知っている必要があって、自分たちも大いに遊ばなきゃいけないことを本能的に自覚している印象。
知り合いの東京の人に「京都は田舎」と言う人がいたけど、都市生活者の心構えみたいなものはいまも京都に息づいているんじゃないかな。京都の人が東京人に対して「田舎からようきはった」と言うメンタリティーも分からなくはないな、と思った。エレベーターでは降りる人を優先して欲しいし、バス停ではきちんと並んで欲しいけど。
世界は村上春樹をどう読むか
世界は村上春樹をどう読むか
評価 : ★★★★☆
村上春樹の小説の翻訳者達が東京に集まって開かれたシンポジウムを書籍化したもの。面白かったです。
例によって印象に残ったところを過剰書き的に書き出しながら書いていきます。
翻訳先の国の発展度に応じて訳が変化する
中国語圏では台湾や大陸、香港とそれぞれ別人によって訳されたバージョンが存在するらしい。それで訳され方が異なるのだとか。例えばノルウェイの森で主人公が夜中の新宿の喫茶店でトーマス・マンの『魔の山』を読んでいると二人組の女の子がやってきて相席になるシーン。ここで主人公はカフェオレとケーキを注文するのだけど、台湾版ではカフェオレが何であるかの注釈付で訳され、大陸版では「コーヒーとハンバーガー」と訳されてしまっているらしい。これから分かることは、少なくともノルウェイの森が翻訳された時点で台湾ではカフェオレはまだ一般庶民になじみが深いものではなく、中国大陸では終夜営業の喫茶店に入ってカフェオレとケーキを頼むというニュアンスが読者に伝わらないため、カフェオレはコーヒーに、ケーキはハンバーガーに置き換えられたのだろう、ということ。文化的社会的な背景から直訳が難しい箇所があるというわけ。例えば村上作品にはジャズのレコード名が沢山出てくるが、中国語にはカタカナがないため、またロシアではジャズの知名度自体が高くないので翻訳者は訳すときに難儀するらしい。この辺の事情話は非常に興味深かった。旧共産主義国ではジャズに限らず、冷戦時代の映画やロック、ポップミュージックなどのバンド名を書き連ねてもニュアンスが伝わらないだろう。だからといって作中の固有名詞を好き勝手なものに変えてしまってはまずい。例えば僕が村上春樹の短編の中で好きな「ファミリー・アフェア」(『パン屋再襲撃』に収録されてる)にはホセ・フェリシアーノフリオ・イグレシアスが頻繁にネタキャラとして登場する。ダメな音楽、ダサい音楽の象徴として登場するのだ。ホセ・フェリシアーノフリオ・イグレシアスは『夜のくもざる』という短編集の「フリオ・イグレシアス」の中にも登場する。これがめっぽう面白いのだけど、もしこれが適当に他のアーティストに置き換えられると印象が変わってしまうだろう。僕は個人的にはホセ・フェリシアーノを現代のアーティストで置き換えるとしたらリッキー・マーティンなんかが良いんじゃないかと思うんだけど、村上春樹はこの辺にはかなりこだわりを持ってチョイスしていると思うから、うかつに記号をすげ替えるわけにはいかないだろう。翻訳者の苦労が想像できる。