タグ

ブックマーク / clouder.jp (15)

  • TTの.item()の挙動について調べてみた

    naoyaさんが書いてるTTのこの問題。ちょっと調べてみた。 とりあえず.item() がどこなのかを探してみたら、2.15 あたりで Template::Stash で定義されていたのが2.19だと Template::VMethods にうつっているようですね。 で、ロジックをみてみる。 2.15 だと Template::Stash の $HASH_OPTS->{item} の CODEREF が .item() の実体なのですが、この CODEREF 内ではプライベート変数判定用の正規表現が入ってる $PRIVATE がちゃんと参照できるため、プライベート判定できます。 でも、2.19 だと Template::VMethods の hash_item() が .item() の実体になっていて、しかもその中での $PRIVATE が undef になってる(参照できない)ために

    hideoki
    hideoki 2007/08/30
    チャウダー
  • Imagerを使おう - 第1回「画像の読み書き」

    仕事で激しくImagerを使っていて、ImageMagickなどにも劣らない機能を持っているなあと感じている今日この頃なのですが、せっかく使っていて覚えたテクニックを自分の中で終らせるのはもったいないし、日語でのドキュメントもあまりないみたいなのでまとめてみようと思いました。ということで、これから数回に渡ってImagerでできることを紹介していきたいと思います。(まぁ、podを読めという話なんですけど、Imagerはドキュメントも多いし、よく使う機能だけまとめておいてもいいかなと思い今回こういうのを始めてみました) まず第1回目は、とりあえず画像を読み書きの方法から。 Imagerで画像を読み込むには、read()というメソッドを使用します。 my $img = Imager->new->read(file => 'foo.jpg', type => 'jpg'); このようにfile

  • cronolog

    cronolog.org Welcome to cronolog.org, the home of the cronolog web log rotation program. よく、apacheとかのlogをうっかりローテートさせてなくて、ぬあー分割するスクリプト書くのめんどくせーってときにこれを使うと便利。このcronologに一緒に付いてくるcronosplitってのでさくっと日別に分割してくれます。 % cronosplit --template "access_log.%Y%m%d" access_log でいっちょあがり。

    hideoki
    hideoki 2006/08/10
    アパッチのログ分割ツール
  • del.icio.usでプライベートブックマークする方法

    最近知ったのですが、del.icio.usで他人に見せることなくブックマークすることが出来る方法があるようです。まぁ正しくは当にブックマークしたのがわからないわけではないんですが、少なくとも自分がブックマークしたということはわからなくできます。 やり方は簡単で下記のようなブックマークレットを使うだけです。usernameのところを自分のものに変えておいてください。 javascript:location.href='http://del.icio.us/username?v=3&tags=private.bookmarks&url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title) 見てわかるようにタグでprivate.bookmarksと入れるだけです。ブックマークレットを使わ

    hideoki
    hideoki 2006/03/06
    del.icio.us にはあるのね
  • Plaggerを使ってみた

    Plaggerが流行っていたのですが、仕事でなかなか触る時間がなかったのですが、先週末やっと時間ができたので触ってみた。とりあえず、bloglines2gmailを使っていた身としては、bloglines → gmail以外の選択肢がいろいろ増えたのは素直に嬉しいところです。 んで、自分はlivedoor フレパとmixiの友達の日記を自前でRSSにしてそれをリーダーで読んでいたのですが、Plaggerではlivedoor フレパやmixiから取ってくるのはあっても、RSSやAtomなどフィードに出力するPublish機能がなかったようだったので、ないのかな?とIRCで尋ねてみたところ作る?というのでさっそく作っているところです。 とりあえず作ってみたものを見せてみたところいきなりの駄目出し(笑) 今後いろいろと修正を加えて次のリリースにはリリースしたいっす。 とりあえず、現状のコードはこ

    hideoki
    hideoki 2006/03/01
    Feed を publish する plugin
  • Clouder::Blogger: SunbirdをやめてMozilla Calendarにして、あとiPodにカレンダー同期したよ

    今までスケジュール管理は、Mozilla.org のカレンダープロジェクトの Sunbird を使って、自宅サーバに WebDAV で接続してやっておりました(図にすると下のような感じ)。こうしておけば、いざというときにネットがつながってればどこでもスケジュール確認できるし、あと他人とスケジュールをシェアしてあぁ、この人は今日はこんなスケジュールなのねとわかったりするわけです。 [Sunbird(スケジュール管理ソフト)] | WebDAV経由 | [自宅サーバ(スケジュールデータはここに置いてある)] でもWebDAVが遅いのかなんなのか Sunbird は重くてぜんぜん快適とは言えませんでした。 そこで今回mozilla.orgの同じカレンダープロジェクトの1つで Sunbird より開発頻度の高いと思われる Mozilla Calendar に変えてみたのですが、これが快適。いい感じ

  • How to add virtual method on Template Toolkit

    Template Toolkitでvirtual methodを追加したいと思ったんですが、ドキュメントを読んでもどうも簡単なやり方が見付からない。仕方がないので最初に下記のようにやりました。 $Template::Stash::LIST_OPS->{ foo } = \&foo; こうしなけりゃならないのかな?他になにか方法あるのでしょうか…。 追記:はてブでハテナオヤさんが質問してましたが、このエントリで伝えたいことは、vmethodを追加する方法としては、上記の方法やdefine_methodを使うのが正当な方法なのかどうかということと、他の人はどう追加しているのかなという部分になります。 下記のようにインスタンス生成時に追加とかできればいいのに…。 Template->new(STASH => { LIST_OPS => { foo => \&foo } ); と思ったら、Temp

    hideoki
    hideoki 2005/12/12
    vmethod の定義の仕方。
  • PSPのRSSチャンネル機能をHack!

    PSPのファームウェアが2.60になって、RSSチャンネルという機能が付いた。簡単に言うとpodcastが購読(読むじゃねーな…)できるようになったんだけど、それをちょっとハックしてみた。 とりあえずRSSを取りに来るユーザエージェントは、「PSPRssChannel-agent/1.0.0 libhttp/1.0.0」となっています。libhttpを使ってるんですね。ふんふん。 次にプロトコル的にどんな感じで取りに来るのかを見てみた。最初は普通にフィードをGETで取りにきくる。次にそのフィードの各itemのenclosureにあるものをリスティングしてくれます(ちなみにenclosureに拡張子がMP4とかを指定したのですが、大文字の拡張子は認識しませんでした(リスティングされず))。 そしてリスティングされた中から聞きたい曲を選ぶと、その曲のURLにHEADのリクエストがきます。そのリ

  • 今日のハックが明日のスタンダード

    planet::dojo - Blog Archive - Cross-Domain XMLHTTP Abe Fettig, my co-worker and developer of the uber-useful JotLive, had just published a description of how to get XMLHTTP working across sub-domains. This isn’t fully cross-domain Ajax, but will certainly ease deployment issues for many developers. Today's "hack" is tomorrow's "standard".javascriptのライブラリ(toolkit)の1つであるdojoのブログを引用したものですが、この最後の1文がなん

    hideoki
    hideoki 2005/11/30
  • Catalystのデータクラスについて

    Catalystには、Catalyst::Helper::Model::CDBIというデータクラスを自動生成するためのヘルバーモジュールがデフォルトで付いてきます。これを使って作成されるデータクラス(例えばMyApp::M::CDBI)の親クラスはCatalyst::Model::CDBIとなっていて、その上の親クラスはCatalyst::BaseとClass::DBIとなっています。図にすると下記のような感じ Catalyst::Base, Class::DBI ↑ Catalyst::Model::CDBI ↑ MyApp::M::CDBI あるとき僕はこのデータクラスをコマンドラインで実行するスクリプトから読み込んで使おうとしたときに困ってしまいました。なぜなら、CatalystはWebで使うのを前提に設計されていて、コマンドラインからの実装は想定されていないさそうだからです。 生成

  • Sledge::Plugin::SessionAccessor

    「Sledge::Sessionに便利なアクセサ追加するには」を受けて、Sledge::Sessionにアクセサを追加できるプラグインを作ってみました。下記からダウンロードできます。 Sledge-Plugin-SessionAccessor-0.01.tar.gz 使い方はpodを見てください。…というのもあれなので簡単に説明するとProject::Pages::Baseに下記のようにメソッドと無名関数を定義しておくと、それをベースクラスとしたPagesクラスであれば、$self->session->methodという感じで呼べるようになります。 #と作っておいてあれだけど、ニーズあるのかなぁ…。ありそうだったらコミットしてみよう。 package Project::Pages::Base; use Sledge::Plugin::SessionAccessor; __PACKAGE__

    hideoki
    hideoki 2005/10/31
    セッションのアクセサだってよ
  • Sledge::Sessionに便利なアクセサ追加するには

    subtechグループ - tokuhiromの日記 - Sledge::SessionManager にアクセサ追加 User の ID をセッションに入れとく場合、 my $user = Project::Data::User->retrieve($self->session->param('id')); とか毎回書くのはダルいので my $user = $self->session->user; と書きたいのだが確かに。セッションから直で取れるのを設定できると楽だな~。宮川さんがコメントしているように簡単にSledge::Sessionに追加できるプラグインがあってもいいと思いますが、今のところ自分がよくやる方法としては下記の2つの方法があります。 方法1:Authorizerに定義する Project::Authorizer::Loginとかで認証する際に、 sub authori

  • Catalyst入門としてのお作法についてについて

    ひげぽん OSとか作っちゃうかMona- - Catalyst入門 と お作法について templateの include rootからのパスを指定してやればよい [% include templates/user/username.tt %]はてなのひげぽんさんがCatalystについて書いていたのでそれを受けて書いてみます。上記のこれは、root/base/の中に読み込みたいincludeファイルを入れてやると、それがTTのINCLIDE_PATHに入っているので [% include username.tt %]で読み込めるようになります。Catalyst::View::TTの103行目付近にその記述があります。ちなみに、テンプレートの中にデフォルトで使えるようになってる変数はbase($c->req->base), c($c), name($c->config->{name})の3

    hideoki
    hideoki 2005/10/20
  • screenの小技!(Catalyst入門としてのお作法についてについて)

    UnknownPlace. - Catalyst もりあがり あと、コンソールの文字コード云々は、GNU screen 使って server.pl うごかす window だけ :encoding utf8 とかでどうすか! 最近というか今日知ったんですが。うほ!これ知りせんでした!目から鱗が溢れました。 これがあれば_logを書換える必要なしですね。ちなみに細かく書くと、screenの画面で Ctrl-t : (Ctrl-tのコマンド文字部分は自分のに置き換えてください)とやるとvimみたいに「:」のプロンプトがでるのでそこで、encoding utf8と書いてリターンを押せばばいいみたい。 あと共通して使うのだったらばCatalystのプラグインにしたら?ってのは確かに書いた方が楽でいいですよね…。ただあまりCatalystを使いきれてないから、それがほんとに必要なのかどうかが微妙に迷

    hideoki
    hideoki 2005/10/20
    screen でとくていの window の文字エンコードを変える技
  • Sledge2に思いを馳せて

    ちょっと前に#!shebang.jpさんが「Sledgeで気になるとこ」というエントリを書いてましたが、これに被せる形で、Sledge2で個人的にやりたいと思ってるものを書いてみたいと思います。 Sledge::Helperを導入 qootas.orgのせきむらさんが作ってらっしゃったSledge::Helperをマージしたいなぁ。 Pagesをもうちょっと実際のページ生成ロジックと離したい Sledgeで開発していて困るのが、Pagesに書いたコードをスクリプトから呼びたいときなどむりくりやらなければならない。なぜならSledgeはビジネスロジックがほぼPagesと等価となっているからである。そこをもう少し離してやりたい。 redirectのあとのコードを実行しないように にぽたん研究所所長も、#!shebang.jpの方も言ってましたが、だれもが思うところですね。現状のSledgeでは

    hideoki
    hideoki 2005/10/04
    いろんな案が出てますね。
  • 1