トップ 最新 追記

活動日誌


2005-03-01

SWAN'S ROOM

http://mofuya.com/flash/swan.htm

FLASH製の密室脱出系ゲーム。

これだけならネタバレにはほとんどならないと思うので書いちゃいますが、 ペンチのある場所がなかなか気付きませんでした。

出入金が無料でできるATM (自分用のメモ)

東京三菱は、メインバンク総合サービスのステージ3以上なら 東京三菱ATM、E-net ATM、ローソンATM、アイワイバンクATMで24時間無料。

新生銀行は、入金は新生銀行ATM、アイワイバンクATM、郵便局のATMからしかできない。手数料無料。 出金は、都市銀行のATMからでもできる。新生銀行ATMとアイワイバンクATMが無料で、それ以外はキャッシュバック。


2005-03-02

HTML のフォームで複数のボタンを区別する

とても初歩的な話。

HTML のフォームで、submit のボタンを複数用意して区別するには

 <input type=submit name="a" value="これはA">
 <input type=submit name="b" value="これはB">

のように name を指定する。

CGI の側は、Ruby だとこんな感じ。

 require 'cgi'
 cgi = CGI.new
 print "Content-Type: text/plain\r\n\r\n"
 if cgi.has_key?('a')
   puts "Aが押されました"
 elsif cgi.has_key?('b')
   puts "Bが押されました"
 end

2005-03-03

Wanderlust の添付ファイル

メーラには Wanderlust を使っていますが、 添付ファイルがくることはほとんどないので、添付ファイルを保存するのは どうやるだっけ、といつも迷うのです。

で、今日気付いたのですが、右クリックで保存できるんですね。 これで迷わずにすみます。


2005-03-05

Hiki の src.rb プラグイン

ソースをプレーンテキストではなく HTML の <pre> で表示するのですが、 なぜだろうと思って調べたら、Content-Type が text/plain でも HTML として解釈される場合があるという問題に対処するためだったようです。

http://yowaken.dip.jp/w3ml/hiki-dev/msg/204


2005-03-13

Wiki博覧会

WikiBana/VOL.4 - Wiki博覧会に参加しました。

会場は蒲田の大田区産業プラザ。来るのはこれで2回目です。

簡単な感想。

  • なるほど、これが「高橋メソッド」か。
  • 「猫も杓子もインクリメンタルサーチ」という言葉が出てきたが、やっぱり isearch は見栄えがする。
  • qwikWeb のタイムマシンモードが興味深かった。(どこから見れるんだろう)

懇親会では ma.la さんのお話しを伺ったり (JavaScriptがあれだけ可能性を見い出せるものだったとは)、 かずひこさんと Hiki の話をしたり、 他にもいろいろな方と会話の機会を持つことができました。

いい刺激を受けることができたイベントでした。


2005-03-16

CVSROOT にドライブ名を指定する

CVS で、リポジトリが Windows マシンにある場合に

 cvs -d:pserver:name@server:c:/hoge/cvsroot -qn up

のように CVSROOT を指定しようとすると

 cvs update: CVSROOT may only specify a positive, non-zero, integer port (not `c:').
 cvs update: Perhaps you entered a relative pathname?

と言われてしまい、エラーになりました。

いろいろ試してみたのですが、

 cvs -d:pserver:name@server:/c//hoge/cvsroot -qn up

と書くと大丈夫なようです。


2005-03-18

Hiki の Plugin クラス

Hiki の Plugin クラスで、@page はどこで定義されているんだろうと しばらく悩んでいましたが、 Plugin#initialize の

     options.each_key do |opt|
       eval("@#{opt} = options['#{opt}']") unless opt.index('.')
     end

で定義されているというのが正解でした。

Hiki のコミッタになりました

かずひこさんからお誘いいただきまして、Hiki の コミッタになりました。

うまく務まるだろうかと結構ドキドキものなんですが、 いろいろと contribute していきたいと思ってますのでよろしくお願いします。

とりあえず小ネタとして、URL リンクを class="external" にする修正を コミットしてみました。

unless が苦手

Ruby とのつきあいももう数年になりますが、実は unless が未だに苦手です。 上の unless opt.index('.') というのも、opt に '.' が含まれるときなのか 含まれないときなのか、5秒くらい考えないと分かりません。

何でだろうなと考えてみるんですが、条件を自分でひっくり返すのに 慣れていないのが原因な気がします。

「unless opt.index('.')」→「次が成りたたないとき: opt に index が含まれる」→「opt に index が含まれないとき」 この2つ目の矢印の部分で思考が止ってしまいます。書いてみると何でもないようなことなんですけどね。

自分で書くときは、if opt.index('.').nil? と書くことが多い気がします。 これだと、「次が成り立つとき: opt に '.' がなかった」と スムーズに頭に入ってきます。


2005-03-23

私信

ありがとうございます :-)

しかし、たまたま Wiki ばなに参加したのがきっかけで、 こうも急展開になるとは思ってもみませんでした。 (Wiki ばなはおろか、オープンソース系のイベント自体、初めての参加だったのです)

本当に、世の中何があるか分かりませんね。

でもまぁせっかくのチャンスなわけですから、 これを活かしていきたいなぁと思うところです。


2005-03-26

template による多態

Ruby のような言語だと、継承関係になくても インタフェースが揃っているだけでポリモルフィズムを実現することができます。

つまり、a.func() というのがあって、a に A もしくは B のインスタンスが入るとき、 A と B には継承による親子/兄弟関係がある必要はなく、 func というメソッドを持っているだけで大丈夫です。

一方 C++ では、func というメソッドを持っているだけではダメで、 継承による関係を持っていないといけません。

継承による多態・インタフェースによる多態、とかいう言葉があったような気がします。

さて、一般的にはそうなのですが、C++ でも template を使うことによって、 インタフェースを揃えるだけでポリモルフィズムを実現できるというのが紹介されていました。

http://chasen.org/~taku/blog/archives/2005/03/c_13.html

最近は C++ からめっきり遠ざかってしまって、 template に関する知識も「T のコンテナ」くらいのレベルでしか持っていないのですが、 なかなか興味深いです。


2005|02|03|04|05|06|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|03|04|05|06|10|
2008|04|10|
2009|10|
2010|05|08|
2012|01|02|03|
2014|01|
2022|05|
トップ 最新