2011年 11月 22日

gerry++

差分

差分をとって、すなわち比較することによって、ようやく問題点がわかってくる。そのためには二つ以上のことが、あたりまえだけれど、必要である。例えば、ある学校に行っていて、学校がクソだ、と思っても、それはその学校が悪いのか、はたまたその地域の学校が悪いのか、あるいは学校全体が悪いのかというのは分からない。必ず、二つ以上のものを比べてはじめて、どこに問題があるかが分ってくる。

プログラムの問題解決もそうだし、それをしていると、差分を見ることがいかに重要か思い知らされる。

何らかの問題があるとき、それを解決するためには、まずその問題の原因を探らなければならない。そのためには、似たようなものを比べて、差分をとらなければならない。どこに原因があるか分からないまま、がむしゃらに問題解決にとりくむというのは、運まかせで、問題解決を行っているとは言えない。

2011年 11月 20日

過去のエントリへのアクセシビリティを下げた。

ウェブ日記というのを再考することにした。いろいろ考えた結果、以下のような要素が必要であるという結論に至った。

  • フィードはいらない
    • 不用意な人が不用意にエントリを見て、あーだこーだ言ってくるのを避けたい
  • 独立していなければならない
    • 露出が増える機能追加とかで、不用意な人が不用意に見て、あーだこーだ言ってくるのを避けたい

自分が得る情報を自分で制御できるということについて、僕は基本的な情報リテラシだと思っているけれど、中には情報を発信する側に一方的に責任があると考える人もいるようなので、できるだけ不用意な人に配慮することにした。不用意な人のせいで自分の言論が制限されるのは僕は納得がいかないし嫌なので、多少不便なことがあっても、トレードオフというか仕方ない判断だと思う。

誰に向けて、あるいは何のために書いているかというのを今一度明確にしておく

  • 自分に向けて
    • 記録として
    • 考えを整理するために
    • 自己評価のために
  • 似たような境遇の人に向けて
    • アホなやつがいるから大丈夫だと思ってほしい
    • 判断の材料に多少でもなれば

及び、誰に向けてではないか、また何のためでないかについても明確にしておく

  • 上の世代の人々に向けてではない
    • 読んでいただいても何の参考にもならないだろう
  • 安心している人
    • 敵です

一日に一回自分の Gmail にバックアップとして db ファイルを送信するようにした。

nexus(期間生産限定盤)(アニメ盤)(DVD付) - ClariS

ClariS

3.0 / 5.0

最近ずっと聞いてる。nexus が特に気に行ってるけど、Don't cry も好き。

2011年 11月 18日

Text::Xatena を HTML5 化したい

Text::Xatena というはてな記法っぽいものをパースして HTML 化するモジュールがあるのですが、0.14 から出力がカスタマイズできるようになりました。https://metacpan.org/module/SATOH/Text-Xatena-0.14/lib/Text/Xatena.pm

たとえば、HTML5 な感じのサイトでは div class="section" とか使っていると笑われてしまいますが、以下のように new の引数にテンプレートを渡すことで、細かい出力挙動を変更することができるようなり、HTML5 対応と言えるようになります。

渡しているテンプレートの形式は Text::MicroTemplate の区切り文字を {{ と }} にしてインデントを無視 (per-line style を使いやすいように)するようにしたものです。

ちなみに our + local によるカスタマイズ(?)を止めたいという思惑もあります (JS に移植するときに困るので)

subtest html5 => sub {
    my $thx = Text::Xatena->new(
        templates => {
            'Section' => q[
                <section class="level-{{= $level }}">
                    <h1>{{= $title }}</h1>
                    {{= $content }}
                </section>
            ],
            'Blockquote' => q[
                <figure>
                ? if ($cite) {
                    <blockquote cite="{{= $cite }}">
                        {{= $content }}
                    </blockquote>
                    <figcaption>
                        <cite><a href="{{= $cite }}">{{= $cite }}</a></cite>
                    </figcaption>
                ? } else {
                    <blockquote>
                        {{= $content }}
                    </blockquote>
                ? }
                </figure>
            ],
        },
    );

    eq_or_diff_html $thx->format(unindent q{
        * foobar

        baz

        >http://example.com/>
        quote
        <<

        * piyo
    }), q{
        <section class="level-1">
            <h1>foobar</h1>
            <p>baz</p>
            <figure>
                <blockquote cite="http://example.com/">
                    <p>quote</p>
                </blockquote>
                <figcaption>
                    <cite><a href="http://example.com/">http://example.com/</a></cite>
                </figcaption>
            </figure>
        </section>

        <section class="level-1">
            <h1>piyo</h1>
        </section>
    };
};
2011年 11月 10日

gerry++