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

静的サイトをCMSを導入して動的にする、という仕事を担当することになり、Ruby on RailsかCakePHPを使ってみようかな、と思っています。

現在の状況

僕は仕事を探し始めたときからウェブデザイナーっぽいのになりたいなー、と思っていました。でも実際仕事をしてみると、デザインというのはなかなかむずかしい。ネットが好きな素人においそれとできるものではありません。どうも僕はデザインより、コーディングの方が良いみたい。それもただHTML書くんじゃなくて、JavaScriptでサイトに動きをつけたり、PHPでちょっとしたプログラミングをする方が向いてるような気がする。もちろん20代後半でプログラミング始めたところで先は見えてるんですけど、経済学で言うところの比較優位が僕の場合はプログラミングにあるのではないか、と感じるのです。少なくともいま働いてるところでは僕はデザインやるよりプログラミングやってた方が生産性の向上に寄与できそうな感じ。

しかしながら僕が働いてるところは一日コードばっかり書いていられるようなところではないので、業務でプログラミングできる時間は一日1, 2時間くらいしかありません。それで高速に開発ができるという触れ込みのRuby on RailsとCakePHPに注目しました。

現時点での理解

Ruby on Railsはオブジェクト指向のフレームワークで、とにかく短時間で、初心者でも大規模なサイトをつくることができる、ということは分かりました。Model View Controllerとかもおぼろげながらに理解したつもり。HTMLとCSSでコンテンツと見栄えを分離させるみたいな感じのことをプログラミング言語でやろうとしているのがRailsだ、みたいなイメージをもってます。そしてそのRailsに大きな影響を受けて開発されたPHP版のオブジェクト指向フレームワークがCakePHPであるということも分かりました。

当初はRailsを身につけようと思っていたものの、PHPがある程度分かるためにCakePHPの方が素早く学べるかなー、という気もするし、CakePHPはルート権限のないサーバーでもファイルをFTPでアップロードするだけで使える、というのがなんだか良さそうです。

その一方で、PHPはすごくネットでたたかれるし、多くの人がたたくのはそれなりに理由があるはずで、PHPだけやってるとPHPのネガティブな側面がわかりにくい。だからできれば一度ほかの言語を本腰を入れて勉強してPHPを客観視してみたいとも思うのです。

これから先どういう風に飯食っていくか

コーダーとして生きていくのか、プログラマーになるのか、あるいはディレクターを目指すのかで、何をすべきか決まっていく気がします。HTMLコーディングの片手間でちょこちょこサーバーサイドのプログラミングをするんだったらPHPだけで十分な気がするし、本気でプログラマーを目指すんだったらRubyとかPerlにも手を伸ばした方がよさそう。ディレクターを目指すんだったらプログラミングはほどほどに、ディレクションを勉強すべきでしょうね。

病気とかいろいろあったとはいえ、20代半ばの人間としての方向性が固まる時期を無為に過ごしていたことが悔やまれます。RailsかCakeか、悩ましいなー。

| @雑談

DEE SPORT

僕は車のメンテとかなんもできないくせに20年前のドイツ車に乗ってるので、オイル交換から車検まで、整備のすべてを熊本県合志市にあるDEE SPORTという欧州車専門の整備工場にお願いしてました。しかし、残念ながら今日で閉店されるそう。今後はくぬぎの森という薪屋さんになるそうです。最後にオイル交換に行こうかなーと昨日電話したのですけど、予約でいっぱいだそうでかないませんでした。

僕は長い間無職でしたし、大した整備はお願いしてなかったんですが、もうちょい売り上げに貢献できてたら良かったなーと思いました。ほんと残念です。

| @Mac/iPhone

1090_workspace.png

いまこんな感じの環境で働いてます。MacBook Proは仕事で使おうと思って買ったんだけど、結局貧乏性なのでMacBook (LATE 2006) を職場に持ち込んで使ってます。モニターはEIZOのColorEdge CG19、これにHHK Lite 2とLogicool MX-Rという組み合わせです。これがなかなか快適。

MacBookは結構液晶がダメダメになっていて、昼間とかほとんど真っ暗にしか見えないんですけど、Mini DVIでCG19に出力してるのでまじ快適です。実はCG19のこと、最初は縦横比が1:1に近くて、Windowsパソコンに付属でついてくるくそださいダメダメモニターだと思ってたんですけど、調べてみたらEIZOの製品で新品価格が20万円近くする上物でした。1280×1024の解像度はMac OS XのDockを常時表示させるのに好都合で、いまでは結構気に入ってます。縦長ディスプレイはTumblrのDashboardを眺めるのにも向いてます。さらにこのモニター、二つ入力を受け付けるのでMacBookのほかに事務作業専用のWindows機もつないであります。モニターの切り替えボタンを押すだけでMacとWindowsを切り替えられてなかなか便利です。

