« 2007年5月 | トップページ | 2007年7月 »

2007年6月の15件の記事

2007年6月27日 (水)

RubyでCGI(メール編)

RubyでのCGI作成が少し滞っていた。

先日lolipop上でSQLiteを使えないかと
あれこれ画策したのだが、結局敗北。
まあ、そんなこともあり、ちょっと滞ってしまってたわけだ。

 #具体的には、こちらの方とまったく同じ状態になってしまい
 #この方が諦めていたので私も諦めた次第です。 うむぅ
 #http://d.hatena.ne.jp/shunsuk/20070519/1179554814
 


しかし本日、たったいま進捗があったので、それをメモしようと思う。

やりたかったことは、まあ、ただのフォームメールだったんだけど、
Rubyで出すのは初体験だったので、うまくいってちょっと嬉しい。

ホスティングは相変わらずlolipopさんなんだけど、
ローカル環境でテストをする関係上、 、/usr/lib/sendmailとか
そういうことしたくなかったわけです。
だって、Windows上に/usr/lib/sendmailとかないじゃん。

というわけで、lolipopさんはPopBeforeSMTPだそうなので、
以下のようなものを書いてみました。

そしたら、動きマスター!^^
ウレシー!!


#!/usr/local/bin/ruby -Ku

require 'cgi'
require 'net/smtp'
require 'net/pop'

cgi = CGI.new
print cgi.header({"charset" => "utf-8"})

#----------------------
# Pop Before SMTP
#----------------------
Net::POP3.start( 'pop.server', 110, 'pop.user', 'pop.password' ) { |pop|
# Do nothing
}

#----------------------
# MAIL CONTENT
#----------------------
mail_string=<<EOF
Subject: test
To: hoge@hogehoge.net

hoge
hoge
hoge
EOF


#----------------------
# SMTP
#----------------------
Net::SMTP.start( 'smtp.server' ) {|smtp|
smtp.send_mail mail_string, 'from@address.com', 'to@address.net'
}

#----------------------
# CGI Output
#----------------------
print 'mail sent'

Popの部分のブロックのあたり、無駄な記述をしているように思うけど、
まあ、まだ相変わらずRubyよくわかってないので、
その辺はカンベン^^ 

とにかく、
「ロリポップRuby CGIでPop Before SMTPってできるのね。」
知らんかったー! ってことです。

これなら、Windowsローカルマシンでのテストでもメール飛ぶし、
そのままFTPであげられるので/usr/lib/sendmailたたくより
なんかいい感じ! ちょっと嬉しいです。

2007年6月24日 (日)

B★Marlin

横浜市泉区領家3-12-9にあるレストラン
B★MARLINにいきました。

 ・生ハム・ベーコンピザ  1380円
 ・ハンバーグセット     1450円

数日前に車でふらふらとこのあたりに迷い込んだとき、
かっちょいいレストラン発見!ということでチェックしていたので、
食べに行ってみました。

内装もなかなかの雰囲気。

 #でも、ワイルドっぽい雰囲気目指してそうなわりには
 #ちょっと綺麗すぎるかな?
 #数年経つと味が出てくるかもだけど

お味は、そんなに印象に残るものでもなかったけど、
まあ悪くないかな。

このあたりにしては、かっこよくておしゃれな店なので、
応援したいです。

2007年6月23日 (土)

無線LAN設定変更

東戸塚のいえの無線LANの設定を変更した。

いや、複数のいえを持っているリッチマンというわけではなく、
実家じゃなくて、自分のいえの設定を変更したよという
だけのことだ。

一年半ほどまえ、以下のとおり設定をしたのだが、
http://akio.way-nifty.com/ja/2006/03/post_bde4.html
このたびニンテンドーDSのWiFiコネクションなんてものを
やってみようということで色々やっていたら、問題発覚!

 ・WEP以外の暗号化方式には対応してませんー

ぐげぇぇ~ めんどくせぇぇl

しゃーないので、設定変更しました。

設定変更すると経験上、設定変更したことを忘れるという事態が、
確実に発生するので、ここにメモを残す必要があるのです。

-------------------------------------------
 暗号化方式: WEP
 WEPキー:  16進数で、

            XYZZAFVWYW

        V,W : 妹 の誕生日は V月?W日
        X, Y: 父の誕生日は  X月Y日
        Z : 私の誕生日は ?月?Z日
-------------------------------------------

