tsucchi’s diary(元はてなダイアリー)

はてなダイアリー(d.hatena.ne.jp/tsucchi1022)から移行したものです

YAPC::Asia Tokyo 2011 が始まってます

表題のとおりです。昨日10/13 は前夜祭でした。まあ僕はトークを聞いてただけで、まったく交流せず、終わったらすぐ帰っちゃいましたが。。。だってスライド完成してなかったし。。。*1昨日のレポートはもうあがっていて、技評さん相変わらず仕事速いなー、…

今更 Linux をインストールしてみた話

自宅のメインマシン(ネット見たり、開発にも使ってるマシン)に Linux をインストールしてみました。 背景 最近まで、Windows から VMWare の FreeBSD にアクセスして、そこで開発してたりしていたのですが、せっかくメモリ 3G くらい積んでるのに、それを生…

スクリプトのテスト

ふつうは、Test::Scriptをつかうのだけど、このモジュールは CPAN レイアウトじゃないとうまく動いてくれない。(blib とかみてるので、CPAN レイアウトにして、make test じゃないと動かないみたいです)ただ、どうしても「コンパイルエラーくらいはしらべた…

YAPC::Asia でお話します & チケット絶賛発売中です!

YAPC::Asia でお話することになりました!本編ではありませんが、スイーツ♡エリアというところで、埼玉銘菓をつまみながら(?)、Perl のテスト周り、特に「テストしにくい部分をどうやって何とかするか」みたいなお話をしたいと思います。そして、チケット絶…

prove の並列実行の話

perl でテストスクリプトを実行する prove コマンドには -j という並列実行するオプションがあります。たとえば prove -j2 とすると、2プロセス作って並列実行されます。ただ、ウチのところのテストコードは基本的にストアドプロシージャのテストなので、DB …

DB のスキーマ設計とかの話

はじめに ここ1年くらい、わりとまじめに DB 設計やってみて、うまくいったもの、失敗したものなど、いろいろ出てきました。その知見(というほどものじゃないけど)を書いてみようかなー、と思います。僕は基本的にアプリ屋さん(+運用)なので、データモデルの…

YAPC::Asia かその周辺で話すかもしれません

今年の YAPC::Asiaの発表者に応募してみました。あんなテスト、こんなテスト 。参加は今年が3回目、発表者の応募は今回が初です。ユニットテストから見て、「周辺システム」とか「外部」といわれる、本来はモックやダミーを仕込んでテストするようなものも、…

Perl の shebang 解析の謎

(2011/08/19 追記あり)たとえば、こんなシェルスクリプトを作ってみて、 tsucchi@independent[102]% cat a.sh #!/bin/sh echo "aaa"; で、sh ではなく、Perl で実行してみます。 tsucchi@independent[103]% perl a.sh aaa すると、ふつうにシェルスクリプト…

MySQL のストアドプロシージャの話

きっかけはこの記事。変数とストアドプロシージャについて - Yet Another Hackadelic。「DeNA もストアド使ってるんだー!?」と、素直に驚きました。ストアドって、いい面もあると思うのですが、なんだかんだ2年くらい MySQL のストアド使ってきて嫌な面ば…

Variable::Expand::AnyLevel というモジュールを書いてみた

誰得?俺得!な感じなのですが、readpipe(バッククォート演算子)のオーバーロードで書いたように、readpipe をオーバーロードすると、引数の文字列を変数展開してくれない問題があるので、任意の変数をいい感じに展開するヘンな物体を作ってみました。tsucch…

「ふつうの Haskell プログラミング」一人読書会(2日目)

「ふつうのHaskellプログラミング」という本を読んでいます。ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門さて、今日は2章の残りと演習問題をやってみました。まずは head です。ここで実装するのは、標準入力をうけて、先頭10…

「ふつうの Haskell プログラミング」一人読書会(1日目)

「ふつうのHaskellプログラミング」という本を読んでいます。前から Haskell 勉強したいなー、と思っていて、「Real World Haskell」とか、「プログラミングHaskell」とか買ってみて、勉強したのだけど、「なんか説明を端折ってないか?」みたいなところが多…

readpipe(バッククォート演算子)のオーバーロード