HHKはLiteだけどみんなが良い良いと言うだけあってやっぱ良いですね。あの打鍵感のおかげでつまらん入力作業も楽しくなります。マウスはLogicool MX-R。HHK LiteがUSB Hubの役割も果たすので無線レシーバーはHHK Liteにつけてあります。

Mini DVIケーブルとHHK Lite 2の合計7000円くらいの出費で、くたびれたMacBookが復活したような感じがしてうれしいです。やっぱ黒MacBookは名機だわ。

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

一個前のやつ、セルフ添削してみました。

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();"> でロードします。

さてどうでしょう?

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

Google Readerみたく、iPhoneでアクセスしたときにJavaScriptで画像を縮小表示させるようにしてみた。当然ながら自サーバーにあるものだけでなく、Flickrとかの画像も縮小表示する。そしてこれまた当然ながら画像をリサイズするわけじゃなくてあくまで小さく表示させるだけなので、ページの読み込み速度とかは短くなったりしない。

    // fit image for iPhone
    function iPhone() {
        var userAgent, imgHeight, imgWidth, imgRatio;
        var newWidth = 440;
        userAgent = navigator.userAgent;
        if (userAgent.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) {
                    if (imgWidth > imgHeight) {
                        document.images[i].width = newWidth;
                        document.images[i].height = newWidth * imgRatio;
                    } else {
                        document.images[i].width = newWidth;
                        document.images[i].height = newWidth * imgRatio;
                    }
                }
            }
        }
    }

関数名がアホっぽいのはご愛敬。

職場のサーバーは自分でセッティングしないと何もモジュール入ってないのでクライアントサイドで遊べるJavaScriptを気合い入れて勉強しようかな。

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

プロフィールのページにWakoopaのフィードから拾ってきた「最近使ったアプリケーション」を表示してるんですけど、これをjQueryを使ってMac OS XのDock風の動きをするものにしてみました。

Dock風の表示

Wakoopaの提供するアイコンの解像度が低いのでマウスオーバーするとシャギーなアイコンが表示されてしまいます。またCSSは細かくいじってないのであんまし見栄えは良くないですが、一応OS XのDock風の動きをしてくれます。参考にしたのは、というかまるまるソースコードを拝借したのは以下のサイト。

これとは別なんですけど、もう一個ぶったまげたのがこれ。

HTML 5とjQueryだけで、動的に生成されるテーブルとグラフを作ってます。テーブル内の数値が編集可能で、値を編集するとちゃんとグラフも再生成されちゃう。スゲー。

こんなにインタラクティブなものがJavaScript + CSSで実現できるわけですから、「HTML 5がフツーに使われるようになったらFlash死ぬんじゃね?」なんて思ってしまいます。少なくともナビゲーションメニューをロールオーバーさせるためだけにFlashを使ったりするのは下火になりそう。Flashはもっと本格的な、「魅せるサイト」を作るために使われるようになる気がする。Flasherな方々は今後より一層の研鑽が求められるでしょうね。

| @散財

一年くらい前にLogicoolのMX-Rというマウスを買った、とブログに書きました(そろそろワイヤレスマウスについて一言いっとくか)。そのときはデザインが気持ち悪いとかレシーバーが邪魔であるとか散々な書き方をしていたのですが、いまではすっかり慣れてしまって手放せなくなっています。やっぱ多ボタンマウスは便利だわ。バッテリー内蔵式なので乾電池用意せんでもいいし。そういうわけでこいつは職場で使うことにしました。

さて、では自宅で使うマウスをどうするかということなんですが、MX-Rは一万円ちかくして高いし、やっぱUSBポートを占拠するレシーバーの出っ張りが気になるし、Bluetoothマウスで良いのはないかなー、とAmazonを徘徊していてこういうのを見つけました。

TARGUS AMB08AP

Mac専用らしいです。特徴を箇条書きにすると以下の通り。

  • BluetoothなのでMac本体にレシーバーを取り付ける必要なし
  • スクロール部は光学式なのでWireless Mighty Mouseの最大の弱点であるスクロールボールのゴミつまりと無縁
  • 5ボタン式
  • 専用のドライバーを入れるとサイド下部のボタン二個に好きな動作を割り当てられる
  • 乾電池式なので充電は面倒くさい

色はグレーっぽい感じなのでアルミiMacやUnibody MacBookにはマッチするデザインだと思います。しかし光学式のスクロール部が微妙。ズバズバっと大量にスクロールしたり、逆に高速スクロールしたいときにゆっくりしか動かなかったり、なかなか意図したとおりには動かせないです。

とはいえ、Bluetoothマウスは非常に選択肢が少なく、あとはマイクロソフト製の物くらいしかないので、アンチMSな人はこれを購入候補に加えても良いかも。値段も手頃です。