2011年 08月 15日

Lion で DBD::mysql の install に失敗する

$ cpanm install DBD::mysql
#   Failed test 'use DBD::mysql;'
#   at t/00base.t line 21.
#     Tried to use 'DBD::mysql'.
#     Error:  Can't load '/Users/cho45/.cpanm/work/1313143495.5214/DBD-mysql-4.019/blib/arch/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Users/cho45/.cpanm/work/1313143495.5214/DBD-mysql-4.019/blib/arch/auto/DBD/mysql/mysql.bundle, 2): Library not loaded: libmysqlclient.18.dylib
#   Referenced from: /Users/cho45/.cpanm/work/1313143495.5214/DBD-mysql-4.019/blib/arch/auto/DBD/mysql/mysql.bundle
#   Reason: image not found at /Users/cho45/perl5/perlbrew/perls/perl-5.14.1/lib/5.14.1/darwin-2level/DynaLoader.pm line 194.
You can s)kip, r)etry, f)orce install or l)ook ? [s] l
Entering /Users/cho45/.cpanm/work/1313143495.5214/DBD-mysql-4.019 with /bin/zsh

$ otool -L blib/arch/auto/DBD/mysql/mysql.bundle 
blib/arch/auto/DBD/mysql/mysql.bundle:
        libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.0.0)

$ install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib blib/arch/auto/DBD/mysql/mysql.bundle

$ blib/arch/auto/DBD/mysql/mysql.bundle:
        /usr/local/mysql/lib/libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.0.0)

$ make test
$ make install

ref. http://d.hatena.ne.jp/paulownia/20110802/1312273616

gerry++

2011年 08月 12日

週明けの旧PCでやること

  • ~/dotfiles/skk/my.rule をコミッシュ
  • SKK の辞書を Dropbox にいれる
  • Virtual Box のイメージうつし
  • ~/sketch/* を Dropbox にうつす
2011年 08月 09日

gerry++

2011年 08月 08日

gerry++

2011年 08月 04日

サブドメインに任意の文字列が入るウェブアプリのローカル開発

サブドメインに任意の文字列が入るようなサービスをローカルで開発しようとすると、いろんなホストを /etc/hosts に書かないといけなくてすごく不便なので、なんとかしようと思っていたところ、id:hakobe932 先生に「それアレでできますよ」との御言葉を頂き、簡単なスクリプトを書きました。

以下のスクリプトを

./localhost.pl local.example.com

とかすると DNS サーバが起動し *.local.example.com が全部 localhost に向くってだけのものです。たぶん OS X じゃないとうごかない…

2011年 08月 02日

gerry++

2011年 07月 31日

Hatena::Counter IRC Gateway

を書きました

  • PASS に javascript:alert(document.cookie.match(/rk=(\S+)/)[1]); を指定
  • /join #counter-{userid}-{counterid} する

と適当にクロールして IRC ログにアクセスがながれてきます。

UA とリモートホスト (を削ったもの) を元に ua_id というのを作って nick にしているほか、リモートホスト部分に色をつけるようにしてます。

2011年 07月 29日

今週あったよかったことさがし

  • POP3 に詳しくなった

gerry 可視化再び

use strict;

use LWP::Simple qw($ua);
use HTML::TreeBuilder::XPath;

my $res = $ua->get('http://subtech.g.hatena.ne.jp/keyworddiary/gerry');
$res->is_success or die "Failed to GET: $res";

my $data = [];
my $doc = HTML::TreeBuilder::XPath->new_from_content($res->content);
my $nodes = $doc->findnodes('id("refered-diary")//ul/li[@class="diary-listitem"]/a');
for my $node (@$nodes) {
	my $href = $node->findvalue('@href');
	if (my ($year, $month, $day) = ($href =~ m{/cho45/(\d{4})(\d\d)(\d\d)})) {
		push @$data, [$year, $month, $day] ;
	}
}

$doc->delete;


use WebService::Hatena::Graph;
use IO::Prompt;
use Perl6::Say;

my $password = prompt "Password:", -echo => '';

my $graph = WebService::Hatena::Graph->new(
	username => 'cho45',
	password => $password,
);

my $count = 1;
for my $date (reverse @$data) {
	$graph->post_data(
		graphname => 'gerry',
		date      => join('-', @$date),
		value     => $count++,
	);
	say join('-', @$date);
}

use DateTime;
use IO::File;
my $fh = IO::File->new('gerry_access_log', 'w');

for my $date (@$data) {
	my ($year, $month, $day) = @$date;
	my $dt = DateTime->new(year => $year, month => $month, day => $day, time_zone => 'Asia/Tokyo')->strftime('%d/%b/%Y:00:00:00 +0900');

	$fh->write(qq|0.0.0.0 - - [$dt] "GET /gerry HTTP/1.1" 200 26768 "-" "Gerry"\n|);
}

$fh->close;