はてなブックマーク棚卸し

晦日です。みなさんいかがおすごしでしょうか。

僕ははなブックマークの棚卸し(?)をしてます。今年一年かけてブックマークしたものを順番に見て行ってます。見るといっても、全部の記事を開いて見るわけではなく、流し読みで、「ああ、これはもう一回読んでおきたい」と思ったものを開いてはインプットしているという感じです。ようやく 6 月 20 日まで来ました。先は長い。

僕はブックマークするときに必ずコメントをつけて、サマリとか感想とかを書くようにしてるのですが、一から順番に見て行くにあたって、コメントをつけるようにしてて良かったなあと改めて思いました。感想やサマリを手がかりに読み進めていくと、飛ばし読みしやすい。

もう一回読もうと思って開いてるのは、技術ネタが多いです。ブックマークした CPAN モジュールでなんかもうすっかり忘れてたやつとか、面白そうと思ってブックマークして結局試さないでたツールとか、そういうのが掘り起こせていい感じです。

受験勉強のときに、昔解いた問題とか一度受けた模試の問題をもう一度やってみるのがすごい効果的だったのを良く覚えてますが、いましているのもそんな感じの作業です。

記憶のメカニズムというのがあって、何か情報を脳内に強く残すためにその情報に対してエネルギーを大量に使うといいみたいな話を聞いたことがあります。そして、一度忘れてしまった話思い出すという行動にはすごくエネルギーが必要らしい。時間をおいてから再度そのトピックについて思考してみると良いのは、こういう理由からなのかもしれないですね。

無線LANブリッジのIPアドレスを探せ

実家に帰省中なわけですが、実家のネット環境がちょっとしょぼかったので無線化することに。で、家から持って帰ってきた余ってた無線LANブリッジを接続したまではよかったものの、ブリッジのIPが分からず管理画面にアクセスできない! メルコの製品だから 192.168.11. にあるというところまでは分かってるけどそこから先が分かりません。

どうやってアドレス探そうかなー、となんかそういう時に使うツールもありそうなもんですが、

#!/usr/local/bin/perl
use strict;
use warnings;
use Net::Ping;
use Term::ANSIColor qw(:constants);

$Term::ANSIColor::AUTORESET = 1;

my $p = Net::Ping->new;
my $subnet = shift || '192.168.0.';

for (1..254) {
    my $addr = $subnet . $_;
    print "pinging to $addr ... ";
    if ($p->ping($addr, 0.1)) {
        print BOLD GREEN "OK";
    } else {
        print BOLD RED "NG";
    }
    print "?n";
}

$p->close;

スクリプトをすごい勢いで書いて実行すると。

find_ping.png

メルコの製品は工場出荷時設定では、ルーターは 192.168.11.1、ブリッジは 192.168.11.100 になるみたいですね。

Template::Plugin::VimColor

Text::VimColorソースコードをいい感じにマークアップしてくれるモジュールで、テキストの中の Perl コードに色を付けたりするのになかなか便利。

TT から利用できるといいなということで、

<pre>
[% FILTER vimcolor %]
#!/usr/local/bin/perl
use strict;
use warnings;

print "Hello, World!";

sub foo {
   my $self = shift;
   return "bar";
}
[% END %]
</pre>

と書くと

と言う風になるようにしたい。例によって Template::Plugin::Filter で

package Template::Plugin::VimColor;
use strict;
use base qw (Template::Plugin::Filter);
use Text::VimColor;

our $VERSION = 0.01;

sub init {
    my $self = shift;
    $self->{_DYNAMIC} = 1;
    $self->install_filter($self->{_ARGS}->[0] || 'vimcolor');
    $self;
}

sub filter {
    my ($self, $text, $args, $config) = @_;
    my $filetype = delete $config->{filetype} || 'perl';
    my $syntax = Text::VimColor->new(
        string   => ?$text,
        filetype => $filetype,
        %$config,
    );
    return $syntax->html;
}

1;

としてまずは簡単だけど所望の物はできましたと。あとはこれに Apache::VimColor みたく Cache::Cache でキャッシュするようにした方がいいかなと思ったところで、Cache オブジェクトの ID をどうしようかなとか考えてたらちょっと萎え。

ひとまずこれでいいので CPAN にうpしようと思ったけど時間切れ。数日ネットのない生活を送ります。みなさんよいお年を。