タグ

jpac2010に関するhide_o_55のブックマーク (22)

  • PerlIO::via で遊ぶ - JPerl advent calendar 2010 acme Track

    こんにちは、こんなにトミールを名乗っているのにいつまでたってもトミールの検索結果が抗ウイルス製剤のトミールです。今年も1位奪還は失敗しました。 さて、今日は Acme じゃないんだけど限りなく Acme ぽい PerlIO::via をご紹介しましょう。 役に立つ PerlIO 基礎知識(Acme に入る前に) perl の IO レイヤーは、実はいろいろできて便利です。一番便利なのは、:encoding() でしょう。 こういう、 use autodie; use Encode; open(my $fh, '<', 'file.txt'); while (my $line = Encode::decode('cp932', <$fh>)) { print Encode::encode('utf-8', $line); } 入力を cp932 エンコーディングで decode()、出力は

    PerlIO::via で遊ぶ - JPerl advent calendar 2010 acme Track
    hide_o_55
    hide_o_55 2010/12/24
    最後の文にやられたwww
  • アレしたあとにコレしたい! - Articles Advent Calendar 2010 Hacker

    アレしたあとにコレする 「ファイルが変更されたらXXXしたい」ということは日常よくあるんじゃないかと思います。例えば: スクリプトファイルを編集していて、保存したらすぐに実行して試したい HTML, CSS, JavaScript ファイルを編集していて、保存したらすぐにブラウザをリロードして確認したい 秘蔵のアレコレを保管しているディレクトリにだれかcdやlsしてきたら、自動的に当該ディレクトリをrm -frしたい。 などなど。 今までは、Linux の Inotify という機能を Perl から使うためのモジュールLinux-Inotify2を使ったスクリプトを書いて使っていたのですが、とりあえずぼへらっと書いたものだったので、 監視スクリプト起動後に、新規追加されたファイルが監視対象にならない Linux でしか動かない というイケてない点がありました。 というわけで、今回書き直し

    アレしたあとにコレしたい! - Articles Advent Calendar 2010 Hacker
  • 使っちゃいけない標準モジュール - Articles Advent Calendar 2010 Casual

    gfxと申します。 Perlは後方互換性を重視しているので、標準モジュールはめったに取り除かれる事がありません。しかしそれでも、いくつかのモジュールが将来的に取り除かれる見込みです。そのようなモジュールは使用しないほうがいいでしょう。また、取り除かれはしないものの、様々な理由から使用すべきでないモジュールもいくつかあります。今日は、そういった使うべきでないモジュールを紹介します。なお、このエントリの対象バージョンは5.8から5.14を想定しています。 さて、まずは取り除かれるモジュールです。現在のところ、以下の三つのモジュールが5.14でコアから削除される予定です。 Class::ISA Pod::Plainer Switch Class::ISAはクラス階層を直列化するモジュールですが、5.10以降はmroに取って代わられました。5.10未満のバージョン用にはMRO::Compatが用意

    使っちゃいけない標準モジュール - Articles Advent Calendar 2010 Casual
  • Email::MIME::MobileJPで文字コードまわりに気をつかわないでメールの送受信をおこなう - Articles Advent Calendar 2010 Hacker

    メール関係のモジュールをとりまとめて、カジュアルにつかえるようにするためのモジュールをかいてみました。 メールの受信(Parsing) メールのパーズは、以下のように、メールの文字列をくわせてやればいいです。 use Email::MIME::MobileJP::Parser; my $src_text = do { local $/; <> }; my $mail = Email::MIME::MobileJP::Parser->new($src_text); メールオブジェクトから Subject をえるには以下のようにしましょう。 ここでとれるものは MIME ヘッダにはいっている情報をもとに、UTF-8 に decode された文字列です。 可能ならば絵文字も decode します。これには [Encode::JP::Mobile](http://search.cpan.org/p

    Email::MIME::MobileJPで文字コードまわりに気をつかわないでメールの送受信をおこなう - Articles Advent Calendar 2010 Hacker
  • Acmeを越えて - 依存されるAcme - Articles Advent Calendar 2010 Acme

    (firstly written in Japanese, later in English) こんにちは。makamakaです。今日は他のCPANモジュール(Acme以外)に依存*1されている希有なAcmeの紹介をします。 ご存じの方も多いAcme::Damnです。blessでパッケージに紐づけられたリファレンスを解除します。 use strict; use Acme::Damn; my $obj = bless {}, 'Foo'; print ref $obj,"\n"; # => Foo damn( $obj ); print ref $obj,"\n"; # => HASH 恐ろしいですね。素晴らしいですね。 forksというCPANモジュールが重複してDESTROYの呼び出しをしないようにするために依存しています。今日のcasualトラックの記事にforksの紹介を書きました。

    Acmeを越えて - 依存されるAcme - Articles Advent Calendar 2010 Acme
  • Acme::HeptaSymbolizeで7記号プログラミング - JPerl advent calendar 2010 acme Track

    こんにちは、@sugyanです。 先日、[/articles/advent-calendar/2010/sym/:title=sym track]にて"[/articles/advent-calendar/2010/sym/12:title=7種類の記号だけでPerlプログラムを書く]"という記事を書きまして、せっかくノウハウが出来たので一応モジュール化しておこうと思い"Acme::HeptaSymbolize"というものを作りました。 リポジトリはこちらです。 https://github.com/sugyan/Acme-HeptaSymbolize 特に依存は無いはずなのでサクっとインストールできると思います。 ■使い方 まぁ先に書いておきますと、ぶっちゃけAcme::Bleach系の自己書き換えモジュールです。 Acme::EyeDropsのようなものではありません。 例えば、こんな

    Acme::HeptaSymbolizeで7記号プログラミング - JPerl advent calendar 2010 acme Track
  • Text::MeCab(日本語変換系Acmeモジュールを支える偉大なモジュール) - Articles Advent Calendar 2010 Acme

    こんにちは、とみたトミールです。 Text::MeCabに依存しているモジュールリストがAcmeばかり、しかもかなりぼくのモジュールじゃないかwと気づいたので、この偉大な日語変換系Acmeモジュールを支えるText::MeCab様についてあらためて使い方を紹介してみます。 mecabとは mecabとは、日形態素解析を高速に、未知語もいい感じで補足してくれるよくできたライブラリです。作者の方はGoogleにいて(今も、たぶん。)エイプリルフールに日語お笑い系機能を出したりしています(それが職じゃないと思いますけど)。 インストールすると入るmecabコマンドから、コマンドラインではこんな感じに使います。mecabを起動してから、文を入力してエンターです。 $ mecab わたしはたわしをわたしました。 わたし 名詞,代名詞,一般,*,*,*,わたし,ワタシ,ワタシ は 助詞,係助

    Text::MeCab(日本語変換系Acmeモジュールを支える偉大なモジュール) - Articles Advent Calendar 2010 Acme
  • Perl で Amazon S3 をあつかう Net::Amazon::S3 - Articles Advent Calendar 2010 Casual

    もつ鍋で有名な福岡から来ました @dragon3 です。 Amazon S3 はみなさんご存知かと思いますが、流行りのクラウドなストレージサービスですね。 最近1ファイルで5TBまでOKになったのですが、5TBってどんなファイルや?...と悩む日々です。 その Amazon S3 を Perl からあつかうためのモジュール Net::Amazon::S3 を紹介します。 クライアントを準備する ファイルをアップロードやダウンロードするために、 まずは接続するためのクライアントオブジェクトを準備します。 use Net::Amazon::S3; my $aws_access_key_id = 'XXXXXXXXXXXXXXXXXXXX'; my $aws_secret_access_key = 'WwWwWwWwWwWwWwWwWwWw'; my $s3 = Net::Amazon::S3-

    Perl で Amazon S3 をあつかう Net::Amazon::S3 - Articles Advent Calendar 2010 Casual
  • Acme::BrainfucktoryでBrainf*ckをもっと簡単に - Articles Advent Calendar 2010 Acme

    (firstly written in Japanese, later in English) こんにちは。もうだいたい持っているネタは尽きかけてるmakamakaです。 今日は以前作ったAcme::Brainfucktoryについて記事を書きます。このモジュールはAcme::Brainfuck系のモジュールをお手軽につくるためのモジュールです。なお、Brainf*ckについては素晴らしいことにsym track 1日目でも取り上げられていますので、そちらをご参照ください。 さて、CPANにはAcme::Brainfuck、Acme::Ookなどのbrainfuck系Acmeモジュールがいくつかあります。またAcmeではなくLanguage系モジュールとしてLanguage::BF(brainfuckを扱う)さえあります。 で、これらは基的に8種類のコードとオペレーションが対応しているだ

    Acme::BrainfucktoryでBrainf*ckをもっと簡単に - Articles Advent Calendar 2010 Acme
    hide_o_55
    hide_o_55 2010/12/17
    すばらしい
  • Perl から Growl をちゃんと使おう - Articles Advent Calendar 2010 Hacker

    こんにちわ。Growl 大好きっ子 typester です。 重たいバッチジョブを走らせている間、別の作業をする。ジョブが終わったらデスクトップに Growl を表示させて処理の完了を知る。 その合間にもRSSから配信されたニュースや自分への Mention を Growl 表示し、あっという間に情報を操作する。 誰もが憧れる Hackish な作業風景ですね。Mac ユーザであればその他の活用方法を知ってる人も数多くいるでしょう。 でもperlbrewで64bit perlいれてるからMac::Growlがうまくインストールできないし... そんな風に思っていた頃が僕にもありました。 Cocoa::Growl http://search.cpan.org/dist/Cocoa-Growl/ そんな不満を打破するべく僕は Cocoa::Growl を書いた。 XS で Objective-

    Perl から Growl をちゃんと使おう - Articles Advent Calendar 2010 Hacker
    hide_o_55
    hide_o_55 2010/12/16
    typester++
  • Acme合体で猫-トースト装置をつくる - Articles Advent Calendar 2010 Acme

    (firstly written in Japanese, later in English) ワタシハ makamaka コンゴトモヨロシク・・・ 皆さん、-トースト装置(バターのパラドックス)ってご存じですよね? A - バターの塗られたトーストを落とすとバターの面が下になって床に落ちる B - を高いところから落とすと足から着地する AとBより、の背中にバターの塗られた面を上にしたトーストをつけて落とすと永久に床に着地しない 今日はこの-トースト装置のAcmeモジュールをつくってみたいと思います。ご用意するものは  1Acme トースト 1Acme CPANにはに関するモジュールがいくつかありますが、日はAcme::Meowを使いましょう。このモジュール、機能は少ないですがPerl上で子が飼える優れもの。 しかしここで残念なお知らせ。CPANにはAcme::Toas

    Acme合体で猫-トースト装置をつくる - Articles Advent Calendar 2010 Acme
    hide_o_55
    hide_o_55 2010/12/16
    悪魔合体をする邪教の館なモジュールを思いついたけど、作る時間が無い
  • HTML::Shakanでフォーム生成・バリデーションからモデル作成まで - JPerl advent calendar 2010 casual Track

    こんにちは!先日のYAPC2010ではhirataraさんと共にgihyo.jpでレポータをさせていただいたusuihiroです。 フォーム処理とかバリデーションっていつも面倒だなぁと思っていたのですが、今日はtokuhiromさんが作成されているHTML::Shakanが便利そうだったので試してみました。 HTML::Shakanはフォームタグの生成とバリデーションを行ってくれるモジュールです。 コンセプトは作者のtokuhiromさんが書かれているこちらを参照。 フォーム生成とバリデーション よくあるログインフォームだと、こんな感じでフォームの生成の入力値のバリデーションが行えます。 my $req = shift; # CGIとかPlack::Requestとか # フォームオブジェクトを作る my $form = HTML::Shakan->new( fields => [ Ema

    HTML::Shakanでフォーム生成・バリデーションからモデル作成まで - JPerl advent calendar 2010 casual Track
  • Sub::Argsによる高速簡易バリデーション - Articles Advent Calendar 2010 Hacker

    再登場のnekokakです。 みなさん、method引数のチェックってやってますか! 引数のバリデーションをやりたければCPANに色々転がっています。 一番有名なのはParams::Validateですね。 Params::Validateを使えば 引数の有無だけでなく型チェックまで行えたりさらにdefaultの値を設定したり色々便利な昨日が満載てんこ盛りです。 ただ遅い!遅すぎます!日が暮れます! どういう単位でmethodの引数チェックを行うかは人それぞれプロジェクトそれぞれだと思いますが、 固くプログラムを書いておりmethodの引数チェックをカッチりやっている場合、 loopでそのメソッドを呼び出しまくるとその分Params::Validateがよばれるので パフォーマンス的によろしくありません。 とても残念な感じです。 そこで日PerlHacker達が立ち上がりました! Sm

    Sub::Argsによる高速簡易バリデーション - Articles Advent Calendar 2010 Hacker
  • SQL::Makerで動的に SQLを生成する - Articles Advent Calendar 2010 Hacker

    どうもこんにちは。hacker track がやる気なさすぎるのでもう一回かくよ!というわけで tokuhirom ですこんにちは。こんにちは。 さて、最近つくった SQL::Maker というモジュールについて紹介します。SQL::Maker は、要は SQL::Abstract みたいなやつです。じゃあなんで SQL::Abstract じゃなくて SQL::Maker なの?ってことになるわけですが、 SQL::Abstract は実績があるし、非常に便利なんですが、いかんせんコードがまじよみづらいっていうかこれよむの無理じゃね!!ってことをおもうので、あたらしくつくったという次第。 また、SQL::Maker は method chain で SELECT 文を構築する機能もついてます。あらべんり。こんなかんじ↓↓ my $sql = SQL::Maker::Select−>new

    SQL::Makerで動的に SQLを生成する - Articles Advent Calendar 2010 Hacker
    hide_o_55
    hide_o_55 2010/12/15
    あとで試してみよう
  • 時にはお伽の話を - Acme::Rumpelstiltskin - Articles Advent Calendar 2010 Acme

    (firstly written in Japanese, later in English) こんにちは、前回2回の記事が受けなく軽く凹み気味のmakamakaです。今日はまず最初にお伽話をしましょう。ご存じの方も多いと思いますが、ルンペルシュティルツヒェン(ランペルシュティルツキンなど日語表記は色々)というドイツの童話です。日Wikipediaのルンペルシュティルツヒェン(英:Rumpelstiltskin)に細かい説明がありますが、かいつまんでいうと: 粉挽屋が「うちの娘は藁を紡いで黄金に変えれるよ」とテキトーなこと言ってたら、王様が「じゃ、明日の朝までにやってみせて。お后にしてあげるから。出来なきゃ首チョンパね」と娘を塔に幽閉。 娘さん困り果てて泣いていると、小人が出てきてコンニチハ。娘の身につけてるものと交換で藁を金に変えてくれましたとさ。 ところが、できあがった金を見た王

    時にはお伽の話を - Acme::Rumpelstiltskin - Articles Advent Calendar 2010 Acme
    hide_o_55
    hide_o_55 2010/12/15
    そういえば、似た感じのでAcme::Class::TypoSafeとかありましたね
  • Acme::Seclusion::JP - Articles Advent Calendar 2010 Acme

    こんにちは。Acme Track 2回目のhide_o_55です。 今回紹介させて頂くのは、Acme::Seclusion::JPです。 このモジュールを使用すると江戸時代のような鎖国状態を実現できます。 具体的には日中国韓国、オランダ*1以外のモジュールは使用できなくなります。 use Acme::Seclusion::JP; use Moose; 上記のようにMooseを使うと標準エラー出力にエラーメッセージを出力しexitします。作者が日人のMouseなら通常動作をします。 この動作をどのようにして実現しているかというと、http://perldoc.perl.org/functions/require.html にも書かれている、@INCに[コードリファレンス|オブジェクト]を入れるテクニックを使用しています。@INCにコードリファレンスが含まれている時にモジュールをロード

    Acme::Seclusion::JP - Articles Advent Calendar 2010 Acme
    hide_o_55
    hide_o_55 2010/12/14
    書きました。 #jpac2010
  • Acme::W - Articles Advent Calendar 2010 Acme

    こんにちは、冬なのに脇からの発汗が凄まじいdameninngennです。 脇周りが白くなってるインナーを確認してはニッコリする毎日です。 さて、先日Acme::Wなるモジュールを書いてみましたので今回はその紹介をさせて頂きます。 このAcme::Wというモジュールもacme Track 8日目を担当されたhide_o_55さんのAcme::Tsuと同様にソース書き換え系のモジュールです。 使い方は簡単。cpanからAcme::Wをインストールし、先頭に「use Acme::W;」と書くだけです。 use Acme::W; use strict; use warnings; print "Hello Acme World!!\n"; 上記のスクリプトを実行すると % perl w.pl Hello Acme World!! と表示され、ファイルが下記のように書き換わります。 use Acme

    Acme::W - Articles Advent Calendar 2010 Acme
    hide_o_55
    hide_o_55 2010/12/13
    wwwwwwwwwwwwwwwwww
  • Cache::LRU が速い理由 - Articles Advent Calendar 2010 Hacker

    先日、オンメモリなキャッシュモジュール Cache::LRU を書きました。Kazuho's Weblog: Cache::LRU (a handy and fast in-memory cache module in pure-perl) を見ていただければ、Cache::LRU が他のモジュールより速いことは明らかだと思います。速度差の原因としては機能や実装上の差異もあるのですが、設計上の工夫も Cache::LRU が速い理由のひとつです。 LRU (Least Recently Used) アルゴリズムを備えたキャッシュを実装しようと思うと、 エントリルックアップのためのハッシュ アクセス順を表現するためのリスト の2種類を組み合わせる必要があります。リストを表現する手法としては配列を利用するものとリンクリストを利用するものがありますが、Perl だと前者のほうが速い、ということは

    Cache::LRU が速い理由 - Articles Advent Calendar 2010 Hacker
  • 7種類の記号だけでPerlプログラムを書く - Articles Advent Calendar 2010 Sym

    ■前回のおさらい 前回は、"Hello world!"を出力するPerl記号プログラムとして以下のものを作成しました。 '' =~ ('(?{'.( ('['^'.').('['^'(').('`'|'%').' '.('['^'(').('['^'/').('['^')').('`'|')').('`'|'#').('['^'/').';'. ('['^'.').('['^'(').('`'|'%').' '.('['^',').('`'|'!').('['^')').('`'|'.').('`'|')').('`'|'.').('`'|"'").('['^'(').';'. ('['^'+').('['^')').('`'|')').('`'|'.').('['^'/'). (' +"'.('`'^'(').('`'|'%').('`'|',').('`'|',').('`'|'/')

    7種類の記号だけでPerlプログラムを書く - Articles Advent Calendar 2010 Sym
  • Windows でも Growl を使おう - Articles Advent Calendar 2010 Win32

    こんにちわ。Growl 大好きっ子 mattn です。 重たいバッチジョブを走らせている間、別の作業をする。ジョブが終わったらデスクトップに Growl を表示させて処理の完了を知る。 その合間にもRSSから配信されたニュースや自分への Mention を Growl 表示し、あっという間に情報を操作する。 誰もが憧れる Hackish な作業風景ですね。Mac ユーザであればその他の活用方法を知ってる人も数多くいるでしょう。 Windows だから同じ様には行かない... そんな風に思っていた頃が僕にもありました。 Growl For Windows http://www.growlforwindows.com/gfw/ そんな僕らはある日 Growl を得た。リッチな UI そして変更出来るデザイン。アイコンも表示出来る。さらにはプロトコルが公開されている。 http://www.gr

    Windows でも Growl を使おう - Articles Advent Calendar 2010 Win32