まあ、こんな感じ。

2007年6月20日 (水)

JavaScriptって奥深い・・

JavaScript で色々やっているうちに(自分の)限界がみえてきた。

 

あかん!難しい。

原因が分かってきたが、要するにJavaScriptという言語を

ちゃんとわかっていないことが原因と思われる。

  ・プロトタイプチェーン

  ・スコープチェーン

  ・静的スコープ

  ・実行コンテキスト

  ・クロージャ

  ・高階関数

  ・カリー化

このへんの用語の意味と引きずる概念をちゃんと理解しないと、

よいJavaScriptはかけないような気がする。

 

この辺の言葉は、LispだとかHaskellだとかやってる

大学の情報科のひととか研究者が未来に向けて色々やってる言葉であって

一介のWebプログラマの現場には当面は不要かとおもっていたが、

JavaScriptちゃんとやるにはすでに必須なような気がしてきた。

 

ちゃんと勉強するかのぅ・・

 

2007年6月19日 (火)

SAOって概念どうかな

最近Ajaxプログラミングをはじめているが、

いくつか書いているうちに、だんだん個人的な枠組みができてきた。

 

まず、XMLは使わず、JSONを使うということではじめたが、

もういまさらJSON以外のデータフォーマットを使うということは考えづらい。

(学ぶのが面倒ともいう)

 

それと、いまはprototype.jsのAjax系ライブラリを使っているが、

JSONPという選択肢も近いうち出てくると思われる。

 

JSONP / XMLHttpRequest の選択肢を切り替えるだけで使い分けられる

APIが欲しいなぁなんていう気がしてきている。

 

それと、GWTとかどうなっているのか未調査だけど、

サーバサイドのオブジェクトとJSのオブジェクトを、

なんというか、透過的に使うっていう考え方、

どういう風に組んだとしても結局そう落ち着くっていみで、

普遍的な価値のある方法論だと思える。

 

さて、そうなってくると、JSでDAO(DataAccessObject)みたいな

ものを作って、アプリプログラマはJSしか書かない。

みたいなアプリ開発スタイルがひとつの帰着点になるような気がする。

ここでいうJSのDAOってのは、AJAXでサーバにデータをとりにいったり、

まあとにかくCRUD操作ができて、sync/asyncの2つのモードをもってる。

そんなイメージ。(無論サーバサイドには、このJSベースDAOに

対応したCGIなりサーブレットなりが実装される必要はあるけど、

これは、DBの外部スキーマが決まれば自動的に決まるもの)

 

んで、さっそく、そんなもの(DAO)をつくろうかなと思ったんだけど、

今作っているショッピングカートAJAXのインターフェースには

いきなし合致しない。。

 

データを自由にいじれるんじゃなくて、カートに商品を追加したり、

削除したり、全クリアしたり、そいういうオペレーションをCGIで

インターフェース作ったので、それに対応するJSのインターフェース

をつくりたい。カートはDBに紐づくのではなくて、セッションに

紐づいてほしい。

 

そういう風に考えるとJSレイヤでサーバと通信する

オブジェクトは、DAOじゃない気がしてきて。。

 

つまり、やりたいことは、データにアクセスすることではなく、

サービス(ここではCGI)にアクセスすること。

 

そういうオブジェクト(内部でAJAX通信する)を標準化したもの

をnew するだけでつくれると、なんか楽チンじゃね?と思うので、

データアクセスオブジェクトじゃなくて、

サービスアクセスオブジェクト、略してSAOなんていうのが、

あっていいのかなと思うわけです。

 

GoogleをSAOだとかDAOだとかのキーワードで調べると、

CD-Rまわりの話しか出てこないので、まあ、

SAO(サービスアクセスオブジェクト)っていう言葉は

少なくとも世の中的には流通してないようで。

 

まあ、そんなわけで、SAOつくってみようかなと思います。はい。

2007年6月18日 (月)

script.aculo.usのEffectを止める

クリックイベントなんかでscript.aculo.us のEffectを発動するように
プログラムを組むとき、何も考慮をしないと、何度もクリックされたときに
効果が重なって変なことが起こったりする。

<script language="JavaScript"><!--
var move = function() {
    new Effect.MoveBy('mover1', 0, 100, {duration: 10.0});
}
//--></script>
<div id="mover1" onclick="move()"> hoge</div>


