Whiteのふりーとーく

近頃版

About this Page |過去分一覧

_ another blog@hatena/Wiki/BBS/GameDeep/GD#/PSOBB/深淵回廊/マビノギ

ynakata on twitter

12.9

@週末にむけて

土曜日が(自分たちの)結婚式なのでそれに向かってバタバタしておりますよ。

もしも祝電など送ってくださるという方がおりましたら、なんぞの方法で通信いただければ送り先を返答いたしますので。

+comment(0) +trackback(0)


11.2

@{UNIX}ファイル名にやられる

ファイル名にスペースとか半角括弧とか入っているとUNIX的には微妙に辛い目に会えるわけですよ。findでファイル一覧取ってきてフィルタに食わせたらスペースで区切られて残念なことになったりとかで。しかもそのままsvnに突っ込んでたりしてた俺。仕方ないのでこんなワンライナーでスクリプトの原型を吐かせてどうにかした。

find . | grep ' ' | grep -v .svn | perl -ne 'chomp();$orig = $_;$orig =~ s/([ \(\)])/\\$1/g; s/ //g;s/[\(\)]/_/g; print "svn mv $orig $_\n"'

+comment(0) +trackback(0)


11.1

@{Perl}ExcelPrinter.pm

なぜか奥様の仕事の手伝いなどしていて、その過程でレポートをExcel形式で出さねばならない→しかしSpreadsheet::WriteExcelはいまいち俺の好みではない、ということでSpreadsheet::WriteExcelのラッパーなど作ってみた。

ExcelPrinter.pm:

package ExcelPrinter;
use strict;
use Spreadsheet::WriteExcel;
sub new{
    my $class = shift;
    my $filename = shift;
    die 'no filename' unless($filename);
    my $workbook = Spreadsheet::WriteExcel->new($filename);
    my $self = {
	'filename' => $filename,
	'workbook' => $workbook,
	'worksheets' => {},
	'row' => 0,
	'col' => 0,
	'max_col' => 0,
    };
    return bless $self,$class;
}
sub close{
    (shift)->workbook->close();
}
sub workbook{
    return (shift)->{workbook};
}
sub worksheet{
    return (shift)->{worksheet};
}
sub autofilter{
    my $self = shift;
    $self->worksheet->autofilter(0,0,$self->{row} - 1,$self->{max_col});
}
sub opensheet{
    my $self = shift;
    my $sheetname = shift;
    $self->{'worksheet'} = $self->{worksheets}->{$sheetname};
    unless($self->{'worksheet'}){
	$self->{'worksheet'} = $self->workbook->add_worksheet($sheetname);
	$self->{worksheets}->{$sheetname} = $self->{'worksheet'};
	$self->{row} = 0;
	$self->{col} = $self->{max_col} = 0;
    }
}
sub print{
    my $self = shift;
    my $col = $self->{col};
    foreach(@_){
	$self->worksheet->write($self->{row}, $col, $_);
	$col++;
    }
    $self->{max_col} = $col - 1  if ($self->{max_col} < $col);
    # finally, break to new-line.
    $self->{row} += 1;
    $self->{col}  = 0;
}
1;

使い方。

#!/usr/bin/perl
use strict;
use utf8;
use ExcelPrinter;
my $eprint = new ExcelPrinter('sample.xls');
$eprint->opensheet('シート1');
$eprint->print("foo",'bar',112);
$eprint->print("xxx",'a',113);
$eprint->opensheet('シート2');
$eprint->worksheet->freeze_panes(1,1)
$eprint->worksheet->set_column(0,0,6);
$eprint->worksheet->set_column(1,2,10);
$eprint->print('id','how','do');
$eprint->print('1','simple','print');
$eprint->print('2','pretty','work');
$eprint->autofilter();
$eprint->close();

という感じで必要なところでは適当に都合よくSpreadsheet::WriteExcelの機能を直接呼び出す。Spreadsheet::WriteExcel::Simpleではシンプルすぎるが、Spreadsheet::WriteExcelを全部直接使うのは面倒という感じの落としどころ。

+comment(0) +trackback(0)


10.23

@捻挫中

先の日曜日に親類に誘われて山に行ったら下山途中で捻挫した。

そんなわけで大変不便な生活をしている。月曜火曜とかはろくに歩けなかったので会社は休み。水曜日にいつものルートで会社に向かったら徒歩部分に倍以上の時間がかかった。杖をつくので意外なほど全身運動であり、かつ無事な方の足には負担がかかり、しかも無事でない方の足にも結構なダメージが入る。この調子でやってたら治りが遅くなりそうだ、と判断してその日の帰りから極力バスを使って移動するようにした。

朝はいつもは両国駅に向かうところをバスに乗って蔵前駅に。駅の中での乗りかえが面倒なので大江戸線で会社の北側の駅へ出て、そこからバスで近くまでアプローチ、という感じ。帰りはまあ逆。

これまで試したルート:

市谷仲之町交差点→牛込柳町
会社からバス停までが微妙に遠いが本数はわりと多い。しかし牛込柳町の駅からバス停の間のルートがやや長い。牛込柳町駅の地上行エレベーターが普通に雑居ビルのエレベーターで驚いた。
_合羽坂下→河田町(若松河田駅)
バス停が会社のほぼ目の前にあるので試してみた。本数が少なめ(30分に1本)だけど会社からすぐならまあ時間は潰せるから悪くない。駅側でもバス停からホームまでわりと楽に移動できるので大変よろしい感じ。
_河田町(若松河田駅)→合羽坂下
なので逆ルートも試してみた。駅側でも会社側でもちょっと歩く量が多くなるなあ。
あと試してないのは九段下or市ケ谷→合羽坂下。来週中にはまともに歩けるようになりそうなので一度は試しておきたいところ。

