面白い現象ー視覚の錯覚

「 人間は自分の五感で世界を認識します。

その中に視覚から情報をもらうことは一番多いかもしれません。

そのために、自分が見たものを強く信じています。」

上の言葉はものすごく古いですので、たぶんみなさんも聞いたことあるかもしれません。

しかし、答を教えてもらっても、納得できない錯視というものがあります。

以下の画像ではA、Bと書いた四角の色は同じですか?

答は同じです。びっくりしませんか。私は結構びっくりしました。

パソコンでその色のRGBコードを実際テストした結果はともに#6B6B6Bです。

the same color

これ以外にもたくさん面白い錯視があります。いくつかサイトを紹介します(GOOGLEで検索した結果)。

1.錯視覚にはどのようなものがあるか :たくさんの例があります。そして、解説も。

2.北岡明佳の錯視のページ:中に動いているように見えるが、実際静止している図がたくさんあります。一番面白い例はこの下のものだと思います。

rotsnake.gif

3. 白黒の写真をカラーのように見える:まず、写真を30を見つめて、マウスをその上に移動する瞬間に、白黒の写真が出てくるが、カラーのように見えます。

エスカレーター、片側開けがルール?

Yahoo!のニュース記事を見ていると、このような記事を見つけました。http://headlines.yahoo.co.jp/hl?a=20071126-00000023-mai-soci

内容は、横浜市営地下鉄が 「エスカレーターでは歩かないでください」といったポスターを掲示し、そのきっかけが

>「エスカレーターに孫と手をつないで並んで立っていたら、後ろから来た男性に『どけ、どけ』と言われ、孫が押された」「右側に乗ってしまった高齢者が左によけることもできず、後ろから来た人にせかされ、歩かされていた」

といった苦情が寄せられたため、というものです。

確かに、エスカレーターを歩いた方が早く移動できます。だからこそ、正しい使い方ではなくても、片側を開けるといった慣習が実際にできているのも事実です。ただし、やはりそれは正しい使い方ではありません。

 個人的には、片側を開けるルールはあってもいい、と考えています(片側だけ開ける、ということ自体が本来の使い方ではありませんが)。というのも、この記事に対する意見として、

「お年寄りが右に立っていれば左を歩けばいい、孫連れのお年寄りが塞いでいたら少し休憩を取ればいい、急用があれば一声かけて通してもらえばいい、自分が歩きたくないと思ったら歩きたい人に片側を空けておこう、小さい子供は自分の前に立たせ、危険がないように見守ろう」

といった、要は思いやりが大切だ、というものがあり、これにとても共感を覚えたためです。この思いやりがあれば、前述したような苦情が起こることもないはずです。

今回はエスカレーターについてですが、何事も、本来の使い方ではないが慣習になってしまっているものはあると思います。私自身もエスカレーターを歩いて利用したことは何度もあります。ただ、自分もその慣習に倣うときに、これが慣習だからと開き直るのではなく、本来の使い方ではないということを自覚して行動をするべきだ、と思います。

参考URL:エスカレーターについての注意
http://www.n-elekyo.or.jp/comf/esc_use_01.html

シンプルな日付選択用ライブラリ「protocalendar.js」を公開しました

prototype.js ベースの日付選択用 javascript ライブラリ「protocalendar.js」を公開しました。

simple metal paper

rails や cakephp でアプリケーションを作っていて、セレクトタグでは日付を選択し辛いと感じていました。

また、オープンソースの Date Picker ライブラリでは機能不足、もしくはオーバースペック過ぎて手頃なものがないと感じていました。

そこで、社内で prototype.js ベースの日付選択用ライブラリを作ってみようということになり作ってみました。

今後もバージョンアップしていきたいと考えているので、ご意見ご要望などありましたらコメントでお願いします。

【特徴】
*prototype.js ベース(1.5 以降)。
*シンプルで軽量。
*MIT LICNESE
*16のローカライゼーションに対応。
*フォーカスでカレンダー表示。(トリガーを追加可能)
*日付フォーマットを変更可能。
*日付のラベル表示が可能。(フォーマットも変更可能)
*年・月を直接変更可能。(年選択時に前後指定年数を表示)
*カレンダーの開始曜日を変更可能。
*日本の祝日対応。(カスタマイズ可能)
*「今日」、「明日」、「明後日」などの任意の文字入力にも対応。(カスタマイズ可能)
*いくつかの標準スタイルを用意。(付属の paper, metal などの画像、 css も MIT LICNESE)
*effects.js と組み合わせてエフェクトに対応。(現在は、Appear のみ。他のエフェクトにも対応予定)
*クロスブラウザ (IE6 以降, Firefox2 以降, Safari2 以降, Opera9 以降)