上記の例ではhogeをクリックすると、10秒かけてhogeが動くが、
10秒たたないうちにもう一回おすと、効果がかさなって
変な動きになってしまう。


そんなときは、Effectをcancel();することで、動きを止められる。

<script language="JavaScript"><!--
var Mover = Class.create();
Mover.prototype = {
    initialize : function(elementId) {
        this.elementId = elementId;
    },
    
    move : function() {
        if (this.effect != null) {
            this.effect.cancel();
        }
        this.effect = new Effect.MoveBy(this.elementId, 0, 100, {duration: 10.0});
    }
};
  
window.onload = function() {
    var mover = new Mover('mover2');
    $('mover2').onclick = mover.move.bind(mover);
};
//--><script>
<div id="mover2"> hoge</div>

こうすることで、2回目クリックすると、前の
effectはとまるので、効果が二重にかかることがなくなる。

 #上記の例では無駄にクラスを作っているけど、これは
 #本質ではないです。が、要するに、動くものをつくるときは、
 #そいつにeffectを紐付けてやって、ってやると楽チンだね
 #ということで。。

2007年6月17日 (日)

RubyでCGI(セッション編)

RubyでCGI(セッション編)です。

えーと、相変わらず目的はショッピングカートの実現なんですが・・

ていうか、(全部AJAXでやるので)HTML的には2画面しかない
ショップにしようとしているのでセッションなんか使わずに
hiddenでとばしちゃえばいいじゃんとも思うんですが、
まあ、そこはそれ

今回のサイト構築の目的のひとつは、

 Ruby CGIをいちから学習~

なわけで、

 「ショッピングカートをつくるなら、
  セッション使うの!」
 「使うことに意義があるの!」
 「いいの!」

以上なわけです。はい。

で、作ったのが以下。

◆AJAX用買い物かごCGI basket.cgi ◆

#!/usr/local/bin/ruby -Ku
#----------------------------------------------------------
# 買い物かごCGI
# セッション上に複数の商品を持つ
# ・現在「買物かご」に入っている商品一覧を返す
# ・「買物かご」に商品を追加する
# ・「買物かご」を空にする
# ・「買物かご」から商品を戻す
#----------------------------------------------------------
require "cgi"
require "cgi/session"
require "./basket.rb"
require "logger"

log= Logger.new('app.log')
log.level=Logger::INFO
cgi = CGI.new
session = CGI::Session.new(cgi)
basket = Basket.new(session)

log.info(basket.inspect)
if cgi.include?("add")
    basket.add(cgi["add"])
end
if cgi.include?("clear")
    basket.clear
end
if cgi.include?("remove")
    basket.remove(cgi["remove"])
end

print cgi.header({"charset" => "utf-8"})
print basket.to_json

◆basket.rb◆


#!/usr/local/bin/ruby -Ku
# 買い物かご
require "./to_json.rb"
require "logger"

class Basket
    @@log = Logger.new('app.log')
    @@log.level = Logger::INFO

    def initialize(session)
        @session = session
        ret = @session['basket']
        @@log.info(ret)
        if (ret == nil)
            ret = "{}"
            @session['basket']= ret
        end
        @content = eval(ret)
    end

    def add(itemId)
        count = @content[itemId]
        if (count == nil )
            count = 0
        end
        count+=1
        @content.store(itemId, count)
        @session['basket']=@content.inspect
    end

    def remove(itemId)
        count = @content[itemId]
        if (count == nil || count < 1)
            return
        end
        count-=1
        @content.store(itemId, count)
        if (count == 0)
            @content.delete(itemId)
        end
        @session['basket']=@content.inspect
    end

    def clear
        @content.clear
        @session['basket']=@content.inspect
    end

    def to_json
        return @content.to_json
    end
end

いやー、ハズカシイィ;;
Ruby初心者のくせにソース大公開;;

まあ、いいさ、どうせ誰もみちゃいない。
俺様の俺様による俺様のための日記ブログさw

昨日2時間ほど悩みまくって、
 ・ローカルアパッチだのロギングだのしないとだめだー、
 ・めんどいけど、やるかー
とまで思わせた躓きポイントは、Ruby の sessionを
J2EEのセッションと同じように考えてしまっていたこと。

Javaのセッションだと、


Map inMap = new HashMap();
session.setAttribute("someAttr", inMap);
inMap.put("tsuu", "kaa");


Map outMap = (Map)session.getAttribute("someAttr");
out.println(outMap.get("tsuu"));


