タグ

ブックマーク / tociyuki.hatenablog.jp (9)

  • 車内広告のない光景 - Tociyuki::Diary

    何かおかしい。昨日、海老名駅から相鉄の急行電車に乗り込み横浜へ戻ろうと席に腰を降ろしたとき、電車の中ででも読んで時間を潰そうかと鞄をあさっても文庫一冊入っていないことに気がついて、さてどうしたものかと目を車内にさまよわせたときのことでした。ふと違和感を感じたのでした。 その直後、ドアから入ってきた若者が隣に座り、目の前の席にも、もう一人座り、ご両人とも同じ種類の2画面携帯ゲーム機に没頭している姿は良くある光景で、はたから見るとまるでいきずりの2人が真向かいに座ってゲーム対戦しているかのように見えるなと心の中でつぶやいている間に違和感が薄れて、関心がしばらく前から考えていたプログラムのユースケースに移ろい見落としている前提条件や終了条件はないかと頭の中でこねくりだしました。 そんな感じでユースケース図と文書をいじっくている間に電車は数駅進み、ホームの向こうに止まっているすれ違い電車にふと

    車内広告のない光景 - Tociyuki::Diary
  • Test-Behaviour-Spec-0.01 を CPAN へ登録 - Tociyuki::Diary

    Perl のテストで Behaviour Driven Development (BDD) して遊ぶためのモジュールを CPAN に登録しました。ご利用ください。 ⇒ http://search.cpan.org/~tociyuki/Test-Behaviour-Spec-0.02/ 0.01 の POD の使用例コードにセミコロンが一ヶ所抜けていたので、修正しました。コード体は 0.01 と同じです。 ⇒ http://search.cpan.org/~tociyuki/Test-Behaviour-Spec-0.01/ Test::Behaviour::Spec は、ふるまいを記述するための述語 describe、it、spec をサブルーチンとして使えるようにするだけで、いっさい Test::More 等への変更をおこないません。そのため、従来のどのようなテストにも、ふるまい記述を

    Test-Behaviour-Spec-0.01 を CPAN へ登録 - Tociyuki::Diary
  • Perl モジュールのありかを調べる perlwhere - Tociyuki::Diary

    Perl のモジュールを ubuntu の apt などのようにディストリビュータのパッケージ管理ツールと CPAN を併用してインストールしていると、あちこちのディレクトリにモジュールのファイルが分散してしまい、ソースを読みたいときに探すのがめんどくさく感じます。そんなとき、モジュールのパスを調べるコマンドが欲しくなります。激しく車輪の再発明のような気がしてならないのですが、ざっとググって見つからなかったのでエントリにしておきます。 モジュールのパスをてっとり早く見つけるには、コア・モジュールの Module::Build::ModuleInfo が便利です。 #!/usr/bin/perl use strict; use warnings; use Module::Build::ModuleInfo; for (@ARGV) { my $module_info = Module::Bu

    Perl モジュールのありかを調べる perlwhere - Tociyuki::Diary
    typester
    typester 2008/02/20
    perldoc -l
  • firefox の履歴から URI を標準出力に書き出す - Tociyuki::Diary

    「subtech - Bulknews::Subtech - IE の履歴を InternetShortcut に書き出す」と同じようなことを firefox でも。LinuxMacOS X で動作確認してますが、Windows でも動くかどうかはわかりません。 profile.ini を読んでデフォルト・プロファイルのパスを求めるには Mozilla::ProfilesIni を、その中に入っている履歴データベースを読み出すには File::Mork を使えば良いらしいです。 #!/usr/bin/perl use strict; use warnings; use File::Spec; use File::Mork; use Mozilla::ProfilesIni; my $profile = Mozilla::ProfilesIni->new( path => Mozill

    firefox の履歴から URI を標準出力に書き出す - Tociyuki::Diary
  • GMapsAPI と prototype.js の併用を止める - Tociyuki::Diary

    館の Google Maps APIRSS 1.0 から地図表示するページでは Google Maps API と prototype.js 1.3.1 を混ぜて使っていました。この2つはクリティカルな部分が重複していますので「いつかは衝突するだろう」と懸念してましたが、Ajax と Event 回りのハンドラの取り回しは prototype.js の方が扱いやすいので混ぜて使っていたのです。 そして、ついに Google Maps API が 2.66 にアップデートされたとき、懸念が現実となり、map2.addOverlay(marker) 実行でエラーが発生するようになりました。 というわけで、しぶしぶながら、ようやく Google Maps APIに統一することにしました。 まずは、RSS を XmlHttpRequest で取ってくる部分です。GDownloadUr

    GMapsAPI と prototype.js の併用を止める - Tociyuki::Diary
    typester
    typester 2006/10/25
    エラーが出るようになったらしい
  • Tociyuki::Diary - perlでのクロージャの3パターン

    id:naoya さんが Perl のクロージャの使い道を考えておられるようです。便上して、私が良く使う、3つのパターンを紹介してみます。なお、単なるコード・リファレンスとしての使い方は除外して付随するコンテキストが意味をもつクロージャの場合に限ります。 (2006年2月14日修正 use Fcntl のパラメータに :DEFAULT が抜けていたので追加しました。) コールバック・パターン イテレータにクロージャを渡して、イテレータの中から繰り返し呼び出してもらってコンテキストに副作用を及ぼす使い方です。クロージャの使い方の中でも最も自然に使えるものだと思います。以下、Ruby のブロック呼び出しっぽくコード・リファレンスを $yield パラメータに渡すことにします。へそ曲がりに BBS の CGI コード用に flock による排他ロックを例にしてみます。 package Mutex

    Tociyuki::Diary - perlでのクロージャの3パターン
    typester
    typester 2006/01/11
    クローじゃ
  • α版晒し - Tociyuki::Diary

    Catalystは便利なのですが、非力なサーバでは辛いので、Catalystのチビ助みたいなフレームワークをでっちあげています。せっせとCatalystとこれまで作ってきたCGI用のモジュールからコピペして、やっとα版にこぎつけました。 Catalystのチビ助なので、Chibystと名付けてみました。 (11月14日 0.05へ、11月12日 0.04へ、11月8日 0.02へ) ⇒ https://tociyuki.sakura.ne.jp/archive/Chibyst.pm Version 0.05 たぶんバグあり 取り扱い注意 チビ助だけあって、まったくDRYアーキテクチャではありません(笑)。ヘルパーなんて格好の良いものはなく、テスト・サーバのような豪華なものも含まれていません。コードを短くするために、アクション記述の互換性もなくしています。Catalystで作ってテストしてか

    α版晒し - Tociyuki::Diary
    typester
    typester 2005/11/08
    ミニCatalyst。参考に
  • クロージャによるOOP - Tociyuki::Diary

    ふと思いついて試してみたのですが、Perlでもクロージャを使ったOOPを扱えるみたいです。たぶん既出なのだろうと思いますが、見つけきれなかったのでエントリーを打ってみます。 例1. UP/DOWNカウンタ sub Counter::new { my $this = {}; $this->{class} = shift; my( $value, $step ) = ( 0, 1 ); $this->{step} = sub { $step = shift if @_ > 0; $step }; $this->{value} = sub { $value = shift if @_ > 0; $value }; $this->{up} = sub { $value += $step }; $this; } my $c1 = Counter->new(); $c1->{value}->(10);

    クロージャによるOOP - Tociyuki::Diary
  • Perlのアトリビュート - Tociyuki::Diary

    Catalystの特徴はなんといっても、Perl5のアトリビュート機能を用いた変態コーディングにあると言えましょう。もちろん『我々が等しく悦びを分かち合えるところの意味での変態ではなく、生物学でいうところの「生物個体あるいはその一部の外形のかなり付加逆的な内因的変化」としての変態』(isbn:4781904548、p. 149)ですよ。Catalystはアトリビュートを使うことで、まるでAWKのパターン・マッチングによるアクション起動に相当することをPerlで実現しているのです。これぞ変態。 ところが、Perl5のアトリビュートは積極的に使われることがないのか、探してみても解説が少ない。それで、Perl-5.8.5のソースまで遡って、ようやくattirbute.pmのPODの意味が理解できました。長いですが、理解できたのが嬉しかったので書いておきます。 ここでは、次のCatalystのコン

    Perlのアトリビュート - Tociyuki::Diary
    typester
    typester 2005/06/28
    default : Private ってやつの解説、しりたかったんですよこれ(えぇしらなかったんですよ
  • 1