その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

perl

im.kayacでカジュアルにメッセージ送るPerlのライブラリ作った

im.kayacを使ってカジュアルにメッセージを送るPerlのライブラリ,WebService::ImKayac::Simpleを作成・公開しました.https://github.com/moznion/WebService-ImKayac-Simple https://metacpan.org/release/WebService-ImKayac-Simple im.kayacでメッセージ…

NHK番組表APIを触る為のPerlクライアント作った

去る2014年1月27日にNHK番組表APIが公開され,これが中々良い感じだったので,PerlからそのAPIを触れるクライアントであるWWW::NHKProgram::APIを書きました.https://metacpan.org/release/WWW-NHKProgram-API https://github.com/moznion/WWW-NHKProgram-A…

ファイルハンドルに対するbinmodeの変更が及ぼす影響を小さくしたい

ファイルハンドルをbinmodeで変更して,そのファイルハンドルを用いて何らかの処理を行いたい,という欲求がしばしばあると思います. 単純に書くと以下のようになるでしょう. このコードではファイルハンドルを普通にopenして,それをawesome_function()に…

Text::LTSVの新しいバージョンではメソッドにファイルハンドルを渡せるようになって便利

Text::LTSVのparse_fileとparse_file_utf8には元々ファイルパスしか引数として与えられなかったのですが,Version 0.08以降はここにOpenしてあるファイルハンドルを渡せるようになって便利です.処理がスマートに書けるようになって大変満足!

Text::XslateにテンプレートのSyntaxをチェックするメソッドが追加されて便利

Text::Xslateのバージョン3.1.0から,テンプレートのSyntaxが正しいかそうでないかをチェックするメソッドが追加されていて便利です. 以下のように,テストしたい対象のテンプレートファイルをvalidate()メソッドの引数として食べさせてあげると,そのテン…

Hokkaido.pm #11に参加した報告とTestとDocumentの甘い関係に関して

Hokkaido.pm #11に参加してまいりました. 以下が僕の発表スライドです. Hokkaido.pm #11 from moznion 言いたいことは大体スライドに書いてある通りで, TestとDocumentは同じ方向 (どちらも正しいソフトウェアの動作について論じている) を向いている 従…

Test::Synopsis::Expectationというモジュールをリリースしました

このたび,Test::Synopsis::Expectationというモジュールをリリースしました. https://metacpan.org/pod/Test::Synopsis::Expectation https://github.com/moznion/Test-Synopsis-Expectation 使い方や仕組み等をid:mackee_wさんの記事で紹介していただいた…

開発中のPerlのモジュールでブランチ間をまたいでベンチマークを取る

ほぼ100%藤原さんの記事の受け売りですが…… [perl] Perlで同じコードを違うバージョンのモジュールでベンチマークする - 酒日記 はてな支店 モジュールを開発している時に,フィーチャブランチの変更が性能に対してどれくらい影響を及ぼしているかを調べたく…

cpanfileのシンタックスチェック

cpanfileのシンタックスが壊れていた影響で悲劇が起きていていたので, そういうのは機械にチェックさせましょうや,という事で書いたのが以下です. Syntax test for cpanfile. 仕組みは至って簡単で,Module::CPANfile->load()にcpanfileのパスを食わせて…

Test::JsonAPI::Autodocをリリースしました

Test::JsonAPI::Autodocをリリースしました. https://metacpan.org/pod/Test::JsonAPI::Autodoc https://github.com/moznion/Test-JsonAPI-Autodoc これは何 Ruby (RSpec) にはautodocという,@r7kamuraさんが書かれたクールなモジュールがあって, これが…

Pod::Text::Color::Delight というモジュールをリリースしました

[追記] 色々と問題を修正しましたので、最新版 (v0.0.5) をご利用なさる事をおすすめ致します。 (問題を報告して下さった@__gfx__さん、@uzullaさんありがとうございます) [追記ここまで] この度、Pod::Text::Color::Delight というモジュールをリリース致し…

Plack::Request::WithEncoding というモジュールをリリースしました

Plack::Request::WithEncoding というモジュールをリリースしました. https://metacpan.org/module/Plack::Request::WithEncoding https://github.com/moznion/Plack-Request-WithEncoding これは何 このモジュールは Plack::Request のサブクラスで, Requ…

今日はYAPC前夜祭ですね & 明日のYAPC1日目でしゃべります

今日は YAPC の前夜祭ですね! 今年の YAPC の前夜祭は、去年の YAPC で好評を博した LTThon が Tiny となって開催されます! 僕は LTThon にはお手伝いとして参加していて、楽しい催しになるように努力しますので是非是非ご参加下さいませ! LTソン::Tiny -…

バージョン 6.04 よりも古い LWP::UserAgent

バージョン 6.04 よりも古い LWP::UserAgent に delete メソッドが生えていない。少し驚いた。 古い LWP::UA 使ってると、それを継承している WWW::Mechanize とか、さらにそれを継承している Test::WWW::Mechanize とかでも delete メソッドが使えない。大…

Text::MeCab を CentOS にインストールする際の注意

Text::MeCab 入れたいけどコケるのよ!!! という方に向けた記事のはずでしたが、 もはや Text::MeCab とか関係ない感じの記事になったことを報告します。Mecab 自体のインストールについては言及しません。 以下に記すサイトが詳しいのでご参照下さい。 ht…

