タグ

ブックマーク / blog.clouder.jp (6)

  • Sledge Internals

    ソースを見るのが一番早く、正確に理解ができると思うのですが、その前のとっかかりとしてSledgeの内部について少し書いてみたいと思います。 SledgeにはSledge::Pages::Baseというモジュールがあり、このモジュールにはSledgeのライフサイクルの根幹となるメソッド群が定義されています。Sledgeの内部を調べたりAPIを調べる際には、まずここから調べ始めるべきです。 Sledgeのライフサイクルをものすごく単純にすると、下記のような感じになります。 init [AFTER_INIT] dispatch init_dispatch [BEFORE_DISPATCH] post_dispatch_foo dispatch_foo [AFTER_DISPATCH] output_content [AFTER_OUTPUT] このライフサイクルでなにが行なわれているかというと、

  • Sledgeのインストールと設定方法

    ThinkITに「SledgeによるWebアプリケーションフレームワーク入門」を書かせて頂きました。今回から数回にわたってWebアプリケーションについて紹介しながら、Sledgeではどう実現するのかについて、にぽたん研究所な人、#!shebang.jpな人 、自分の三人で書かせて頂く予定です。 この連載では、主題が「Webアプリケーションフレームワーク」なのでSledgeの詳しい説明を盛り込んでいません。そこで、この際なのであちらでは書ききれなかったSledgeの設定方法についての説明をこのページで書こうかと思います。 とりあえずSledgeを使ってページが表示できるまでを書いていきます。 途中で挫折したらすみません…。 今回の目標としてhttp://sledge.example.com/index.cgiにアクセスをしたら Hello World と表示するだけのアプリケーションを作成す

  • UNIVERSAL::can なんてあるのね

    A というすでにいろんなメソッドが定義されているクラスがあって、その中に foo っていうメソッドがすでにあったとします。で、その A というクラスを継承した B というクラスを作ったとして、でもあるプログラムで B のインスタンスを生成して $b->can('foo') ってやったときだけ真にならない(他のメソッドが呼ばれたときは真にする)方法ってないかということで先日 id:nipotanや id:ikebe と話をしていたところ、UNIVERSAL::can なるものをみつけた。これを使えばやりたいことはできるのではという話になりました。 UNIVERSAL::can はなにをするもんかというと、それを use したクラスに can というメソッドを定義すれば、そのクラスのインスタンスに対して $instance->can('hoge') ってやると、そのクラスに定義した can が

    hirafoo
    hirafoo 2008/12/23
    canメソッド/コメント欄
  • Mooseをさわる 1日目

    世の中のMoose期が過ぎ去った感がある今日この頃ですが、ここにきてやっとMooseをさわりはじめました。 なんで突然Mooseをさわりはじめたかというと、typesterのkamaitachiをちょっと使ってみようと思って見ていたらMooseを使っていて、まずMooseがわからないとコードが読めなかったからです。 ということで、ファーストインプレッションは以下。 hasとかextendsはなんとなくわかる use Moose;するとuse strict;やuse warnings;が必要ないんだね no Moose;している理由ってhasとかextendsとかのメソッド(pod内でkeywordと書かれているもの)をそれ以降で使えないようにしたいからなのね __PACKAGE__->meta->make_immutable;はそのクラスをimmutableにして、memorizeすること

  • mysqlのint(11)の11

    MySQL Manual | 6.2.1 数値型 MySQL には、INT(4) のように、型の基キーワードに続いて整数値の表示幅をかっこ内に指定できるオプションがあります。このオプションの表示幅の指定は、カラムに指定された幅より小さい幅を持つ値で表示の左側を埋める目的で使用されますが、そのカラムに格納できる値の範囲が制限されたり、そのカラムに指定された幅を超える幅を持つ値の桁数が制限されたりすることはありません。オプションの拡張属性 ZEROFILL と組み合せて使用した場合、デフォルトのスペースに代わってゼロが埋め込まれます。けっこう勘違いしている人がいそうなのですが、mysqlの型でint(?)とか、?に数字を入れますが、この数字は上記の通りZEROFILLをした際にスペースに代わってゼロが埋め込まれる際の幅なのです。自分は勘違いというかあまりよくわかっていませんでした…。 つまり

  • Crypt::CBCのバージョンを2.15以下から2.17以上に上げるときは気を付けろ!

    若干釣り気味のタイトルですが、Crypt::CBCの2.15がインストールされたサーバで my $cipher = Crypt::CBC->new({ key => 'foo', cipher => 'Blowfish' }); warn $cipher->encrypt_hex( 'bar' ); とすると「53616c7465645f5fcf0eb6374be3c083823b5e4bd39192b0」などと暗号化されます。 で、これをdecrypt_hexすると、 my $cipher = Crypt::CBC->new({ key => 'foo', cipher => 'Blowfish' }); warn $cipher->decrypt_hex( '53616c7465645f5fcf0eb6374be3c083823b5e4bd39192b0' ); ちゃんと「bar」と復

  • 1