バッククォート演算子をオーバーロードしたくて、readpipe を上書いてみたのですが、なんか妙な動きをしてくれます。 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; BEGIN { *CORE::GLOBAL::readpipe = sub { warn Dumper(\@_); }; } `ls -l…

subtest と Hook::LexWrap を使って xUnit みたいな setUp, tearDown をする

発見したのは結構前なのですが、twitter でつぶやいても(これとかこれ)、あんまり(っていうか全く)反響なかったのでこっちにも書いておきます。Perl でテストを書いているときに、xUnit の setUp/tearDown*1を使いたい場合、Test::Classを使ってテストを書い…

DBD::Mock の execute() 時のエラーを偽装する

DBD::Mock は $dbh->{mock_add_resultset} = { sql => 'BEGIN SOME_PROC(); END;', results => DBD::Mock->NULL_RESULTSET, failure => [ 12345, 'なんかエラー' ], }; こんな感じで、エラーコードを返すような仕込みができるらしいのだけど、RaiseError => …

デザイン変更

デザイン変更の続きみたいな話?さっき記事書いてたら、h4とかh5が全然見出しっぽく見えないなー、と思ったので、h3 みたいな左側のブルーの塊を設置してみました。 .body h4{ border-left: 4px solid #5279E7; padding: 3px; } .body h5{ border-left: 2px …

IS05を約2ヶ月使ってみた話

はじめに さようなら W41H, こんにちは IS05の続きみたいな話。 Android に乗り換えて約2ヶ月が経ちました。前にも書きましたが、私は 4/30 からシャープ製の Andoroid 端末 IS05 を使っています。で、2ヶ月使ってみた感想とか、入れてるアプリとかなんとな…

MYMETA.yml ってどうすればいいの?

ちょっと前に、新しい CPAN モジュールを ship した関係で気づいたのですが、Perl 5.14 でモジュール作成すると、MYMETA.yml というファイルが生成されます。と、いうか、5.14 というよりはどうやら ExtUtils::MakeMaker の 6.57 以降を使うと生成されるみた…

Test::Mock::Net::FTP というモジュールを書いた

表題の通りです。 というか、2009年ごろからチマチマと書いてたやつがある程度まともになったので、そろそろ CPAN にあげてもいいかなー、と思ってます。一応月曜に会社でコレ使ってるテストコード流して確認してから ship しようと思ってるので、リリースは…

さようなら W41H, こんにちは IS05

今まで、W41Hというケータイを使ってました。まあ特に不満はなかったものの、周波数帯の関係で来年夏までしか使えないみたいだし、「そろそろスマートフォンがほしいな」と思い始めていたので、思い切って買い換えてみました。新しい機種は、IS05というもの…

配列の削除と splice

配列を操作してて、「ある条件のばあい、その要素を削除」みたいなことをしたい場合。良くやるのが、 sub remove_item_in_some_condition { my (@input) = @_; my @result = (); for my $item ( @input ) { push @result, $item if( !some_condition($item) …

Perl のテストについて(2011年改訂版1)

0. 前提 0.1 はじめに 以前、Perl のテストについてという記事を書きました。2008年の記事なのですが、現在もそこそこのアクセスがあるようです。ただ、Test::More がアップグレードされて新しい書き方ができるようになったり、そもそも僕自身のプログラムの…

最近の話とか愚痴とか

よく、久々の更新に対して、「一応生きてます」とか書いていますが、そういう物言いがシャレにならないような事態になりました。首都圏の被害は少なかったといえど、毎日のニュースを見るたび「生きてて良かったな」と思わずにはいられません。その毎日のニ…

MacBook Air ほしい

MacBook Air 11インチ欲しい!最近妻に買いましたが、自分のもほしいじゃないですか!

twittering-mode で画像が出なかった件

最近、妻の PC を MacBook Air に新調したので、しょっちゅう借りて遊んでるのですが、emacs をインストールして、twittering-mode で twitter を見ようとしたところ、アイコンの画像が見れない、という問題が発生。で、発生したことをつぶやいたら [twitter…

あけましておめでとうございます

今日も子供がお風呂に入っている隙に書いているので、手短に。あけましておめでとうございます。今年もよろしくお願いします。昨年はちょっと抽象的な抱負を掲げて失敗したので、今年はちゃんとやります。今年は、英語をやろうと思っています。で、TOEIC と…

2010年のまとめ

子供が風呂に入っている隙に書かないといけないので、たいした事書けませんが。。。今年一年振り返ってみると、「仕事もプライベートも大変な中、ギリギリなんとかこなしたかな」といった感じです。そういえば、「インプットとアウトプットを増やしたい」と…

失敗のテストのテストの話

何を言っているのか良く分からないかもしれませんが、そういう話。拙作のTest::Module::Usedとか、もっとメジャーどころだと Test::Pod とか Test::Perl::Critic とか、自前で ok() 相当のメソッドや関数を持っているモジュールがあります。こういうモジュー…

Perl Best Practice 一人読書会(1日目&2日目)

Perlベストプラクティスを読んでます。ずいぶん前に一度読んだはずなのですが、ほとんど忘れてました。。。この本については、「良い本だけど、Perl のベストプラクティスではなく、Damian氏のベストプラクティスだから、気をつけて読まないと駄目だ」という…

これをもっときれいに書く方法ないかなぁ。。。

Test::Module::Usedを書いている際に思ったことメモ。Perl でオブジェクト指向で書いる場合で、subref を受けるメソッドで、受けた subref もそのクラスのメソッドの場合に、うまく $self を渡す方法がないのかなぁ、と思いました。分かりにくいので、実際の…