なんて書くと、"kaa"が帰ってくるわけです。
つまり、setAttributeは「参照渡し」なので、
セットしたあとでリストに要素追加すると、
セッションに紐づいたリストに要素が追加されるということで、
あとで取り出したときには"hoge"ってのが入ってるので
取り出したリストの大きさは1になる

しかしRubyのセッション(CGI::Session)はファイルに書き出すという
実装だからというか、Rubyのハッシュってものがそうなのだと思うけど(未確認)
「実体渡し」なので、


inHash = Hash.new
session['someAttr'] = inHash
inHash['tsuu'] = 'kaa'


outHash =session['someAttr'];
out.println(outHash['tsuu']);


とかいても、'kaa'って帰ってこないでnilが帰ってくる。
 (たぶん。 実際に検証したのは、
  上に書いた買い物かごクラスなので、
  動かなかったときは、
  メソッドが定義されてねぇって
  おこられちゃって悩みますたよ。)

あと、もうひとつ、躓いたポイントは、
ハッシュにハッシュって詰められる?ってこと。
先ほどのソースでは、

        @content = eval(ret)
とか
        @session['basket']=@content.inspect
とか
苦し紛れに書いているのはそのため。

ひょっとして、Rubyってハッシュにハッシュつめられない?
いや、そんなことないか。。(未確認)

少なくともSessionにハッシュをつめたとき、
あとで取り出すと、なんかおかしなことになってるんだよねぇ。

{"1"=>1}ってのつめたら、取り出すと"11"になってる

だから、文字列化してつめて、取り出したらevalしてると。
eval, eval ,, なんか危険な感じでいやーん。です。
自分でつめたものevalしてるだけだから大丈夫かなぁ。

なぞです。

が、まあいいや、とにかく、ものつくりながら
覚えてゆこうかと思いますです。

それではまた次回。

RubyでCGI(ロギング編)

Ruby CGIとの格闘

ローカルアパッチでテストできるようになったので、
apacheエラーログがちゃんと見れるようになった(遅っ)

いやー、もっとはやくやっとけって感じですが、
大したプログラムじゃないうちは、とりあえず
サーバおいて、動かしちゃうじゃないですか。(^^;)

でも、ソースが数十行になってきたので、
それじゃやってられんということで、遅まきながら、
設定したわけです。

http://localhost/ で、つくってるものが動くのは、
いつもながらちょっと嬉しい。

といっても会社でやってる開発も http://localhost:8080/ で
Tomcat動かしているわけで、ローカルホストなのが嬉しいというより、
アパッチ設定自分でできたことが嬉しいのかな・・

まー、そんなことどうでもいいや。


えーと、本題にもどりまして、

アパッチのerror.logが見れるようになると、
プログラミング効率もあがり、
  (デバッグ効率・・が赤ちゃん級から、幼稚園児級に上がった程度だが)
そうすると、プログラムの書き方も、すこし大胆になってくる。

で、そうすると、エラーで動かない率も当然上がるわけで、
さらなる効率アップがしたくなる。
すると出てくる欲求:

 「もっとログがみたい」

はい、というわけで、Ruby Loggingでぐぐってみたよ。

require 'logging'

おけー、やっぱり、そのまんまのライブラリがありますた
Log4Jみたいなインターフェースでよべてちょっとハッピー

格闘すること約30分。

まあ、格闘したのは、ログ出力のロガーオブジェクトを
スタティック(クラス変数)に持ちたいなぁとおもいつつ、
クラス変数の書き方がわからないとか、そういうことを
学習したわけです。

class SomeClass
    @@log = Logger.new('app.log')
    @@log.level = Logger::INFO      . ..

    def someMethod
         . ..

        @@log.info('a=' + a)
    end
end

こんなの書いてたら、エラー発生

a がnil だとこけちゃうのね。
Javaだったらnullとの足し算すると 'null'って文字列に変換してくれるので、
そういう感覚でやっちゃったのですね。

お勉強になりますた

湘南モノレール

みなさんは湘南モノレールという路線をご存知だろうか?
神奈川県は大船の駅から江ノ島までを走るモノレールのことである。

湘南の面白鉄道というと、江ノ電を挙げる人は多いだろう。
いや、それが普通というものだと思う。

だが、どっこい、この湘南モノレールの面白さは、
江ノ電と張り合うどころか、個人的には、
その上をいっていると思っている。

