はてなアイデアミーティング 2005-08-25

オープニング曲なし。応募がなかった。応募形式は自由。

開発チームにはカスタマーの役をする人間をいれたほうがいい。製品開発プロジェクトの鉄則。

つくばエクスプレス

秋葉原−つくば間は1150円。たった45分間の乗車に1000円以上かかることに一瞬とまどったが、高速で短時間だからこそ高くつくのだと思い直す。

陸の孤島つくばの唯一の足だった高速バスつくば号は「65分で1250円」することを書くべきですね。つーか、つくば号どうなるのかな。

あ、TX 一番のりの人知ってる人だ(笑。

開発環境(1)

GreaseMonkey の開発環境について調査してみようと思います。

3.2. Logging with GM_log

GM_log('this line is always printed');

GM_log を利用すると Javascript コンソールにログが出力されるようです。ただし、GM 3.5 では利用できません...。

DOM Inspecter

DOM インスペクタを利用することで、変更したいエレメントを簡単に探し出せます。

Mouseover DOM Inspector

マウスカーソルのあるところの DOM を表示してくれるブックマークレットIE などでも利用できます。

3.4. Evaluating expressions with Javascript Shell

Javascript Shell を使うことで、式を自由に評価してみることができます。タブキーでキーワードの補完候補を出してくれるのが便利です。

TIPS(1)

すべてのリンクに対して操作を行う

a タグはページアンカーとしても使われるので、必要なら次のように処理する。

var allLinks, thisLink;
allLinks = document.evaluate(
    '//a[@href]',
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);
for (var i = 0; i < allLinks.snapshotLength; i++) {
    thisLink = allLinks.snapshotItem(i);
    // do something with thisLink
}

指定したエレメントの後に要素を追加する

insertAfter というメソッドがないので nextSibling で指定したエレメントの次のエレメントを取得する。

var navbar, newElement;
navbar = document.getElementById('navbar');
if (navbar) {
    newElement = document.createElement('hr');
    navbar.parentNode.insertBefore(newElement, navbar.nextSibling);
}

Eclipse with CDT 3.0

CDT 3.0 の紹介記事

これを読んで eclipse + CDT 3.0 環境をセットアップしてみることにしました。公式サイトから eclipse 3.1 と CDT 3.0 を入手。eclipse を起動して、Managed Make C++ Project を新規作成。すでに cygwin 環境があるので cygwin の make と gcc が利用されるようだ。先日の SRM で出題された SuperString クラスを新規作成。ヘッダに #include と書いた途端 Indexing を始めて eclipse が固まった(;´Д`)。次に #include と...以下略。これはどうにかしたい。Full C/C++ Indexer を使うのをやめればよいのだろうか。でもフルフィーチャーの評価をしてみたいしなぁ、ということでちょっと我慢。

で、どうにかクラスを作成できたので、Source ファイルを新規追加して main を記述。で、Debug Run。デバッガは使いやすいなぁ。ちょっと機能を調べていろいろ試してみよう。

うーん、何かする度に処理待ちになるなぁ...。文字列補完も止まるし、使い物にならない機能なのかな?