+comment(1) +trackback(0)


9.9

@grepDDL

なんかこんなん既に世の中にありそうな気がするが、仕事中についカッとなったので作った。

SQLで書かれたDBのスキーマ定義をgrepして「どのテーブルの定義にその行があるのか」を表示する感じ。

#!/usr/bin/perl
use strict;
my $DDLFILE = '/file/path/to/DDL.sql';
unless($ARGV[0]){
	exit;
}
open(my $DDL,$DDLFILE);
my $current = '';
my $line = 0;
while(<$DDL>){
	$line++;
	chomp($_);
	if(/create\s+table\s+(\S*)/i){
		$current = $1;
	}
	if(/$ARGV[0]/o){
		printf "%-25s(line:%d): %s\n",$current,$line,$_;
	}
}

+comment(0) +trackback(0)


8.30

@岡ゲーマー的選挙視

総選挙の投票行ってきた。

_ということで本当は数日前に思いついたんだが気づくと今日になってしまったネタを書いておく。今回の総選挙での各党の選挙戦略を眺めてみての感想。

「戦略」として見たときにちゃんと頭使ってるなあ、と思えるのは共産党と幸福実現党。

共産党は言ってる内容は相変わらずの大きな地方政府指向なんだが、国会の中でどんなプレゼンスを目指すのかが明解で、「現状は変えたいけど民主党を大勝ちさせたくない」層にターゲッティングしているのだろうなというのがよくわかる。

幸福実現党はある意味今回もっとも「政党」らしい主張を展開していてとてもくっきりとした小さな政府指向を打ち出して、期待されているがどの既存政党も唱えてくれない「主張の空白地帯」にどっかり座り込んでしまおうという雰囲気だ。しかし透けて見える背景組織ゆえいったいまじめに政治やるつもりがあるのかが怪しいあたりが微妙。

下手とかそういう問題ではないのが社民党と国民新党。前回(4年前)と言ってることが変わらなさすぎる。為政者たろうとするのにその情勢をまったく見据えない姿勢ってなんなの? そもそも「選挙」ってゲームにまじめに参加してるの? 馬鹿なの? 死(ry

みんなの党は、たぶんすごくまじめなんだけどそのまじめさの空振りっぷりが辛い。リバタリアンの心をがっちり掴もうと思ってるならまずその政党名がないよなー、と思う。

新党日本は主張そのものはまとまっているし個人的には共感できる部分も多いのだが、「比例区なんて人気者投票」という本質にあまりに忠実な鉄板ぶりはあまりにマチ・ハメゲー臭。

民主党はなんつうか原則チートだよな今回については、という。そもそもこの不況って自民党の失政のせいじゃないだろ? 詰め腹切らせる相手がいるとすればグリーンスパンかバーナンキかとかじゃねえの? という意味でゲームをあまりにゆがめまくるプロパガンダ強い。この国においてはそれこそが政治だ、という話はあるがそんなんで国家システムを運営して欲しくはない。

だからって自民党はその状況にあまりにガチで組み合った真っ向ネガティブキャンペーンですよ。まああたえられた環境の中で最適っぽい戦術を取っているとは言えるけど、それはある意味この1年の政権運営の姿そのまんまだよな。今の内閣の仕事は本当に悲哀に満ちたインテリの仕事すぎる。

なんというか安定した基盤の上に実績唱えて訴える公明党の姿があるべき姿に見えてこまる。いや実際、ターゲッティングも明確だしゲームに望む姿勢としては間違ってないとは思うのだが。実際結果も残してきてるわけだしなー。

+comment(0) +trackback(0)


8.25

@SFのFが取れたら現実だった

アニサマに行ってきた。裏街道ロックフェスとか日本文学に対する日本SFに対するラノベの立ち位置のことを彷彿としたりとかそういうサブカル的イヤな読みがいろいろできるなあと思ったりもしたけれど。そんなこととはあんまり関係なく普通に楽しかった。

_しかし断固一点書いておくべきなのは「初音ミク」の「出演」の部分のことだろう。

(歌う)人がステージに立ってないのにアーティストが出演している、という超現実っぷり。シャロン・アップル in マクロスプラスが現実に! なんてもうあっちこっちで言及されてることだろうけど。

しかし目の当たりにしたインパクトはあまりに強かった。皆がステージを見ていて、でもそこにはスポットライトを浴びるボーカルの姿がないという図。ボーカルという特権的存在を脱臼したその先にあったのは、他の演奏者の復権ではなく、逆に音楽の成立における人の関与という特権がそのまま奪われるのかもしれないというパースペクティブを突然感じて、あまりのSFっぷりにすごくクラクラした。あまりにも批評的な現実がそこにはあり、音楽イベントでこれやっちゃうのっていいのか、と本気で思った。

+comment(0) +trackback(0)


8.15

@明日

3日目東ヒ46ab ジャンク・ヤード&Night-Merchenで売り子活動の予定です。ここ最近書いてないなー。まだ書く気があるなら、書くペースをいいかげん構築しないといけない気がする。うむむ。

+comment(0) +trackback(0)


御意見・御感想の宛先white@niu.ne.jp