またそれどころか、この湘南モノレールはひょっとすると、
日本一、または世界一面白い乗り物
なのではないかとすら思うことがある。
(モノレールは鉄道なのか?というと微妙だし、
 世界中旅しているわけでもなんでもないので、
 おもいっきり誇張はいっているとは思うが、
 私個人的には、一番面白いと思える乗り物なのだ)

湘南モノレールは上から吊るタイプのモノレールで、
大船から全線にわたり、とある道路と並行して、
ないし、その道路の上を走っている。

そのことがもたらす効果、面白さというのは、
ひとことでいうと、「空とぶじゅうたん」

赤信号で減速し、停車する車の上を
すいーっと走ってゆくその感じが、まさに
空とぶじゅうたんなのだ。

江ノ島に行く際は小田急ではなく、
是非、大船からこの湘南モノレールに乗ることをお勧めする。

動画でないとこの楽しさは伝えられないとは思うが、
携帯写真でも、楽しさの30%ぐらいは伝えられるかもしれない。
そういう想いで以下をつづる。

大船から写真があればよいのだが、この日は
途中の駅から乗車した。

F1010231これが湘南モノレールの駅である
プラットホームから線路をのぞくと普通は
1mほど下に線路があるものだが、
ここは、30-50cm程度の段があるのみで、
そこに線路は存在しない。

上を見ると、架線があるのではなく、太い吊り下げ用
レールボックス(っていうのかな?)が!


F1010232_1ホームの端までいくと、
こんな感じで下の道路が直接見える。

トゲゾーを落とすとき
ジュゲムは、こんな風に
マリオを見ているのだろうか・・

そんな想いをはせることが可能である。

F1010230



F1010229


F1010228



F1010226


F1010225

F1010224
山がちなところを走るので、高低差が味わえるのもこの路線の魅力。

ときにはこんなに地面すれすれを走ることもある。
しかも江ノ電のように、民家の真横を!

F1010223
なんと、駅のすぐ先にトンネルが。
出発したらあのトンネルに入るのかー!??

わくわく

そう、湘南モノレールには2つもトンネルがあるのだ。


F1010222
いざトンネルへ!

F1010221
トンネルの中を高速で疾走する
モノレール。

下に車輪がついてないぶん地面が近いので、スピード感がある。

当たり前だがトンネルの床にはレールも砂利もなく、排水溝のようなものがあるだけで、プレーンなコンクリそのままである。

これもなんとも面白い。

F1010220
トンネルを抜ける瞬間!

F1010219
トンネルを抜けると林の上へ!

ふわりと飛び立つ感じが味わえる

F1010218
終点の江ノ島駅に到着

RubyでCGI(ショッピングカート編)

Ruby でCGIをやってる。

今作ってるサイトは、簡単なWebショッピングサイト。

システム要件はクレジットカードとかは使わず、
本質的にはただのフォームメールでよいのだが、
せっかくだから、AJAXぐりぐりのぶりぶりにしてしまえと
いうことで、いろいろやっている。

んで、ショッピングカートを実装しているんだが、
まあいきなしつまった。

Ruby でセッション管理ってどうすんだ?

ということで、ぐぐってみつけたCGI::Sessionライブラリ。
ドキュメントがあまりなく、(Javaと比べてだけど・・)
少しばかし手探りだったが、なんとか動いてきた。

もうちとがんばろうかのぅ。。

ちなみに、Rubyの経験は数年前にRPGツクールで
遊んでいたときの数週間のみ。

 クラスってどうやってつくるんだ~?

とか、そういうところからはじめているので、
なかなか熱い!

一方AJAXってことで、クライアントサイドはJavaScriptで
ぐりぐりぶりぶりなわけだけど、こっちも、
prototype.js つかって、クラスなるものを作って
オブジェクト指向っぽくものをつくってる。

文法というか、変数に型のない言語であることというか、
そのへんが似てるので、結構やりやすい。

問題は・・

えーと、どっちもろくな開発環境を整えられずに
エディタでしこしこ作っているところかな・・

書いては動かして、だめだったら直す~ 
エラーメッセージ全然みえませーん
みたいな。
  (CGI、いきなしサーバでテストしてます。。あはは)

せめて、アパッチローカルに立ち上げるか・・
んー、めんどい・・

2007年6月10日 (日)

重力遮蔽フィールド

夢の中だったか、夢から覚めたあとだったか、
ぼんやりかんがえたんだけどさ、

