“2010/12”な記事

フロントエンドエンジニアリングとNEWTという言葉な記事。link

 米Yahoo!で議論された、フロントエンドエンジニアリングの将来(前編) - Publickey
 米Yahoo!で議論された、フロントエンドエンジニアリングの将来(後編) - Publickey
 NEWT=HTML5+CSS3+SVG+XHR2+Web Sockets+etc... - Publickey

 これからどうするかはわからないし、多分このままこの業界からは離れていかぜるを得ないのだと思うけれども、少し前までWeb系のエンジニアでありたいと切に願っていた人だったりするので取り上げてみますよ。
 Web系、しかもクライアントサイドだと結構あれな扱いをされる事が多かったりしますね。実際コンピューティグな技術的にレベル低いとか言われる事にはうんざりするほど反論できないですけど。まぁ、そんな事をいう人って……な感じですか。

Joe Hewitt Webでは「最先端の機能」を使っていると感じることがない点ですね。ネイティブアプリケーションでは毎年、あるいは半年ごとに大きな進歩があって、最新のハードウェアやガジェットのようなものが登場します。一方でWebの進歩はゆっくりとしたものです。

 確かにこれはありますよね。何か新しい事ができるようになって、「Webでこんな事ができるなんて」の「Webで」の中には「ネイティブなどの他の環境では当たり前のようにできている事だけどもWebでもできるようになったのか」みたいなニュアンスがあったりしますもの。でも、記事中でもその後議論されておりますが、それは一概に悪い事でもなくて我々が利用する上でメリットもありますと。
 私も新しい事が好きですから積極的に新しい試みは行って欲しいと願っておりますけど、いろいろな面で無理をしてまで性急に事を運ぶ必要もないと思います。この辺りは凄く微妙な心情なのですけどそう思います。

Douglas Crockford それを聞いて、数年前のEcmaScript 4の頃の議論を思い出しました。それはJavaScriptの機能を大きく拡大するというもので、他にもスレッド機能も追加したいという人たちがいました。
幸いにも私たちはそれらすべてに反対し、そうした間違いを正すことができて、複雑になりすぎることはありませんでした。だから彼がいったことには同感するし、JavaScriptにはこれ以上複雑なものを追加する必要はないと思っています。

 スレッド機能に関してはBrendan Eichもどこかで言っていました、複雑化し危険性が増すわりにメリットが少ないと。

