おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

google 日本のページレイアウト変更

今日、google 日本のレイアウトが変更になったようです。
Google Japan Blog: Google 日本のホームページが変わりました。
日本では、yahooの方がユーザ数が多い*1のを受けての変更だと思うけど、なぜ日本ではyahooの方が強いんでしょうか。

なぜ日本ではyahooの方が強い?

僕は日本の国民性なのかなーと思っています。

  • 日本人は受動的(多分)なので、検索文字を自分で考えるよりも、画面にあるリンクを辿っていく方が楽と考えるのでは?
  • 日本人は保守的(多分)なので、もともとyahoo使っている人は変更するのがめんどくさいと思うのでは?

まとめ

上に書いたことはあくまで推測で、本当は別に理由があるのかもしれないけど、サービスを開発する側としては

  • 日本で流行るサービス
  • 世界で流行るサービス
  • 日本でも世界でも流行るサービス

はそれぞれ異なるってことを心に留めておきたいと思いました。

*1:でも、今googleもだいぶ追い上げているみたい(右のリンク参考)なので、もうじきgoogleがyahooを抜くかも。comScore Introduces qSearch 2.0 in Japan

Rails勉強会@東京第28回に参加しました。

参加しました。オフラインでの勉強会は初めてです*1

最近あまり時間がないので感想箇条書き。

  • mac使いが多かった(半分以上)
  • 無線がなぜかつながらなかった。
  • small talkは変態。でも面白そう。
    • gaucheとかsmalltalkとか言語はどれも面白そうだけど、色々手を出すのはまず一つ固めてからだな。
  • seasideすごい。
    • 通常版とブラウザ版の2つの開発環境。
    • エラーがおこったら一時停止。ブラウザ上でちょこっとバグを直して、何事もなかったように再開!
  • 事前にかるーく参加者の人たちのPPなどを見たけど、全然顔と名前が一致しなかった。顔さらした方が色々やりやすそう。検討する。
  • rspecは便利そうなので近日中に導入する。
  • parttyも面白そうだった。
  • 幹事な方たちに感謝!

土、日と勉強会に出席して、自分の死角になっているところにたくさん気づけました。
勉強会っていいね。これからもいろんな勉強会に参加するつもりです。

Rails' Wiki - Rails勉強会@東京第28回

*1:オンラインでの初参加はこっち。jQuery Code Readingに参加 - willnetの日記

jQuery Code Readingに参加

javascriptはまだいまいちわかっていないのですが、とりあえず参加してみました。
3/15(sat) - Roppongi.JS#1 jQuery Code Reading(1)のお知らせ - devlog.holy-grail.jp

最初の方はなんとかついていけたつもりなのですが、pushStackメソッドなどの各種メソッドのあたりからしんどくなってきて、
途中からサイ本を読んでました。基本的なことを全然覚えてないので、まあ当たり前の結果なのですが・・・

でも、Code Readingに参加したおかげで、自分一人でやったら理解するのに3日はかかりそうな部分がわかった!

わかったところまとめ

jquery-1.2.3 17〜27行め
var jQuery = window.jQuery = function( selector, context ) {
	// The jQuery object is actually just the init constructor 'enhanced'
	return new jQuery.prototype.init( selector, context );
};

// Map over the $ in case of overwrite
if ( window.$ )
	var _$ = window.$;
	
// Map the jQuery namespace to the '$' one
window.$ = jQuery;
  • $(hoge)とするとnew jQuery.prototype.init(hoge)が返ってくるように設定している。
  • $が既に設定されていたら、それを_$に退避させている。(prototype.jsなどとの共存のため)
jquery-1.2.3 36行目〜
jQuery.fn = jQuery.prototype = {
	init: function( selector, context ) { 
        // 省略
        }
        // 省略
        size: function() {
        // 省略
        }
        // 省略
        get: function( num ) {
        // 省略
        }
        // 省略・・・・
}

こんな感じで、jQuery.prototypeにいろんなメソッドがあるオブジェクトを定義している。
でも、ここまでだと、$はjQuery.prototype.initに定義されているメソッドしか使うことができない。(sizeやgetが使えない)

jquery-1.2.3 512〜513行目
// Give the init function the jQuery prototype for later instantiation
jQuery.prototype.init.prototype = jQuery.prototype;

ここで、jQuery.prototype.init.prototypeにjQuery.prototypeを代入している。これにより、initと同レベル(っていう書き方でいいのかな)のsizeやgetなどが
$.sizeや$.getで使えるようになる!

感想

javascriptって、親が子を継承するみたいなこともできるのね。面白い。これが今日一番勉強になったところでした。
次回のコードリーディングっていつなんだろう?次までには基礎を固めていろいろ発言したいと思います。
あとjQueryも一回きちんと使ってみないと。

JavaScript 第5版

JavaScript 第5版

はてなスターの仕様について

はてなスターのfavoriteページに、自分が星をつけた覚えがないページが載っていて、なんでだろう?と思っていました。
2008-03-13 - willnetの日記
んでちょっとググったら解決。

はてなスターのFavoriteページには、そのユーザーが☆を付けたことがあるユーザーの最近のエントリーが表示されます。

Favoriteページの表示内容を変更しました - はてなスター日記

☆をつけたページやコメントが載った方がいいと思うけどなー

ドコモの直感ゲーム対応状況

昨日のエントリ2008-03-14 - willnetの日記macbookの傾きセンサーについて書きました。
傾きセンサーについてちょっと気になってきて、僕の持っているF903iでも傾きセンサーついてたら試してみたいなと思い調べました。

ドコモ公式ページより引用。

というわけでF903iじゃだめみたいですね。使ってみたかったのに。