◆考えたこと◆-----------------------------------
UFOってさ、重力を伝えないシートってのがもしあったら、
それを下に敷けばつくれるね。

いや、物質じゃなくて場でもいいんだけど。
-----------------------------------------------

よく、反重力物質をつかって飛ばすってのが、SFでは
採用されてるけど、「重力遮蔽」って考え方は、
自分は見たことがない気がする。

 注)これを書いた直後にぐぐったら、
    やまほどヒットしました。^^;

1-2ヶ月前、友達のおねえさんが勤めているから、
「みにいってみよう。」
っていうことで、お台場にある未来館ってところにいってね。

そこで、クオークだのニュートリノだの、そういう展示をみてたら、
小学生のころのような好奇心がわっと沸いて、
ブルーバックスの本を2冊買ったんですよ。

いっこは、そのまま、クオークの本。
もう一冊は、クォークとは関係なくて、
音だけなんか似てるけど、超マクロな話。
クエーサーに関する本。

 #クォーク: 原子核よりも小さい、素粒子
 #クエーサー: 銀河のはるかかなた、めちゃめちゃ遠くにある
           スーパーでっかい銀河みたいなやつ。
           
まあ、そんな感じで、ミクロとマクロをおさえるような形で、
ここ1ヶ月ほど物理づいていたので、そんな夢を考えたのでしょう。

クエーサーの本読んでて思ったのは、
超巨大ブラックホールがあって、そこに地球が吸い寄せられたとしても、
いきなしまっすぐ吸い寄せられるってことはあんまりないのかもなぁってこと。

 (注: 素人のただの感想であります)

ていうのは、吸い寄せられるとスピードがつくわけで、スピードがつくと
慣性がうまれるわけで、ブラックホールのまわりをしばらくは
円運動するよね。ってこと。

そうかんがえると、ブラックホールってなんだかそんなに怖くない
気がしてきた。

たとえるなら、「見つかったら最後、すぐ死ぬ病気」より、
「見つかっても、死に至るまで30年ぐらいかかる病気」のほうが
怖くないかな。。みたいなだけだけど。

んで、

さっきぼんやり考えたのは、
ブラックホールに引き寄せられる感じってのは、
きっと、ゼルダの伝説「風のタクト」ででてくる、イカのお化けに
遭遇したときみたいな感じかなぁということ。

渦に巻かれながら、ブーメランで倒さなきゃいけないやつ。

 わかる? わかんない人は、ぜひ「風のタクト」やってみてください。

あ、そうだ、そうだ、これは夢からさめてから考えたことだ。
夢の内容は、こんなかんじ。

------2007年6月10日、明け方頃の夢---------------------------

空は暗く、私たちは
海でぷかぷか泳いでいる。


と、そのとき、仲間の一人が
おびえきった声で叫んだ。

「渦だ!」

その方向を見ると、大きな渦が確認できた。

そこだけ海面が落ち込んでいて
水は茶色ににごっており、その中心には何かの気配がある。

とにかく僕らは巻き込まれないように、渦から全力で離れる。
だいぶ離れて、乱れてしまった仲間の隊列が元に戻ったころ、
別の仲間が叫んだ。


「こっちにも渦だ!]


恐怖と絶望感の前に、生きる希望が消え、
「あきらめ」と、自らの死を受け入れる「運命の受容」
が心を支配しかけたとき、仲間の一人が叫ぶ声が聞こえた。

 「渦と渦の中間点、波の峰の部分にステイしよう。
  そうすればあいつらはけん制し合って我々に手出しはできないはずだ。」

わずかな希望がみえた。
受容ではなく、あがく心が生まれた。

波の峰をつたってゆけば、あいつら2匹の距離が一定に保てる。
片方に近づきすぎなければ餌にならずにすむはずだ。
私は叫んだ。

 「波の峰をつたって、 陸へ戻ろう。!」  
  

そうして、僕らはなんとか陸に逃げ込んだ。

しかし、あの2つの渦
今はけん制しあっているが、
そのうちぶつかって、エライことがおこる。

なるべく高いところに避難する必要がある。


陸に上がった僕らは、めいめい、
それぞれ自分が安全だと思ったルートで
山に登ってゆく。

うっそうとした森に包まれた山。
歩きやすいところ、道になっていて、それが
先まで続いていそうなところを選んで上る。