Tantek Çelik イエス。JavaScriptは勝ったんです、議論の余地がありますか?
Douglas Crockford あらゆる期待に反して、JavaScriptは世界でもっとも重要なプログラミング言語になりました。誰も望んでも期待もしていなかったけれど、そうなったんです。(笑)
Tantek Çelik 僕の仮説なんだけれど、JavaScriptが勝った理由はこの二言だと思う「ソース読め」

 本当、これほど重要視されるようになるとは誰が思っていただろう。ステータスバーにメッセージを表示したり、ダイアログをポップアップしたり、イメタグ(ry などろくな事に使われず、そのうち実装の都合でセキュリティホールの発覚が連発され一時期はオフにしておく事がデフォルトだったのに。
 しかし素性は良かったのですよね。使っているボクらがいけなかった、可能性を見いだせていなかった。これもWeb系の人間のレベルが低かった事の実例とされてしまうかも知れません。

Tantek Çelik いまの問題はどのブラウザでもありうる問題であり、オープンなWebには永遠につきものでしょう。誰か、まったく問題が存在しないプラットフォームがあると言える人は? いませんよね。
Web開発で学んだことは、プログレッシブエンハンスメント、あるいはグレイスフルデグラデーションなコードを書かなければならない、ということ。そしてデバイスやブラウザをマーケットシェアのどこかで足切りしなければならないということです。私はIEは将来に向けたチャレンジをしているのだと思っています。

 互換性の問題は悩ましいです。一頃に比べると随分と状況は良くなってきたし、将来的にも希望を持てるようになってきましたが、それでも万全というわけではなくて、現にこのショボいページでも互換性の問題で断念した部分があったりもします。
 もともと私がWebというものに傾倒していったのには、クロスプラットフォームである事が大きいです。私がコンピュータの学校へ通ったりしてこの業界へ関わりだしたのは1995年で、丁度インターネットが普及し始めた頃でした。LANは結構普及していてクライアント・サーバ型がどうとか大人たちは言っていたと思います。あ、ボクも既にいい歳でしたけど。この頃もWindows、Mac、Unixなどが混在する環境で、それぞれを相互に活かす為の工夫とか仕組みとかがあったのですけど、それが凄く煩わしいものに感じました。そんな中、Webやメールなどが同じ情報をいろんな環境で取り出せる素敵なものに見えてなりませんでした。何でもインターネットで、WebでできるものはWebでやってしまえと言ったりしてました。
 実際そういう流れはきていて、Javaの登場だったり、イントラネットというLAN内でインターネット技術を活用しようという試みだったり、Webアプリケーションサーバが登場だったり、Webアプリという言葉が産まれたりとかしました。その後の普及度は現在の状況を見ればわかる通り。
 しかしまぁ、やっぱりバラ色であったわけではなくて、今度はブラウザ毎の互換性問題に悩まされたりして楽になった部分もあればそうでもなかった部分もありましたね。IE6問題などは今でも悩まされている方も多いと思います。

Ben Galbraith そうです、Canvasも。ほかにもHTML5仕様ではない部分で多くの仕様があります。そして、こうした多くの機能を含む世界を、私たちはなんと呼ぶべきなのでしょう? それをブラウザに実装する人たちは、その中から何を選んで実装するのが正しいのでしょうか?
Tantek Çelik 実装するひとたちは取捨選択する傾向があります。名前の質問について言えば、Bruce Lawson氏が最近、「NEWT」という言葉を提案しています。New and Exciting Web Technologiesということで。(笑)

 ついつい便利なのでHTML5という言葉でまとめてしまいますが、本来なら個別に表した方がいいですよね。現在使われている意味のHTML5は広範囲に及ぶものなので、人によって着目点が違ったりしますので。私が本来のHTMLな意味でHTML5がと言っても、相手が「画像をいじくったりできるんですよね?」とCanvasメインで受け取ってしまう事もありましたから。
 そんなわけで、登場した言葉がNEWT、NEWTらしいです。使うかなぁ……、オレ。

Douglas Crockford そうなんです。歴史的に見ると、私たちは「Webマスター」といったたぐいの人たちを採用してきました。振り返ってみると、彼らはあまりかしこい人たちではなかったですね。(笑)

 ごめんなさい、ボクもそんなかしこくないWebマスターの一人でした。本当に申し訳ない、耳が痛い、痛すぎる。これからどんどんと優秀なフロントエンドエンジニアが登場して欲しいと思うし、育って欲しいと切に願いますよ。

BetterTouchToolの設定加減。link

 Great Tools For Your Mac By Andreas Hegenberg » BetterTouchTool & SecondBar

 Magic Mouseが登場してついにマウスもマルチタッチな時代すよぉと、Appleさんが対応しなかった操作に対応し始めたサードパーティ製のツールが幾つかありますけども、その中で私が使っていたのは件のBetterTouchToolさん(以下BTT)でありました。が、いかんせん本家のAppleが対応しなかった操作です、恐らく実験していたであろう操作を対応しなかったわけですからそれなりに理由があるわけで、それは複雑化だったり誤動作だったりしたのではないかと思います。
 というわけで、私がMagic Mouseを使っていた当時ではあまりに誤動作が多くて使うのをやめてしまったのですが、今はMagic Trackpadをつかっています。デスクトップにもマルチタッチトラップパッドをなあれです。従来よりも操作可能領域を余計に大きめに作りましたなあれです。この大きく高性能なMagic Trackpadであればー、或はあの操作もー、多分ソフトウェア的に精度も上がっているだろうしー、と試してみたら本当にちょっとしっくり来てしまって幾つか試しつつ使用中です。
 ちなみに、Magic Trackpadの感想については前に書いたので割愛しますけど(例のあれ(仮題)・Magic Trackpadを空気を吸うかの如く購入した。)、かなり気に入ってますよ、マウス使ってません。まぁ、たまに欲しくなるケースもありますけど。


 今使っている設定はこんな感じです。一応操作に統一感を持たせたくって、表示の遷移などは三本指、アプリの切り替えなどは四本指操作にしています。この辺はAppleさんの純正操作を踏襲している気持ちです。
 私クラスの手の器用さだとちょいちょい誤作動を誘発してしまって、TipTap系では何度かガッカリ感を感じてしまっておりますけども、若干の危険性は覚悟の上であります。とはいえ、あまりクリティカルな操作は入れない方向で活用中です。
 Magic TrackpadとBetterTouchToolの組み合わせ、おすすめですよ。

 あ、先日発表された時期Mac OS XであるところのLionでは、iOSフィードバックの一つとしてマルチタッチによる操作が今まで以上に盛り込まれるらしいので、こちらも今後の動向に要注目です。

相反する事のバランスを取りたい。link

 努力していると言うつもりはないけど我慢はしている。なのにこういう状況なんじゃ正直やってられない。

 まぁ、何度か愚痴っぽくここでも書いているわけですが、私は元々持病があっていろいろと日常生活に制限があったり影響があったりするのですけど、それに仕事とか人間関係とかの環境面での負荷が加わると対応できないくらいの精神力しかなったりして現在の状況を招いています。
 真面目に働かせて頂いて貢献したいと某所へお世話になったら勝手に疲労困憊して持病も悪化して、どうにかしようと思ったけどどうにもできなくてパニックになって、周りの目に耐えられなくなって自己否定に勤しんで体が動かなくなって、しばらく休職して一時復帰したものの結局クビを切られたっていう。仕事に関してはできない人間なので仕方がないですけど。
 でも、今抱えている問題はその持病だけではない辺りがややこしい。

 私は別に働きたくないわけじゃないし生きたくないわけでもないですよ、働けないから生きていけないと思っているだけで。働かないとお金は貰えないしお金がないと生きていけないのだから、ダメな人間はその時が来たら消えるしかないですよね、自然と死んでしまう。誰も助けてはくれないし、くれなくて当然だし。
 でも、どうやらこの考え方は逆にしなければいけないらしい。「らしい」なのは本人的に釈然としないからですが、某お医者さまによりますと「生きていけると思えば軽くなって体も動くようになるし、働けるようにもなる」と、「まずは縛られている強迫観念みたいなものから脱却する方が先だ」と。

 わからない。いや、わかるけどわからない。

焼き鳥を食べに行ってみた。link

 これまた例によって一ヶ月くらい前のお話なのですけど、某ご友人様と焼き鳥を食べに行ってきましたよ。前々から近々呑みに行こう行こうと言っていましたが、お仕事の方が忙しかったらしくてなかなか行けず、かなり久しぶりとなりました。
 でまぁ、いつもの事なのですけど、とりあえず待ち合わせだけしておいてどこへ行くかは決めない輩です。適当にぶらぶらして思い出したように入りたくなったお店へと入ります。今回は武将門という焼き鳥屋さん。


 写真があれですけど、この日のお酒は島美人という焼酎。やっぱ焼酎っすよ。この時期とか最初っから焼酎のお湯割りっすよ。ずっとお湯割りっすよ。途中こっそりさ湯っすよ、弱いから。
 ちなみに夏場はロックで頂くのも好きですが、お湯割りは乙女割りちっくに頂くのが好きです。熱いの飲むのが好きなのよねぇ。


 突き出しに出てきたのはゴマだれの豚シャブっぽいのでした。


 たたき的な。新鮮で美味しかった。
 この日はもう最初っから撮る前に食べるで食べかけの写真しかありません……。


 もちろん串関係もいろいろ頂きましたよ。注文してあまり経たずに出てきて吃驚したけど、そういうところらしいですよ。


 シュウマイをハムで巻いたヤツ。何だかほっとする味な気がしました。

 この他にももろもろ頂きまして焼酎を明けてしまったのですけど、その辺りから私の隣に座っていたおじさまと意気投合してしまいまして、そしてまたその方が気前が良かったりしてご自分のウイスキーを私らに振る舞ってくれるという嬉しい展開。やいのやいの騒ぎながらケラケラ楽しく呑みましたよ。もちろん周りの他の人らも巻き込んで。カウンターならではだなぁ。
 早いし安いし雰囲気もいいので、是非また行きたいと思いますよ。また、このおじさまと一緒にならないかなぁとかやらしく思ったりもしますけど。


 そんなこんなで、「本当に思案橋横丁、大好きやわ」と珍しく酔い潰されてしまったお連れ様を休ませながら思ったのでした。
 誰ですか、珍しいのはお前が酔い潰れなかった事だとか言っているのは。うんざりするほど反論できませんけど、ボクだってたまには酔い潰れない事だってありますよ。まぁ、だいたいの場合ボクの方が酔い潰れてしまって介抱されてますがー。

 ちなみに、隣の串カツ屋さんのお兄さんに見つかってしまったので、「今度は呑みに行くからー」とお愛想しております。誰か行こうぜ。

健康なら何とかなる的な話。link

 仕事のバランスより精神バランスを正常に保つ努力をしよう : ライフハッカー[日本版]

 ひがんでいるだけですが、こういうのを見ると嫌になる。もう既に健康ではなくて、これから先も治る見込みのない人間はどうすればいいんだって。「健全な肉体に」とか「体さえ健康なら何とか」とか。
 頑張れ、努力が足りない、怠けている、甘えている。どれもうんざりするほど否定できないし、自分が’一番そう思っている。でも、そう思っても体が言う事を聞いてくれない。
 正しい食生活を心がけ、定期的に運動するなんて当たり前の事だよ、もう十年やっているよ。その結果がこの様、詰んだ詰んだ。

 皆さんはこれからも健康でいられますように。そうでない方はそれ以上悪くなりませんように。願ってやみませんよ、ボクは病んでるけど。ダジャレ……。

jQuery hashchange eventが素晴らし過ぎた。link

 Ben Alman » jQuery hashchange event

 毎度毎度この手の記事の書き出しで書いておりますが、このページをブラウザで見るとAjaxで記事のデータを取ってきて云々。この場合、ページの遷移が発生しなかったり、通信量が少なくて済むなど利点も多いのですけど、欠点も少なくはないです。
 中でも大きいのは各検索エンジンさんがインデックスしてくれない事で、これはほとんどのbotさんがJavaScriptに対応してませんし、普通のアクセスで送られてくるデータに記事の内容が含まれていないので仕方がありません。

 この件に関してはGoogleさんが対応を表明しておりまして、若干面倒くさい仕組みを用意しなければなりませんが一応対応は可能です。詳しくは、Getting Started - Making AJAX Applications Crawlable - Google Codeを参照して頂きたいですけども、「Ajaxで使うhrefを#!スタートにしておいてくれたらこっちで勝手に読み替えて再リクエストするからその時ちゃんとデータを投げてくれ」と提案しています。どうして再リクエストが必要かと申しますと、そのままのURLですと仕様上#以下の部分はサーバまで届かないからです。http://reiare.net/blog/#!spamというURLへブラウザからアクセスしたとして、サーバが受け取るリクエストは普通にhttp://reiare.net/blog/までです、後ろに何か付いていてもそれを知る事はできません。
 当ページではこれには暫定的に適当に対応しています。というのも昔の静的なページも活きているので、Google botさんが再リクエストを投げてきたら該当する旧ページへリダイレクトすればいいかと思ったからです。実際にログを追っかけてみましたが、ちゃんとリダイレクト先のデータを取得してくれている感じでした。インデックスしてくれているのかどうかは知らないけど。

 もう一つ大きめなのはブラウザのbackやforwardが使えない事。Ajaxは後付けの技術でありますが、そのそもページを遷移させない為に産まれたものですから相性がいいわけありません。いろいろページ内で移動したりだとか表示内容を変えたりだとかした後にbackボタンを押すと、何も変わらなかったり、もの凄く前の段階に戻されてしまう事が起こりえます、基本的に使えないんです。この辺り、Gmailなどを使っている方とかだとわりとすんなり受け入れられると思うのですけど、不便と言えば不便ですよね。それに戻るためのリンクの管理も大変です。や、ちゃんと管理するべきですが。
 もちろんこんな事は皆さんわかっていて、それらをどう解決するかという試みがなされてきました。最終的にwindow.onhashchangeイベントを実装するという流れになっているようですが、これまでに世に出てしまったブラウザやら対応していないブラウザやらにはどうしようもありません。時間が解決するとはいえ何とももどかしい、待ちきれない。
 という事で、それらすらも解決し、Ajax遷移時にもブラウザのback、forwardボタンを有効にする為に存在するのが件のライブラリです。この手のライブラリは他にもいくつかあって前々から物色していましたが、今回使ったjQuery hashchange eventはかなりお手軽で素晴らしいと思います。「こんなんだったらもっと早くにAjax化しといたらよかった」と思いましたよ、正直なところ。

 jQuery hashchange eventはその名の通りjQuery専用のライブラリでありますから、ボクら大好きみんな大好きjQueryが必須です。jQueryを読み込んだ後にこのライブラリを読み込みましょう。そうすると、windowオブジェクトにhashchangeというイベントが追加されます。このイベントはブラウザのURL欄が変更される事で発動されるイベントです。実は、これ、IE6とか7とかで実装するのは面倒なんです。
 イベントが追加されたので、今度はこのイベントで行われる処理を登録すれば、あら素晴らしい、backやforwardボタンを押す度に(正確にはURL欄が変わる度に)登録した処理が実行されます。


$(function() {
    $(window).hashchange(function() {
        if (location.hash) {
            path = location.hash.split('#!', 2)[1];
        }
        /* 取り出したpathをもとにごにょごにょする処理 */
    });
});

 私がやっている実装例。hashchangeイベントが発生したら、#!以下の部分だけ取り出してそれに応じたAjax処理を適用させてます。取り出し方はもっといい方法があると思います。あったら教えろ。

 この手のライブラリのいいところは、URL欄が変更されるとイベントが発生するので、aタグのhrefに#!hogeと書いておけば特に個別にclickイベントなどを登録しなくてもいいところです。導入する前は、


$.each(box.find('a[href^="#!"]'), function() {
    var href = $(this).attr('href');
    $(this).click(function() {
        /* hrefをもとにごにょごにょする処理 */
    });
});

 とかして取り出してイベントを貼ったり、個別にイベントを登録したりしてました。こういうのが簡単にできるのもjQueryのいいところですが、やらなくて済むならやらない方がいい、いいに決まってる。後は上手い事キャッシュしてくれて云々とかなると最高だなぁ。

 jQuery hashchange event、本当におすすめです。多分これがスタンダードになるんじゃないかと思うよ。

九州プログラマーズカフェとかいうのとかもめ広場のツリー。link

 先月の第四週の土曜日、九州プログラマーズカフェという名で集まってそれぞれ適当にお勉強とか作業とかする会を開くと某人が行っていたので言ってみたよ。漢字逆。


 松藤プラザ「えきまえ」いきいきひろばの会議室を借りての開催。松藤グループさんが立ち上げたNPO法人なのかなー、名前に入っちゃうときな臭いなーとかどうでもいいこと言ってみたりして。
 第0回って事で探りながらのスタートでしょうかね。


 室内はこんな感じでありました。この部屋は日当り良好、良好過ぎて暑かったよ、むしろ。
 それぞれ思い思いの事をやっている風でありました。実のところ私は終了一時間前くらいにフラっと行っただけなのでした。というか、この前日に酔い潰れて醜態さらしてお世話になってしまったのでその謝罪とお礼の為に赴いただけなのでした。


 松藤プラザは長崎駅前の交通会館の三階にありますよ。いい場所ですね、長崎市のどちらからも来れます。そらそうです。
 ですが、このビルの三階に行く方法がわからずに迷いましたよ、ボクは。バスターミナルへ行っても、二階にあるお土産屋さんに行ってもそこから上へは行けないし。まぁ、適当にうろうろしてたら何とか辿り着いたけど。ターミナルの入り口へは入らず、向かって左下あたりにある普通の入り口から入るが吉です。


 こんな時期なので、長崎駅のかもめ広場にはクリスマスツリーが飾ってありましたよ。毎年恒例です。クリスマスはいいですね、一人で過ごしますけど。毎年恒例です。


 駅ビルでは東急ハンズがトラックマーケットを開催しているって事で、こちらにももちろん潜入。雑貨屋さんとか大好きです。福岡へ行ったらロフトに入り浸りたいです。あ、この春からはハンズへも行けますね、オープンするらしいですから、福岡に。


 グダグダ見て回る人がいたので(お前だ)再度外へ出る頃には暗くなっていて、ツリーがイルミネーション的になっていましたよ。


 あまりにツリーが眩しかったのでおっさん二人で記念撮影してみました。視線が刺さって痛……、羨望のまなざしを一身に受けてみました。


 でまぁ、ですよねー的に焼酎呑んで鍋食べて帰った。

 九州プログラマーズカフェは二週目、四週目の土曜日の月二回開催予定で、会場費として500円ほど頂けたらって事らしいですよ。基本的に何をやってもいいらしいし、その場で巻き込むのもありなんじゃないかと思うので、やりたい事があったりやりたいけどやり方がわからないとかな人は参加してみるといいと思います。あ、奇しくも明日開催なんじゃない? とか白々しく。
 学生さんや初めての人はその場にボクがいると会費を回避できます。ボクが居るかどうかは微妙ですけど。あと、人数にもよるけど、無職の貧民だから。

 私はいい加減なダメ人間ですので、積極的に参加するのはしんどいと思いますが、状況を見て参加しようかなと思いますよ。MacBook的なのを持っていないのも参加し難い理由の一つ。この月二回のために購入……とか思ったりもしますが、前述のように無職の貧民だからねぇ。
 ともあれ、盛り上がるよう応援したいです! 何もやらないできないけど。

WebObjectsとかの終わってしまった技術とか製品とかの公式ドキュメント。link

 先日ふとWebObjectsの公式APIリファレンスってどこだっけと調べましたら、なかなか出てこなくてがっかりうんざりしてみましたよ。AppleさんのDevサイトで検索しても出てこないし、どーしーたーらー。

 とかで、いろいろもろもろググったりしてやっと辿り着いた先に待ち受けていたのは、

 Mac OS X Reference Library — Legacy

 Legacy、Legacy、Legacy……。はいはいそうですね、既にあれですものね……。淋しいわ。というか、もっと見つけやすいところにリンクはったりとかしてください。

画像をランダムにちょっとだけ回して表示するjQueryのプラグイン的な。link

 いつだったかもう判然としないくらい前なのですけど(まぁ、そう言っても一ヶ月くらいなものじゃないかと)、記事中の写真とかをちょっと傾けて表示したりとか何とか。RSSリーダー的なものやIEさんでご覧の皆様には全くもって関係ない話なのですけど、そんな感じに表示しています。
 これは、以前どこかのブログか何かで見かけて(失念してしまいました)いいかもと思っていたのを思い出したので、適当にやってみた次第です。まぁ、好みの問題もあろうかと思いますが。

 ランダムに角度を求めて、それをCSS3のtransformのrotateに適用していますので、対応していないブラウザ、まぁ、IEさんなのですけど、では何の変化もありません。実行するだけ無駄です。無駄に働かせてごめんなさい、IEさん。WebKit系のブラウザはバージョンによってエッジがギザギザだったりもします。
 本来ならある程度の主要ブラウザに対応すべきですが、それはこれからの課題と勝手にさせて頂きたく……。

 でまぁ、やりたかったので適当にjQueryのプラグイン形式にしてみました。こんな感じで良いものかいまいちよくわかりませんけど、まぁ、いいんじゃないかなー的で。


;(function($) {
    var extendOpts = function(options) {
        return $.extend({}, jQuery.fn.randomRotateImage.defaults, options);
    };

    var randomRotate = function(dom, opts) {
        var deg = Math.random() * 3 - 1.5;
        var s = 'rotate(' + deg + 'deg)';
        $(dom).css("transform", s).css("-webkit-transform", s).
            css("-moz-transform", s).css(opts);
    };

    $.fn.randomRotate = function(options) {
        var opts = extendOpts(options);
        return this.each(function() {
            randomRotate(this, opts);
        });
    };

    $.fn.randomRotateImage = function(options) {
        var opts = extendOpts(options);
        return this.each(function() {
            $.each($(this).find('img'), function() {
                randomRotate(this, opts);
            });
        });
    };

    $.fn.randomRotateImage.defaults = {
        "padding": "5px",
        "border": "1px solid #cccccc",
        "box-shadow": "2px 2px 10px 0px rgba(0, 0, 0, 0.2)",
        "-webkit-box-shadow": "2px 2px 10px 0px rgba(0, 0, 0, 0.2)",
        "-moz-box-shadow": "2px 2px 10px 0px rgba(0, 0, 0, 0.2)",
        "border-radius": "2px",
        "-moz-border-radius": "2px"
    };
})(jQuery);

 デフォルトで枠やら影やらもCSSを適用していますけど、オプションで渡す事で他にも適用できたり上書きしたりもできます。その場合はベタにハッシュで渡すようにします。
 メソッドは二つ用意していて、一つは直にrotateを適用するもの、もう一つは適用してDOM内からimgを取り出してそれに適用するものです。これだけ傾けたい、何でも傾けたい要求があるかどうかは判然としませんが、ついでなので付けてみました。

 実行例としては、


$('#box').randomRotateImage();
$('#image1').randomRotate({"padding": "15px"});

 こんな感じですか。もちろんどこかにid="box"とid="image1"なヤツがあるんですよ、きっと。

 そして、さらにあれだったのでYUI Compressorで圧縮したファイルも用意してみました。初めて使いましたけど、簡単お手軽ですねぇ、これ。便利便利。

 jquery.randomRotateImage.min.js

面倒くさい。link

 具体的にはノープランだしもちろんそうなるのは嫌だって思っているけどずっと死ぬ事考えて過ごしたりするのを反省する為にここに書いて自分で自分を(ry

 なんなんだろうね、こういうの。暇を持て余したダメ人間の贅沢なとか。