Perl の Package 書くときにめちゃめちゃ便利な Vim スクリプト書いた

世の中の Perl の Package の末尾には大体 `1;` って書いてあって、これが何か言うと「このモジュールは真値を返していますよー」という表明で、まああけすけに言うとこれが記述されていなければ、そのモジュールは use とかされた時に不正なモジュールとし…

common::sense 3.71 が正常にインストールされない問題に関しまして

(2013/08/01 3:44 + 0900 追記) https://metacpan.org/release/MLEHMANN/common-sense-3.72 common::sense は3.72 にバージョンが上がって、 以下に書かれている様な問題は消え失せました。戦いは終わったのです!!!*1普通に $cpanm common::senseみたいな…

“インストールされているモジュールをインストールされていないが如く扱う方法”の続き

インストールされているモジュールをインストールされていないが如く扱う方法 - その手の平は尻もつかめるさ の続きというか訂正です。 すっげーーーーーーーーーー前に miyagawa さんから指摘を受けていたんですけど、書きそびれていたので書いておきます。…

CPAN モジュールの依存モジュールをお手軽に表示するスクリプトを書いた

App-pmdeps https://github.com/moznion/App-pmdeps モジュールを書いている皆さんはモジュールの依存関係に細心の注意を払っていることと思いますが、 いちいち CPAN の Web ページにアクセスしたり、curl で API を叩いたりするのがだるいですよね!!! …

cpanfile はモジュールをインストールする順番を担保するのか問題

cpanfile にrequires 'Acme::Buffy'; requires 'Acme::Anything'; requires 'Acme::Damn'; requires 'Acme::Coro::Suke'; などと記述されていた時に、先に書かれた (つまり上に書かれた) モジュールから先にインストールされるのか? という疑問が割と散見さ…

インストールされているモジュールをインストールされていないが如く扱う方法

(2013.7.16 追記) “インストールされているモジュールをインストールされていないが如く扱う方法”の続き - その手の平は尻もつかめるさ の方法の方が良いと思いますので、そちらをご覧下さい!! (追記ここまで) 何を言っているか分からないと思いますが…

Test::LocalFunctions がパワーアップしました

ここで紹介した Test::LocalFunctions ですが、パワーアップ致しました。 @__papix__ さんが書かれた Test::LocalFunctions::Fast 取り込んだのが主な変更点です。 元々のTest::LocalFunctions は PPI を利用していましたが、 Test::LocalFunctions::Fast で…

cpanfile に“recommends” とか“suggests” とか書かれてるモジュールをcpanm でインストールする方法

まだ cpanm のドキュメントに書かれていないようだったので。 以下のようにすれば入ります。 recommends $ cpanm Foo::Bar --with-recommends suggests $ cpanm Foo::Bar --with-suggests ロンモチで --installdeps とかの場合でも使えます。

WWW とWebService どっちの名前空間が良いんだぜ? という疑問

CPAN のモジュールは、モジュールの名前がしっかりしているというか厳格な感じがしていて、 他の言語に多くありがちな幻覚な名前 *1 と比較すると、そのモジュールが何の仕事をするモジュールなのかが一目でわかって良いですし、 気分的に安心して使える感じ…

cpanfile 向けのVim 拡張を書きました

cpanfile が書きやすくなるかも知れないVim 拡張を書きました。 「書きやすくなるかも知れない」ってことは「書きやすくならないかも知れない」って事です。 深淵ですね。 プラグインたち https://github.com/moznion/vim-cpanfile https://github.com/mozni…

Test::LocalFunctions というモジュールを書いてました

色々と[私仕]事が重なっていて忘れておりました。 Test::LocalFunctions をリリースしておりました。 https://metacpan.org/module/Test::LocalFunctions https://github.com/moznion/Test--LocalFunctions これはなに? モジュールファイル内 (MANIFEST フ…

local::lib が上手くインストール出来ない問題について

carton をcpanm でインストールしようと思ったら、依存モジュールであるlocal::lib のインストールに失敗してしまったので、 解決策をメモ程度に書いておきます。 正直、原因が良く分かっていないので超対処療法的です。 (なお、環境はUbuntu 12.04/64bit、P…

テストにコケる度にシーザーが死ぬ仕組みを作りました

タイトルは釣りです。 App::WithSound をリリース致しました。 https://github.com/moznion/App--WithSound https://metacpan.org/module/MOZNION/App-WithSound-v1.0.2/with-sound (2013.03.06 追記) App::WithSound はv1.1.0 にバージョンアップしました。…

Perl Beginners #6 に参加して参りました

いつの話だ!!! *1 今回はJPA 代表の牧さん (@lestrrat) が特別講師 *2 として来られていました。 Q&A セッションとして、1時間牧さんに自由に質問して牧さんがそれに答える、というスタイルで進めていました。 以下まとめ 牧さん (Q&A セッション) コード…

XML は人類には早すぎるフォーマットなのでJSON にしましょう

僕はXML ファイルについて、 「読みにくい」 「書きにくい (書くのがめんどい)」 「ファイルが無駄に長くなる」 の3拍子がバッチリ揃っている、「人類がマトモに扱うにはちょっと早すぎるフォーマット」だと思っていて、 「コイツ生かしといて意味あんの?」…