【使い方はこちら】
http://labs.spookies.co.jp/static/protocalendar-js-1.0/sample/calendar_usage.html

【download はこちら】

http://code.google.com/p/protocalendar/downloads/detail?name=protocalendar-js-1.1.0.zip

【今後の展望】
*Appear 以外のエフェクトに対応。
*スタイルの追加。
*「閉じる」、「クリア」を表示するオプションの追加。

不思議に思う

こんばんわ。草苅快です。

最近不思議に思ったことを書きます。

 例えば同性愛について。

普通の方が同性愛者に対しての感覚は禁忌だとか、いい印象をもたれていません。

30人中29人は同性愛という単語が出た時点で、距離を取る・身構える等拒否する意思を示すそうです。考えたんですが、小さい頃から「男が男を好きになってはならない。女が女を好きになってはならない」と教えられた覚えがありません。拒否する意思を示した人たちに

「なぜ警戒するの?」

 と聞いても、なんとなく・・・のようにはっきりした答えが返ってきません。

もう記憶にないほど小さい時に人間は異性と付き合う!とすりこまれたのか・・・

じわじわテレビや本のような身の回りを見て学習したのか・・・・

何かしら誘導・洗脳があるのか?と思います。

ここからは僕の興味でしかありませんが・・・

例えば、同性愛に目覚めたAさんという人がいるとします。

同姓愛に目覚めるAさん、そのAさんが目覚めたきっかけとは?

Aさんは同性を好きになった時、異性に対して何も感じなくなったのか?

Aさんは、同性の友人のBさんにどんな影響を与えるのか?

同性の友人BさんはAさんをどう見るのか?

興味は尽きません。

日本国民の1%は同性愛者らしく、その多くが回りに自分の性癖を隠して過ごしているそうです。

最後に、僕は同性愛者に興味がありますが、同性愛者では断じてないです。。

大学生なので、服とか音楽、映画に自然と興味を持つはずが、なぜか同性愛・・・

大学に心理学科があるので

“深みにはまらないように”少しだけ掘り下げて研究してみようと思います。では!

Railsの解読(1)

Railsで開発するのはもう一年たちました。 しかし、Railsの仕組みはよく分からないのです。最近LighttpdのFastCgiでRailsを動かすときに、迷いました。

週末家でいらいらして、Railsのソースコードを読んで見ました。

みんな知っているように、RailsはActiveRecord, ActiveSupport, ActionControllerとActionViewによって構成されています。ActiveRecordはO/R Mappingで、ActiveSupportはrubyを拡張するライブラリです。 Railsの中心にあるのはやはりActionControllerです。

一つのRequstを送る際に、Railsはどういう流れで処理するのかに注目しつつ、ソースコードを解読しました。

Mongrelにしても、FastCgiにしても、最初はCgiRequestを作って、Dispatcher.dispatchを呼び出します。 Dispatcher.dispatchは主に下の二行です。

controller = ActionController::Routing::Routes.recognize(request)
controller.process(request, response).out(output)


Routingはroutes.rbにしたがって、urlを解析して、controllerのクラスを返します。 

def self.process(request, response)
  new.process(request, response)
end

def process(request, response, method = :perform_action, *arguments) #:nodoc:
  initialize_template_class(response)  #ActionViewのクラスの取る
  assign_shortcuts(request, response)  #params, session, requestなどのショートカットを設定する
  initialize_current_url
  assign_names  #@action_nameの書き込み
  forget_variables_added_to_assigns

  log_processing
  send(method, *arguments)  #!!perform_actionの実行

  assign_default_content_type_and_charset
  response
ensure
  process_cleanup
end

def perform_action
  if self.class.action_methods.include?(action_name)
    #Actionの呼び出し
    send(action_name)
     #Actionの中でrenderとredirect_toが実行されなかったら、デフォルトのテンプレートを表示する
     render unless performed?
  elsif respond_to? :method_missing
    #Actionがない場合、method_missingを呼び出す
    send(:method_missing, action_name)
     render unless performed?
  elsif template_exists? && template_public?
    render
  else
    raise UnknownAction, "No action responded to #{action_name}", caller
  end
end

これでRailsの流れをちょっと捕まえました。

しかし、そんなに単純ではありません。 様々な処理が見えていません! FilterでもBenchmarkでも、Sessionでも。 いったいどこにあるのか?
答えはここです。(benchmark.rb)

module Benchmarking #:nodoc:
  def self.included(base)
    base.extend(ClassMethods)
    base.class_eval do
      alias_method_chain :perform_action, :benchmark
      alias_method_chain :render, :benchmark
    end
  end
  #省略
end

alias_method_chain :perform_action, :benchmarkをやると、下の二行と同じです。

