Perlとperlに関するperlcodesampleのブックマーク (1,930)

  • AnyEventとかCoroとかがいまだに理解できていない - すぎゃーんメモ

  • Coro で Executor/CompletionService - はこべにっき ♨

    Java並行処理プログラミング ―その「基盤」と「最新API」を究める― をぱらぱらめくっていて出てきた、以下二つをCoroで実装してみた。 並行処理タスクの実行方法を抽象化した Executor タスクの生成とその消費を分離する CompletionService 実装とか例とかぺたぺた貼ってたらすごい長くなっちった。 gistにもあります > http://gist.github.com/191924 。 まとめ (長いので先に結論) ExecutorやCompletionServiceのようなパターンにそってプログラムをかくと、すっきりと並行処理プログラムを構成できて良い感じ。Coroでも簡単に実装できる。 これまでやられたことに名前を付けただけという話もあるけど、名前をつけて区別して理解しておくと、コード読むときの思考が整理されて良いとおもう。 Executor Executorと

    Coro で Executor/CompletionService - はこべにっき ♨
  • DBIx::Skinnyを使った際のPaging方法考察 - Hatena::Diary::Neko::kak 500 Internal Server Error

    DBIx::Skinnyにはネイティブにpagingをしてくれる便利機能はありません。 (最近ないないばっかり言ってるな) DBICとかだと$rs->pagerみたいにしてData::Pageのオブジェクトを返してくれるんですが、 Data::Pageのオブジェクトを作る際に、内部でcountを発行しています。 pagingするにはSQLにLIMIT/OFFSETをかけてると、思うのでLIMIT/OFFSETを掛けなかった際の トータルな件数を取るためですね。 結構このcountが馬鹿にならないくらい内部で発行されることがあるのでSkinnyではあえてサポートしなかったです。 あと、独自にSQLを書かせる事をお題目にあげているので、 独自に書かれたSQLを内部でごちゃごちゃしてcount発行するとかヤッテラレナイてのもあります。 ただ、アプリを作ってる時にpagingは必須なのでどうすれば

    DBIx::Skinnyを使った際のPaging方法考察 - Hatena::Diary::Neko::kak 500 Internal Server Error
  • AnyEventでtail -f - Kentaro Kuribayashi's blog

    AnyEventの練習をしてみようってんで、とりあえずtail -fぽいのを書いてみる。こんなんでいいんだろうか……。よくわからない。 #!/usr/bin/env perl use strict; use warnings; use AnyEvent; use AnyEvent::Handle; $| = 1; my $file = shift or die qq{usage: $0 filename}; open my $fh, '<', $file or die qq{can't open file: $file}; my $cv = AE::cv; my $handle = create_handle(); sub create_handle { new AnyEvent::Handle fh => $fh, on_error => sub { my ($handle, $fata

    AnyEventでtail -f - Kentaro Kuribayashi's blog
  • YappoLogs: AnyEvent はじめ

    AnyEvent はじめ そろそろAnyEventでもやってみようと思ったので AntEvent::Handle いわゆるIOまわりの面倒を色々便利にやってくれる君。イベントベースなIOと言うよりかはevent queueなIOみたいな捉え方するとすんなり。 read/writeの処理はqueue的な感じで登録できるの。 ->push_read() で、どんどんqueueにreadイベントを登録してく。fhがreadableになったらread queueがどんどん処理されるってわけ。 ->unshift_read() だと、queueの先頭に突っ込んでく。 そう、まさしくperlのarrayへのpush/unshiftそのもの。AnyEvent::Introを読むとその辺の命名に関する思いが読める。 ->push_write() だと、writeイベントを登録してく。writeできるように

  • PSGI/Plack勉強会 - Kentaro Kuribayashi's blog

    PSGI/Plack勉強会を開きました(ひとりで)。資料はGitHubにあげてあります。いろいろまとめ書き足りてないのですが、自分的には納得したので満足してしまいました。 http://github.com/kentaro/psgi-study 以下にもコピペ。 PSGI/Plackとは? PSGI = Perl Web Server Gateway Interface Specification WebサーバとWebアプリケーションとの間のインタフェイス仕様 Plack = PSGIのリファレンス実装 PSGI実装のひとつ(とはいえ、やたら気合いの入った感じになってるけど) PSGI != Yet Another WAF PSGI != Plack PSGI策定の背景 各Webアプリケーションフレームワークがバラバラに実装していた、WebサーバとWebアプリケーションとのインタフェイスを

    PSGI/Plack勉強会 - Kentaro Kuribayashi's blog
  • ArduinoとAnyEventを使って,モールス信号でSOS ! - file-glob こと k.daibaの日記

    AnyEventでタイマー YAPC::Asiaでの宮川さんの発表を聞いて perl -MAnyEvent -le ' map{ $i = $_; my $c = AnyEvent->condvar; my $w; $w = AnyEvent->timer( after => $i, cb => sub {$w; print "OK"; $c->send}); $c->recv }(0.1,0.5,1,2,0.1)' なんてワンライナーで簡単なタイマーを作れる事を知りました.それで思いついたのがモールス信号,テキストを入力すると何かちかちかと点滅するものを作ってみようと思いました.まず,CPANでMorseをキーワードにして検索してみたところ,モジュールはいくつかでてきましたが,テキストを短点('-')と長点('ー')に変換するものばかりで,長点が短点の何倍の時間なのかなんてことはわかりま

    ArduinoとAnyEventを使って,モールス信号でSOS ! - file-glob こと k.daibaの日記
  • 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

  • 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

  • utf8プラグマでfat commaを使うと左辺がdecodeされるバグ(perl-5.10.2で修正予定) - このブログはURLが変更になりました

    id:miyagawa さんからTwitterで教えてもらったネタ。Twitterだけで完結するのはもったいないのでここに書いておく。 元ネタはこちら。matsuuNet::Twitter/Net::Twitter::Lite最新版のencode/decode周りがおかしい。utf8プラグマとLWPが絡むともうなんつーかバッドノウハウのオンパレードですよ。 ( 2009-08-27 00:14:01 )miyagawa@matsuu 3.04005 でなおしたはずなんですがね。update() には decode したのを渡さないとだめです。 ( 2009-08-27 00:15:31 )miyagawa@matsuu 動作がおかしいスクリプトをみせてもらえれば対応できます。ただし Net::Twitter 3.x で直したのは、2.xでたまたま動いていた(utf8 バイトを渡せばなんとな

  • 『【勉強!】YAPC::Asia 特別研修 「Perl, Unicode, and AJAX」 2』

    PC初心者から社内IT担当くらいまでを対象と想定しているLifeHack系ブログ。私のPC活用ノウハウ等を記したり興味ある分野についてを綴ります。 富永です。 昨日の特別講義においての課題と私の回答(ググっていろいろコピペしてこしらえた)はこんな感じでした。 printenvをHTML化せよ #!/usr/bin/perl use strict; use warnings; print "Content-type: text/html\n\n"; print "<html>\n"; print "<head><title>ex1</title></head>"; print "<body>"; print "<center>\n <table border>\n"; foreach $a (keys(%ENV)){ print " <tr> <td>$a</td> <td>$ENV{$a}

    『【勉強!】YAPC::Asia 特別研修 「Perl, Unicode, and AJAX」 2』
  • DBIx::Skinnyを使った際のCache方法考察 - Hatena::Diary::Neko::kak 500 Internal Server Error

    DBIx::SkinnyにはDODやData::Modelのようにキャッシュを透過的に扱う 便利機能はありません。 無いのでラッパーを書きませう。 毎度の事でデモは http://github.com/nekokak/p5-dbix-skinny-sample/tree/master/cache/ に置いてあります。 ユーザテーブルがあるとします。 CREATE TABLE user ( id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(255) NOT NULL, UNIQUE(name) ); ユーザの情報をキャッシュからひけなければDBから引っ張って キャッシュしておき、次に使う時はキャッシュデータを使うという典型的なパターンです。 userテーブルの定義などはこのようにします。 今回はinflate/deflateも一緒にやってみ

    DBIx::Skinnyを使った際のCache方法考察 - Hatena::Diary::Neko::kak 500 Internal Server Error
  • Perl Script Laboratory

    ログ last updated on 新着情報リスト フォームデコードサービスV2 郵便番号検索 文字コードチェック サポート掲示板 PSLブログ このサイトについて トップページのアイコンたち サポートについて プライバシーポリシー 著作権表示の削除をしたい方へ お問い合わせ/依頼/申請窓口 フリープログラム利用規約 設置代行等に関する規約 登録事業者リスト 特商法に基づく表示 設置代行サービス カスタマイズサービス オーダーメイドサービス 手数料・設定項目一覧表 CGI・SSIの基礎の基礎 読むとためになるの紹介(3) 読むとためになるの紹介(4) CGI環境変数 UNIXの基礎の基礎 基認証の方法 ASCIIコード一覧表 文字化けする文字一覧表 "^"(0x5e)を含む文字一覧表 "|"(0x7c)を含む文字一覧表 SMTP応答コード一覧表 アクセスカウンタ アクセス統計版 v

  • IM::EngineとStardustで3分クッキング - あくる日

    YAPC::Asia 2009で(少なくとも個人的に)話題だったセッションから、StardustとIM::Engineを使って3分クッキングしてみる。(実際どのくらいかかるかはよくわからん。) 概要 Stardust(CPAN, github)は簡単に使えるCOMETサーバ。COMETでStardust…ああ、ネーミングセンスが良すぎる…。てのはともかく、COMETのデモはやっぱりインパクトがあって楽しい。起動すると/channel/の下にAPIが出来て、外からそいつに適当にアクセスすれば話は済むようになっている。APIにPOSTしてあげればデータが登録されて、APIからGETすることで引き出せるってわけだ。 IM::Engine(CPAN, github)はAPI Designのセッションで登場するのだけれど、HTTP::Engineのように使える(らしい)Instant Messagi

    IM::EngineとStardustで3分クッキング - あくる日
  • blog.paz-para.com – このドメインはお名前.comで取得されています。

    このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2024年5月時点の調査。

  • 『AnyEvent::Intro チョー訳 その1 - download_takeshi’s diary』へのコメント

    ブックマークしました ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください Twitterで共有

    『AnyEvent::Intro チョー訳 その1 - download_takeshi’s diary』へのコメント
  • cpan で古いバージョンのモジュールをインストールする方法 - daily dayflower

    m コマンドでモジュールの情報を調べます。 $ cpan ... snip ... cpan[1]> m DBIx::DBSchema Module id = DBIx::DBSchema DESCRIPTION Database-independent schema objects CPAN_USERID IVAN (Ivan Kohler <ivan-pause@420.am>) CPAN_VERSION 0.33 CPAN_FILE I/IV/IVAN/DBIx-DBSchema-0.33.tar.gz UPLOAD_DATE 2007-06-29 DSLIP_STATUS bmpOp (beta,mailing-list,perl,object-oriented,Standard-Perl) INST_FILE (not installed) 現在のメンテナの PAUSE ID が

    cpan で古いバージョンのモジュールをインストールする方法 - daily dayflower
  • もう CPANPLUS は使わなくてもいいのかも - daily dayflower

    今まで CPANPLUS を使っていた理由は root 以外のユーザが使った場合,インストール時に sudo してくれる インストール済みのモジュールで cpan にさらにあたらしいものがあるかどうか調べることができる モジュールのアンインストールできる モジュールの古いバージョンを検索してインストールしたりできる だったんですが,最近の CPAN.pm って 1, 2 あたりはできるようになってるんですね(がんばれば 3 もできます⇒cpan で古いバージョンのモジュールをインストールする方法 - daily dayflower)。あと force だけじゃなくて fforce や notest とかコマンド指定できるようになってます。 なので, root で最新の CPAN(Bundle::CPAN じゃなくて)をインストール 一般ユーザでインストール時に sudo を使うように設定

    もう CPANPLUS は使わなくてもいいのかも - daily dayflower
  • はてなブログ | 無料ブログを作成しよう

    【献血デビュー】体重が少し足りず400ml献血はできなくとも、献血ルームでの成分献血ならできたぞ、という話 いきさつ 2025年の抱負として「400ml献血をできるようになる」を掲げてから、冬を越し春が過ぎ夏が終わ………なかなか終わらないな……8月も終わろうとしている。記事を書いた頃の体重からは1kgぐらい増えたところだ。 夏バテなんてどこ吹く風とばかりに、ここ数週間は私の…

    はてなブログ | 無料ブログを作成しよう
  • [perl] YAPC::Asia 2009 に行ってきた(1日目) #yapcasia2009 - のぶじゃすBLOG

    YAPC::Asia 2009に行ってきました。 2日間行ってきたんだけど、まとめるのに思ったより時間がかかってしまっているので、 とりあえず一日目の内容です。 Daisuke Maki (‎lestrrat‎) - ‎Welcome 今回からYAPC::AsiaはJPAという団体が主催になり、JPAの代表理事である牧大輔(lestrrat)さんが取り仕切るという形になり、Welcomeなメッセージと、今回のYAPC::Asiaのテーマ3つの「C」の事とか話してました。 Richard Dice - ‎基調講演 (Richard Dice)‎ stable な Project は 既に死んでしまっている。例えばText::Templateとかw 死んでしまったProjectには原因がある。 問題を全部解決してしまったとか 興味が他に移ってしまったとか 次のステップに時間がかかるとか