タグ

perlに関するkaz_gotoのブックマーク (249)

  • 週末にRemedie を試してみた | ブログが続かないわけ

    レポジトリの移行に伴い、一部修正した(2009/03/03) Remedie を試すShibuya.pm やYokohama.pm の予習として、最新のmiyagawa プロダクトであるRemedie を試してみた。 Remedie 概要 ( From Google Code) 手抜きでごめんなさい。Remedie is a perl based media center application with pluggable architecture. You can subscribe to videocast feeds, watch local folder with media files and keep track of your favorite video sites like YouTube, Nico Nico Douga or Hulu. It works as a

    週末にRemedie を試してみた | ブログが続かないわけ
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • Template Toolkit Home Page

    BackHello, I'm a talking badger. UpMy name is Meles Meles, but you can call me "Badger". NextAbout the Template Toolkit The Badger Book The Template Toolkit is a fast, flexible and highly extensible template processing system. It is Free (in both senses: free beer and free speech), Open Source software and runs on virtually every modern operating system known to man. It is mature, reliable and wel

  • Devel::Profiler を使ってスクリプトのチューニング実践編

    Sledge フレームワーク自身が重くないことは今までの経験でわかってるのですが、どうにもソースを見直しているだけでは原因が特定できない・・・そんな活躍するのがプロファイラです。プロファイラの御陰で遅いヶ所を特定することができ、無事に想定するパフォーマンスを得ることができました。この内容に関してはまた別エントリにて。 と書きましたが、プロファイラ使っていろいろ見つかったパフォーマンス劣化を招くモジュールについて少しだけまとめてみました。もちろん全ての環境で同じ結果になるとは限りませんし、僕が書いてるアプリに依存しまくっている前提ですが、何かの参考になればと。 想定していたパフォーマンスより10倍遅い状態の時の Devel::Profiler の結果は以下に示すとおり。 Log::Dispatch::Config::config_dispatcher が全体の 50% 程度も占めています。そ

  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • NanoB というウェブアプリケションフレームワーク書いた - kazuhoのメモ置き場

    MENTA (http://d.hatena.ne.jp/tokuhirom/20081112/1226460761) は事前コンパイル型だけど、キャッシュ方式でどこまでパフォーマンスが出るか。と同時に、CGI で最速 WAF を作ろうと思うと、コントローラ毎に index.cgi を生成するのが一番速いだろうというのは、合意が得られるところだろう。というわけで、apache のリクエストに応じて、cgi を動的に生成/更新するウェブアプリケーションフレームワークを作ってみました。あくまでも評価目的 (=ネタ) なので、名前も NanoB というやる気のないもの。 結論: やや古い MENTA に対して 13% 増の速度 (156.67 reqs/s vs. 138.27 reqs/s) 取った手法としては、以下のとおり。 CGI 生成 CGI が、cache ディレクトリ以下にコントロー

    NanoB というウェブアプリケションフレームワーク書いた - kazuhoのメモ置き場
  • YappoLogs: Yacafi という軽量CGIフレームワーク書いたよ

    Yacafi という軽量CGIフレームワーク書いたよ MENTA というウェブアプリケーションフレームワークをかいてみた - TokuLog 改めB日記やらNanoA というウェブアプリケーションフレームワークをかいてみた - id:kazuhookuのメモ置き場やらと軽量CGIフレームワーク作りが流行ってるようなので昼飯った後に20分くらいで書いたよ。 Yacafi(Yet another CGI application framework interface)と言います。 http://svn.coderepos.org/share/lang/perl/Yacafi/trunkからsvn coできるけど、Yacafiはモジュール一個だけあれば動くようにしてあるのでhttp://svn.coderepos.org/share/lang/perl/Yacafi/trunk/lib/Yac

  • 編集距離(レーベンシュタイン距離)の計算 - Ceekz Logs (Move to y.ceek.jp)

    文字列間の類似度を求める方法の一つとして、編集距離が挙げられます。編集距離は、考案者にちなみレーベンシュタイン距離とも呼ばれますが、具体的には、挿入や削除、置換によって、一方の文字列から他方の文字列に変換するために必要な作業の最小回数です。 use List::Util; sub levenshtein_distance { my ($list_1, $list_2) = @_; my $len_1 = scalar(@{$list_1}); my $len_2 = scalar(@{$list_2}); my @d; foreach my $i (0 .. $len_1) { $d[$i][0] = $i; } foreach my $j (0 .. $len_2) { $d[0][$j] = $j; } foreach my $i (1 .. $len_1) { foreach my

  • Perl スクリプトで遅い場所を特定する方法 - Devel::Profiler / Devel::NYTProf

    仕事で書いてる Sledge アプリがあるのですが、先日負荷テストを行った結果びっくりすることに現行アプリの10倍遅いことが判明してしまいました・・・orz Sledge フレームワーク自身が重くないことは今までの経験でわかってるのですが、どうにもソースを見直しているだけでは原因が特定できない・・・そんな活躍するのがプロファイラです。プロファイラの御陰で遅いヶ所を特定することができ、無事に想定するパフォーマンスを得ることができました。この内容に関してはまた別エントリにて。 さて、プロファイラを使うとプログラム実行時の各種情報を収集し、性能解析を行うことが可能です。プロファイラについてもう少し詳しくしるには 性能解析 - Wikipedia あたりを読むと良いでしょう。 プロファイラ(英: Profiler)は性能解析ツールであり、プログラム実行時の各種情報を収集する。特に、関数呼び出しの

  • PlaggerでTwitterからTumblrへFavを流す - As a Futurist...

    書き直しました! わざわざログインしなくても Fav のフィードは取れるので書き直しました! Plagger 使って Twitter の Fav やふぁぼったーを Tumblr に流すプラグイン作ったよ – As a Futurist… ずっとやりたかったことをやってしまいました.僕は Twitter を見ているときに「これは秀逸www」という ポストがあったらちょくちょく Fav しています.できれば多くの人にこれらの優れたポストを見て欲しいのですが うまいやり方がなくて,それだったら Tumblr に流してしまえばいいじゃないかと思った次第です. 実際,Tumblr には Tombloo 経由で流れてくるポストが結構あります.まさか自分で Fav したポストを 開いて Tombloo するとかはありえないので,ここは Plagger といきましょう. Twitter の自分の Fav

    PlaggerでTwitterからTumblrへFavを流す - As a Futurist...
  • コサイン尺度(コサイン類似度)の計算 - Ceekz Logs (Move to y.ceek.jp)

    文書間の類似度を求める方法の一つとして、コサイン尺度が挙げられます。コサイン尺度とは、2つのベクトルのなす角度であり、文書をベクトル化することにより、文書間の類似度を求めることが出来ます。 sub cosine_similarity { my ($vector_1, $vector_2) = @_; my $inner_product = 0.0; map { if ($vector_2->{$_}) { $inner_product += $vector_1->{$_} * $vector_2->{$_}; } } keys %{$vector_1}; my $norm_1 = 0.0; map { $norm_1 += $_ ** 2 } values %{$vector_1}; $norm_1 = sqrt($norm_1); my $norm_2 = 0.0; map { $nor

  • Mojolicious Web Framework

    11,907 commits closer to perfection! Mojolicious is a fresh take on Perl web development, based on years of experience developing the Catalyst framework, and utilizing the latest web standards and technologies. You can get started with your project quickly, with a framework that grows with your needs. The Mojo stack provides a consistent set of components that can be used in any project. The guide

    kaz_goto
    kaz_goto 2008/11/05
    まだ開発中みたいだけど新しいウェブアプリフレームワークみたい
  • remedie - file-glob こと k.daibaの日記

    メモメモ 宮川さんにremedieって"Pluggable media center application"のproject memberに加えてもらったので,自分ならどんな作りになるのか考えてるところ シナリオ こんな感じのことができればいいのかな 設定ファイルでどこを巡回するのか記載しておくと 定期的に巡回してそのサイトの最新情報を取得する 取得した最新情報が既知であれば廃棄し,新規であれば登録する 登録した情報をユーザに一覧表示し,ユーザが: 既読フラグを付けた場合は,もう表示しない 未読フラグを付けた場合は,次回も表示する ブックマークフラグを付けた場合は,指定の(ソーシャル)ブックマークに登録し 保存フラグを付けた場合は,DLNAサーバにコンテンツごと保存 再生フラグを付けた場合は,ユーザが利用するツールに併せた形式で情報提供 DLNAサーバも巡回対象になっている こう考えると

    remedie - file-glob こと k.daibaの日記
  • Affelio - -The Open Social Network-

    Affelio(アフェリオ)は、あなたの友だち関係に「安心」「楽しさ」「便利さ」を教えてくれる、新しいSNSのしくみです。Affelioは、一言で言えば「MixiやGREEの中だけでなく、インターネット中全体をSNSにしてしまおうよ!」というような仕組みです。 今現在どんどんユーザー数増加中ですよ!あなたもはじめてみましょう!当のSNS! Affelioってどんなもの? Affelioは、GREEやMixiなどの既存のいわゆる「SNS」とはまったく違う、次世代のSNSのしくみです。 MixiなどのSNSでは、自分のプロフィール/日記などをMixi.jpの中に集中的に作りますが、Affelioを使えば、あなたの「Affelioページ」を インターネット中どこでも、好きなWebスペースに作ることができます! そして自分のAffelioページと友達のAffelioをページをAffelio独自の

  • mizzy.org : Catalystでajax - 実践編

    Catalystでajax - 実践編 Posted by Gosuke Miyashita Sat, 30 Apr 2005 13:28:59 GMT 概要 前回のエントリに関して、MM/Memoで、「うーん、便利なのかなー。perl(とかのサーバサイド)コード中にjavascriptが混ざるのって嫌な気がするけど。」と書いている方がいらっしゃったのですが、ちょっと勘違いをされているような気がします。自分でJavascriptのコードを一切書かずに済ませるための、HTML::PrototypeならびにCatalyst::Plugin::Prototypeですから。 なので、今回は実践編っつーことで、Javascriptを一切書かずにajaxなウェブアプリ(ってほどのものではないけど)をCatalystで作ってみたいと思います。といっても、けんたろさんのCatalyst で作る簡単 Web

  • Any-Template-1.015 - provide a consistent interface to a wide array of templating languages - metacpan.org

    The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

  • http://antipop.zapto.org/mt/archives/001280.php

  • EUC の正規表現 - Ceekz Logs (Move to y.ceek.jp)

    最近は、ニュース検索に新たな機能を追加しようと試行錯誤しています。 EUC の文字列が文字化けしていないかどうかをチェックする必要がありました。チェック自体は難しくなく、単に EUC の範囲外の文字が含まれているかどうかを調べればよいのです。 EUC の 1byte 文字は、以下のように表現することが出来ます。というか、すべての ASCII 文字 はこれ。 [\x00-\x7F] しかし、よくよく考えると、この表現には制御文字も含まれているんですよね。なので、このままマッチさせると文字化けを発見することが出来ないわけです。なので、制御文字を除いてマッチさせるのが吉だと思う。 [\x20-\x7E] ということで、僕は、以下のように定義して文字化けが無いかどうかを調べています。 $euc = '[\x20-\x7E]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-

  • DBIx::MoCo をなんとなく把握 - Yappo::タワシ

    ソース読んだだけだけど>< moco の session は、特定の範囲で使われるcacheのような物がある。 通常のCacheオブジェクトよりも優先的に使われる。 __PACKAGE__->is_in_session で、現在のセッションのオブジェクトをとるよ。 session は変更のあったrowを保存しといてくれて、end_sessionの時にまとめてsaveしてくれる。 object_id が各レコードのユニークなkeyを作れると。 retrieve は引数から object_id を作ってキャッシュを引いてる。キャッシュ無ければretrieve_by_dbDBから引いてキャッシュに投入。DBがnull返してきても基的にはnullをキャッシュする。 retrieve_multi はキャッシュから引いてきてキャッシュにないobject_idはDBからとってくる。 retriev

  • ORMを作るために最低限必要な4+1のコンポーネント - Yappo::タワシ

    短期間でCPANに上がってる名が通ったO/Rマッパ+αを目を通して、ORMマッパの必要最低限なコンポーネントを整理した。ぶっちゃけもっと削っても良いが一般的にするためにもリストアップ。 ORM 基幹的なクラスで使い方はORMによりけりで、特に無くても良い。 ORM::Schema テーブル定義を行う場所。物によってはデータベースの定義だけ行って。テーブルの定義はORM::Table的な物で行う。 どっちにしろテーブルの定義には変わらない。 大ざっぱに言うと、このクラスからselect系のメソッドが生えている。 ORM::Iterator 結果の行を取り扱うイテレータ。 DBICならDBIx::Class::CursorになりMoCoならDBIx::MoCo::Listが担当。 ORM::Row 結果の行ごとのオブジェクト。だいたいはORM::Schema or Table で定義してるco