タグ

perlに関するlyokatoのブックマーク (279)

  • ryukware

  • Perlで学ぶコルーチン

    8. say quot;startquot;; sub say_hello { say_hello(10); my $n = shift; for (1..$n) { say 'hello'; } return; } say quot;endquot;; 10. my $c = Fiber>new( $c‐>resume; sub{ say 'hello!'; Fiber‐>yield; say 'happy'; $c‐>resume; say 'perl'; Fiber‐>yield; say 'coding'; $c‐>resume; say 'world!'; } ); 11. my $c = Fiber>new( $c‐>resume; sub{ say 'hello!'; Fiber‐>yield; say 'happy'; hello happy $c‐>resume; say

    Perlで学ぶコルーチン
    lyokato
    lyokato 2009/07/10
  • 2009/07/09 - memo - unknownplace.org

    最近 AnyEvent にはまっています。おもしろい! AnyEvent と同じ非同期プログラミングフレームワークであるところの POE では $kernel->alias_set('hoge'); などとしておくと $kernel->post( hoge => 'state' ); みたいな感じでどこからでもそのコンポーネントを呼び出すことができました。 しかし AnyEvent ではそう言った機能がないため以下のように Object::Container を使って解決することにしました。 呼び出される側: use AnyEvent; use Object::Container 'event'; my $cv = AnyEvent->condvar; $cv->cb(sub { my (@args) = $cv->recv; # ここになんか処理 }); event->register(

    lyokato
    lyokato 2009/07/09
  • YAPC::Asia 2009 - Sep 10-11 in Tokyo, JAPAN

    ようこそ YAPC::Asia 2009 は 2009/09/10-11に 東京工業大学大岡山キャンパス (東京都目黒区) で Japan Perl Association主催で 開催されます。 特別研修が受けられます!Moose入門、DBIx::ClassとMySQLによるスケーリング術、そしてPerl/Unicode/Ajaxについて、あの小飼弾氏を含む最強の講師達から学べる! 今回が初めてのYAPCへの参加の場合はこちらから参加者登録することができます。もしYAPC::Asia Tokyo 2008を含む他のYAPCにAct経由でログインした事がある場合は、前回と同じID/パスワードを使用してログインしてください。 YAPC::Asia Tokyo 2009の写真をficia.comにアップしました。ficia.comを運営するetolabo.comは今回YAPCスピーカーのうち3人

  • Perl App EngineをMac OS Xで動かすまで。 - D-6 [相変わらず根無し]

    Perl App EngineをMac OS Xで動かすまで。 先週末、僕が相方とのんびりとしているとメールが入ってきた。「アイデアがあるんだけど」とメール始まるが、僕はピンと来た。これは「やってくれ」という催促だ。僕は身を固くして続きを読み始めた。 JPAのターゲットのひとつにクラウドコンピューティング サポートってのが入っていて,ec2とかで使うことを考えて ました.が,よく考えるとperl-appengineってのがありますね. ああ、ありますね。そうですね。 誰かYAPCでしゃべってくれるといいんですが〜 うは!くっ。僕は肩書きこそ「長」がつくけど、そんなに偉くないので年上&目上のこの人に「君がやりたまえよぉ」とは言えないので「隙を見つけてやってみよう」と思った。 月曜、きっとやらないとなんか言われるだろうなぁ、と思いつつも忙しくてなにもできなかった。そして今日。メールを山のように

    lyokato
    lyokato 2009/07/08
  • about Test::More::done_testing - tokuhirom's blog

    Test::More::done_testing が導入されているわけですが、みなさんつかってますか? Test::More の 0.87_01 から導入されてる新機能なんですが 0.87_01 Sun Mar 29 09:56:52 BST 2009 New Features * done_testing() allows you to declare that you have finished running tests, and how many you ran. It is a safer no_plan and effectively replaces it.というわけで、無計画な人でも安全な感じになります。 具体的には以下のような感じ。 15:24 tokuhirom: plan の逆っていうか 15:25 tokuhirom: plan で数を書くのめんどいじゃんすか 15

    lyokato
    lyokato 2009/07/06
  • Test::系のモジュールを書いている人は要注意 - Charsbar::Note

    詳細はuse Perl;の記事とコメントにある通りですが、最新の開発版Test::Moreでサブテストの導入が始まっています。これをサポートするためにTest::Builderに修正が加わったため、Test::Builder->newがシングルトンを返すことを前提にしているテスト系モジュールは今後期待した動作をしなくなる可能性があります。 http://use.perl.org/~Ovid/journal/39193 dagolden氏が用意したfalse-positiveなものを含むリストによると、あぶないのはこのあたり。 GFUJI/Test-LeakTrace-0.08.tar.gz GFUJI/Test-LeakTrace-0.09.tar.gz KOGA/Test-Perl-Metrics-Simple-0.1.tar.gz MIYAGAWA/Test-Synopsis-0.04

    Test::系のモジュールを書いている人は要注意 - Charsbar::Note
    lyokato
    lyokato 2009/07/01
  • OpenID-Lite-0.01_04 - Yet Another OpenID Consumer/Server support library - metacpan.org

    bugfix: Util::URI::is_uri doesn't work as expected with URI which has fragment. It is bad on a provider that supports identifier recycling. Thanks to okamuuu Fixed extension parameter handling. Thanks to hirose31 https://github.com/lyokato/p5-openid-lite/commit/e423d6d371fb5f58b03ec33a7c4ce6e32b3ac6e0

    lyokato
    lyokato 2009/06/30
    あげといた
  • 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

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    lyokato
    lyokato 2009/06/13
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    lyokato
    lyokato 2009/06/12
  • YappoLogs: Data::Model っていう ORM みたいの CPAN にあげたよ

    Data::Model っていう ORM みたいの CPAN にあげたよ あざーす。循環参照しすぎるとバターになる。。なんでそんなに人の目を気にするのだろうと、マジレス。 早速ですが Data::Model っていう O/Rマッパー 的な物を CPAN にあげました。 Data::Model http://github.com/yappo/p5-Data-Model/tree/master 元来は MVC モデルで言う所の Model を一括でまかなえるつもりで実装していますが、ロジック処理は普通の Perl のクラスで書いちゃった方が潰しが聞くため、主にストレージを Perl のオブジェクトにマッピングする ORM 的な使い方が主流となっています。 そして、 Data::Model の多くの実装や設計などは Data::ObjectDriver を参考にして開発しました。 他にも後述して

    lyokato
    lyokato 2009/06/11
  • namespaceを使ったDBIx::Classのスキーマ構成 - hide-k.net#blog

    良くあるDBICのサンプルではDBIx::Class::Schema::load_classes()を使ってクラスのロードを行っています。 CD.pm package CD; use strict; use warnings; use base 'DBIx::Class::Schema'; __PACKAGE__->load_classes; 1; load_classes()はクラスを指定しないと CD Album Track という構成において自動的にクラスをロードすることができます。 ここでResultSetの拡張をしたいと考えます。例えば CD/ResultSet/Album.pm package CD::ResultSet::Album; use strict; use warnings; use base 'DBIx::Class::ResultSet'; sub search

  • HTTP::Engineでテスト : As Sloth As Possible

    そう言えばこないだのうどん屋のコードは一切テストを書かなかったけど、それはよろしく無い、まったくもって主義に反するし、RubyのときはちゃんとSpec書いたのにPerlのときは書かないだとかふざけてる、と思ったのでテストも書いてみることにした。 さてテストだけど、HTTP::Engineにはちゃんとテスト用のインターフェースが用意されている。あと、テストリクエストを生成するモジュールもある。なんだ、じゃあ話は簡単だ。 interface => { module => 'Test' } でengineを作る HTTP::Engine::Test::Requestでrequestを作る engineのrunメソッドにテストリクエストを投げてやる 返ってきたレスポンスをチェックする ってことですね、わかります。 まずは素直に書いてみる コード量少ないのではっつけちゃおう。Udon::AppにGE

    HTTP::Engineでテスト : As Sloth As Possible
    lyokato
    lyokato 2009/06/02
  • Catalyst ベースのアプリケーション設計(構想) - Craftworks Tech Blog - Branch

    Catalyst は Web アプリケーションを開発するときに、フレームワークとしてとても便利です。 ひとつの Web サービスを作ろうとすると、以下のような様々な処理が必要になってきます。 ユーザーに見せるWeb インターフェイス アクセス集計などの日次バッチ処理 アバター画像などの生成・変換処理 ユーザー通知やメルマガ配信などのメール送信処理 これを、すべて Catalyst にやらせてしまうと、プロセスが太りすぎてしまいますし、アプリケーション設計として不自然です。 結論から先に言ってしまうと、モデルやロジックだけでなく、ヴァリデーション処理なども Catalyst から分離してしまい、Catalyst はリクエストのディスパッチと View だけを担当するのがスマートで、拡張・メンテナンス・テストがしやすいやり方なのかなと、最近うっすらと考えています。Catalyst 在りきではな

    Catalyst ベースのアプリケーション設計(構想) - Craftworks Tech Blog - Branch
  • DBIx::Class - Japan Perl Association Wiki

    トレース DBIx::Classで複雑なクエリを行っている場合、実際に発行されているクエリをみる必要がある場合があります。そのような場合は環境変数DBIC_TRACEを設定してスクリプトを実行すると実行されているクエリをみることができます: DBIC_TRACE=1 myscript.pl クエリが多くて一度に追うのが難しい場合はこの出力をファイルに向けることもできます。 DBIC_TRACE=1=/path/to/query.log myscript.pl トランザクション DBIx::Class 0.08100以上をお使いであれば、明示的に何も指定しなくてもDBIx::Class::Storage::TxnScopeGuardを使用することができます。 #!/usr/bin/perl use strict; use MyApp::Schema; my $schema = MyApp::

  • 第8回 Reaction:CatalystをもっとDRYに | gihyo.jp

    アプリケーションの枠組みを越えた再利用 前回は、Catalyst 5.7で登場したチェーンドアクションを利用して適切なベースコントローラをつくれば、CRUDのような定型処理は再利用できるようになる、という話をしました。これはコンテントマネジメントシステム(CMS)のように同じようなインタフェースを持つ画面が多いシステムをつくるときには特に効果的なのですが、その再利用を、ひとつのアプリケーション内だけで完結させてしまうのはもったいない話。自社でつくるアプリケーションにはどんどん使い回していきたいものですし、コピー&ペーストを避けるためには、なんらかの名前空間上にその共通コードをまとめていく必要があります。 もちろんそのコードが小さく、十分に一般化できるものなら、Catalyst、あるいはCatalystXという名前空間に入れてもかまいませんが、コントローラの部品だけでなく、モデルやビューまで

    第8回 Reaction:CatalystをもっとDRYに | gihyo.jp
  • 面白ラボBM11(ブッコミイレブン) 2009: Ark

    Ark CGIでも実用的に使うことが出来るCatalystライクなウェブアプリケーションフレームワーク 2009.06.01 ArkはCatalystの流れをくむPerl製のウェブアプリケーションフレームワークです。 カヤックのBM11ブッコミイレブンのような大量に小さなアプリケーションを開発するような現場においてはCatalystのような大規模なフレームワークは逆に足枷になってしまう場合があります。 「もっと軽いけどCatalystっぽくつかえるフレームワークが欲しい・・・!」 というラボ内の要望に応えて新しいフレームワークを開発しました。 といっても一から開発したのではなく、最近のPerlにはHTTP::Engineという「フレームワークをつくるためのフレームワーク」とも言える素晴らしいライブラリがあり、そのライブラリの上で開発を行っています。 HTTP::Engineを使用するとCG

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    lyokato
    lyokato 2009/05/29
  • 連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)