alias_method :perform_action_without_benchmark, :perform_action
alias_method :perform_action, :perform_action_with_benchmark

これでperform_actionはテンプレートメソッドみたいに、名前変えずにbenchmarkの動作が組み込まれました。むしろ、rubyでのAOPとみなされるでしょう。
さらに、ちょっと考えてみると、perform_actionに対して、alias_method_chainは何回適応しても、うまくいけます。すっごいです!

「ModelやControllerはいつロードされましたのか?」ともう一つの疑問を抱いてきました。
答えはdependencies.rbです。DependenciesはObjectのconst_missingとrequireをオーバーライドしています。それで毎度Controllerなどをリフレクションでインスタンス化する際に(const_missingが呼び出される)、Railsのネーミングルールによって特定のフォルダーから読み込んで、ロードするのです。

これでRailsの仕組みをおおざっぱに理解できるでしょうか。 何か間違ったら、皆さんぜひ指摘してください。

Railsの解読(1)

Railsで開発するのはもう一年たちました。 しかし、Railsの仕組みはよく分からないのです。最近LighttpdのFastCgiでRailsを動かすときに、迷いました。

週末家でいらいらして、Railsのソースコードを読んで見ました。

(続きを読む)

音声ブログのススメ

どうも、上の似顔絵で言うと5番目のアナグラです。

趣味はポッドキャストです。

2006年の春、上京した私は
地元の友達に「元気だよ」と伝えられる最適なツールとして、
音声ブログを始めました。

テキストや写真を使ったブログでも良かったのですが、
どうしても無駄にこだわってしまうせいで
なかなか更新ができないだろうと思い、
それならプロでもなんでもない「おしゃべり」なら
下手でも何でも気軽に続けられるだろうと。

音声ブログの反響は想像よりも大きく、
友達以外の人にも聴いていただけるようになりました。
そして不思議なことに、私の番組を聴いている人は私には会ったことも
ないのにものすごく親しくなったかのように錯覚していることです。

確かに、私も街で森田一義さんに会ったら「タモさんー!」と
声をかけると思いますが。

それにしても初対面で「番組聴いてます!」と言われ、
いきなり打ち解けて話ができるので、私としては
この上ないメリットに感じています。

今春、私は関西に帰って来ることになりスプーキーズの社員となりました。

初出勤の日、私は緊張していましたが
どうやらみんな私の番組を事前に聴いてくれていたみたいです。
まだ社内では自分を出したつもりはありませんが、
多分みんな知ってくれてるだろうと思っています。
あぁ、なんて便利なコミュニケーションツールなんでしょう。

みなさんも音声ブログを始めてみてはいかがでしょう。
あ、それとも「Spookies Official Podcasting」って番組始めましょうか。
ご意見お待ちしております。

—————————————————
★アナグラのデジオの穴 -dediana-
http://www.anagra.jp/dedio/

Spookies Labs を公開しました。

クサカリケイです。

本日、Spookies Labs を公開しました。

http://labs.spookies.co.jp

Labs のブログでは技術的な話題を発信していきたいと思っています。

今のところ Labs は週1(もしくは隔週)の更新を予定しています。

Spookies Labs

Spookies Labs を公開しました。

Spookies Labs では主に技術的な話題を扱う予定です。

Spookies では ruby on rails を始めとする、多くのオープンソースフレームワーク・オープンソースライブラリを活用して、サービスを開発・提供しています。

そのため、社内で開発したライブラリ・ツールをオープンソースとして公開していくことで、少しずつではありますが、オープンソースやソフトウェア業界の発展に貢献していきたいと考えています。

The Battle!!

こんにちわ。
最近、バンドを始めた西村です。

昔、ギターをやってたんですけど
新しい楽器にチャレンジしたくて
ドラムを練習中です。
ものすごく下手ですが
めちゃめちゃ、おもしろいです。
目標は来年夏くらいに、人前で演奏することです。

さて、本日はスプーキーズの取組みの一つを紹介します。

弊社では毎週金曜日に、
ランダムに選ばれた二名が、
アイデアをプレゼン形式で発表し、
投票によって競わせるという
取組みを行っています。

本日も、定時後に行われたのですが、
二名ともおもしろい発表をしてくれました。

何かおもしろいアイデアが出たとき
それは、
技術的に困難かもしれません。
それは、
多くの人が否定的な意見を言うかもしれません。

でも、自分達がおもしろいと思う気持ちを信じて
それを形にする。
起業したときにやりたかった体制が
最近になってようやく整ってきました。

このアイデア発表会から出た案も
自社サービスとしてリリースする予定です。

全力でもがき、
全力で苦しみ、
全力で楽しむ。

スプーキーズってこんな感じです。


Return to page top