前を走っている仲間が右にいった。
しかし、右のほうにいっては、より森が深くなってしまいそうだ。
左側のほうが木漏れ日が明るい。

僕は左側の道を選んでのぼってゆく。
後ろからくる僕の大事な家族も、僕に続いてのぼってくる。

しばらく、上り続けると、視界が開けた。
採石かなにかのために、ダンプカーが
通れるような、赤土がむき出しになったところにでた。

よし、ここまでくれば大丈夫だろう。

既に数十人がここまで避難してきていた。

遠くを見ると、向こうの尾根の崖の上にも沢山のひとが
避難してきている。

しかし、今は非常事態。
へんな若者の集団が騒いでいるが、
あいつらには注意しないといけないな。。

みると、ペンキの缶を通行人に投げつけている。
なんてやつらだ。。近寄らないようにしよう。

と、そのとき、
地響きがした。

ついに始まったのか。。

何をどう構えたらよいのかはわからないが、
とっさに身構える。

あぁっ!

なんと、遠くに見えた向こうの崖がくずれて、
避難した人たちを巻き添えにして落ちてゆく。

感傷にひたる。なんて余裕はまったくない。
とっさに、叫ぶ。

「崖は危ない。」

くずれなそうな場所。
崩れても致命的な崩れ方はしなそうな、
なるべく高いところを目指して走る。

仲間や家族がついてきているか、
ときどき振り返って確認する。

....


その後のことは覚えていない。。
------------------------------------------

まあ、そんな夢。
だったわけだけど・・

その渦が崖から落ちるという重力への恐れとあいまって
ブラックホールにつながったんだろうなぁと、今思います。

というわけで、なんだっけか?

重力遮蔽フィールド。

そんなものつくれたら、ブラックホールも怖くないし、
崖から落ちても怖くないねってことで、
うれしーねってことです。。
UFOもつくれるし・・

光を遮蔽できるんだったら、
重力だって遮蔽できたっていいじゃーん と言う考えの
SF概念「重力遮蔽フィールド」

きっと、グーグルで検索すると、
ほかにもそんなこと考えた人沢山
いるだろうから、沢山ひっとしちゃうんだろうなーと
思いつつ、でも、私にとっての「重力遮蔽フィールド」
は、上記のようなプロセスをへて自分でひらめいた概念
であるので、&そのことの価値は、人類全体でみたときには、
限りなく0にちかいのかもしれないが、私個人にとって、
それが0であるとはいえないと思い、ブログに書く次第です。


幸せなお目覚め

ふあ~ よくねた

きのうは、病院にいったあとで、金沢動物園なんぞにいって、
歩き回り、新聞折込広告にあった、金沢にある
巨大ガーデニングショップグリーンファームにたちより、
回転寿司を食べて帰ってきた。

だいぶ疲れたのか、7時か8時には眠ってしまった。

んで夜があけて、今、目がさめたのだ。

そうそう、昨日の目覚めは「頭痛」だった。

おととい、職場のみんなで久しぶりに楽しく飲んだら、
(酒飲むという行為自体スーパー久しぶりだったので)
激しい二日酔いに。。

そういうわけで、昨日のつらい目覚めとは
対照的にとても気持ちいい目覚めだ。

幸せになって、ブログなんてかこうかとおもったわけさ。

みなさまにも、この幸せをわけてあげます。

「はい。」

ちゃんとうけとってよ。

「はい。」

礼はいらないよー

そんでは!

2007年6月 5日 (火)

JASRACと文化庁とアップル

こんな記事を教えてもらった。

http://applesong.blog8.fc2.com/blog-entry-548.html

詳しいことはよくは知らないけど、

理由2 の部分。すごいな。

 

あっぱれ!という感じです。

 

かんけいないけど このフラッシュおもしろげ↓

http://iiaccess.net/upload/view.php/000901.swf

 

MochiKit

さいきん、Prototype.js / script.aculo.us で色々遊んでいるが、

MochiKitってのも、触ってみる必要性を感じるです。

http://my-chunqiu.cocolog-nifty.com/blog/2006/05/mochikit_javasc_2192.html

はい。

以上

2007年6月 4日 (月)

生涯経県値

同僚からおしえてもらって、
やってみたよ。
↓↓
自分のいったことある県

みんなもやってみそ^^

« 2007年5月 | トップページ | 2007年7月 »

Haruya's Violin

2017年12月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

最近のトラックバック

無料ブログはココログ