タグ

ブックマーク / blog.yappo.jp (34)

  • YappoLogs: \s is space character, and includes 'no-break space(0xA0)'.

  • YappoLogs: homebrew libpng and Imager::File::PNG with Carton

    homebrew libpng and Imager::File::PNG with Carton for cpanm $ cpanm --look Imager::File::PNG $ perl ./Makefile.PL --libpath=/usr/local/opt/libpng/lib --incpath=/usr/local/opt/libpng/include for carton $ cd /usr/lib $ sudo ln -s /usr/local/opt/libpng/lib/libpng.dylib $ cd /usr/include $ sudo ln -s /usr/local/opt/libpng/include/png.h $ sudo ln -s /usr/local/opt/libpng/include/pngconf.h $ sudo ln -s

  • YappoLogs: Perl徹底攻略という本を作った話

    Perl徹底攻略というを作った話 来週火曜日に、ここ最近もっともイケてる Perlが出ることになりました。 ちなみに僕もなんか書いてるけど、役に立つことは書いてません。 基的には Web+DB PRESS で連載されている記事が集まっていますが、ちょさんの部分は Perl 5.18 までの話題を取り扱ったり、yusukebeのところなんかは TwitterAPI がもろもろ変わっちゃったので、ほぼ全部書き直しで YouTube API の話になってたりとか、既存の連載を読んでる人にも新しい情報ありますね。 載っている記事としても連載だけではなくて弾さんのアルファギークに逢いたいから Perl Hacker が出ている記事を中心に再収録してあるところもポイントです。 あとは今回のために naoya さんが新規に原稿書いてくれた事も目玉ですね。内容としては「Perlプログラミン

    bayashi_net
    bayashi_net 2013/07/18
    おおー
  • YappoLogs: Perl で L10N するのに Locale::Maketext::Extract::Plugin::Xslate っての書いた

    Perl で L10N するのに Locale::Maketext::Extract::Plugin::Xslate っての書いた Perl で L10N するにはhttp://blog.64p.org/entry/20110224/1298521852こういうことするんですが、今時はTTなんかつかわない!Xslateだ!ってことで Locale::Maketext::Extract::Plugin::TT 使ってたんですが、いろいろ怪しいのでちゃんとしたの作ったよ! https://metacpan.org/release/Locale-Maketext-Extract-Plugin-Xslate 他のプラグインとちょっとだけオプション変わっちゃうけど、 start_tag とか変えるのも対応できるし syntax も全部対応できるよ。 Text::Xslate の AST とる int

  • YappoLogs: シェル関数でHTTP のステータスコードをすばやくしらべる! そしてメンテナンスフリー!

    シェル関数でHTTP のステータスコードをすばやくしらべる! そしてメンテナンスフリー! 一般的な Web Programmer ならば、HTTP Status code はすべて暗記していると聞きました。 しかし、僕は初心者なので、なかなか覚えきれていないので、HTTPのステータスコードをさがすのに便利なシェル関数を用意しました。httpstatus.sh です。.basrc とかに書いとくだけです。 使い方は以下のとおりです。 4xx なコードを列挙する。 $ httpstatus 4 400 Bad Request 401 Unauthorized 402 Payment Required 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Req

  • YappoLogs: Try::Lite 「より安全な例外キャッチを簡単に」

    Try::Lite 「より安全な例外キャッチを簡単に」 I wrote too safety exception handling module. https://metacpan.org/release/Try-Lite $@ の処理を安全に取り扱う例外処理モジュールとしては Try::Tiny があまりにも有名ですが、別の実装を作ってみました。 アプリケーションを作る時は、よく例外クラスを作ってから die bless {}, $foo_class; みたいな形のオブジェクトの例外を投げて、上流の方で eval で受け取ってから $@ の isa を調べて例外に応じた処理をする事が多いと思います。 ここで問題になるのが、受け取った例外の中から不要な物を、さらに上位に向けて rethrow するわけですが、 rethrow するのを忘れてしまうとクリティカルなバグを発生させる要因となりま

  • YappoLogs: Exception::Tiny - ちょー簡単な例外処理

    Exception::Tiny - ちょー簡単な例外処理 I wrote too easy exception interface module. https://metacpan.org/release/Exception-Tiny 既存の例外処理モジュールは、結構頑張ってるのが多くてドキュメント凄いいっぱいあったり実装が読みにくかったり痒い所がかけないので、おばあちゃんの孫の手的な実装をリリースしました。 例外処理に最低限必要な実装しか無いので使うのが簡単です。 例外クラスにアクセサを生やしたければ、お好きなアクセサーで生やすもよいし、例外の階層構造作りたければ普通に use parent すればいいし、既存の実装を変えたければ user parent 'Exception::Tiny'; で継承された側のモジュールでメソッドを上書きすればいいです。 Exception::Tiny

  • YappoLogs: ExclusiveLock::Guard という排他ロック簡単にやるモジュール書いた

    ExclusiveLock::Guard という排他ロック簡単にやるモジュール書いた ファイルを使って排他ロックするには、適当にロックファイルを作って flock $fh, LOCK_EX とかすると思います。 flock で使ったファイルハンドルが close されたら自動的に unlock されるので、最初っから Guard な感じなんだけどロック用のファイルも一緒に消したいので ExclusiveLock::Guard ってのを作った。 use ExclusiveLock::Guard; my $lock = ExclusiveLock::Guard->>new('/tmp/megazaru.lock'); って書くだけで $lock が生きてる間はロックかかってて、ロック外れたらファイルも一緒に消してくれるというだけの物。 ノンブロッキングなインターフェィスが欲しければ use E

  • YappoLogs: 今話題の新言語 Tora を、今話題の さくらVPS で使う方法教えます

    « Web関連エンジニアなら必ず読むべき 〜 Webエンジニアのためのデータベース技術[実践]入門 〜 を全部読んだ | Main | Hokkaudi.PM Casual #0 参加と全国ツアーした話 » 今話題の新言語 Tora を、今話題の さくらVPS で使う方法教えます 2012/04/01 にリリースされた Tora が話題沸騰中なのは記憶に新しいですが、これまた今話題の さくらVPS 2GB プランでインストールする方法をまとめたのでメモしておきます( [f6fa28f2bb6f6fb301c31fee69d2fea0041eaab4] 現在)。 必要なパッケージを入れる Tora が使ってるライブラリを入れます。 sudo yum install scons sudo yum install re2c sudo yum install curl-devel sudo yu

  • YappoLogs: Kyoto.PM #1 で発表してきました

    Kyoto.PM #1 で発表してきました と言う事で Kyoto.PM #1 は JPA 講師派遣制度として発表してきました。 京都素人すぎてランチの時間をみすってご迷惑おかけして申し訳ありませんでした。 なんか、関連ブログを見ると懐石料理で遅刻って文字がいっぱいあってもう泣きそうです。 京都らしい地域性を特色にした PM って懐石料理くってて遅刻するってことじゃねーだろ。。。 最初は捗るシリーズの話を考えていたのですが、 Atnd 見たら Perl にあまり触れてない方の参加が多そうだったので、 Perl の面白さや仕事に活かせる話等を中心にした発表に切り替えました。 LT4分の時間構成のつもりが、発表枠10分おおかったってのに直前で気づいて、 Acme の話をゆっくり丁寧に Perl 知らない人でも興味持ってもらえそうな事喋ってたら、 Acme の話だけで20分つかって、あとだいぶ

  • YappoLogs: App::Ikachan - 様々なサーバのバッチ処理の結果等を IRC のチャンネルに通知するサーバ

    App::Ikachan - 様々なサーバのバッチ処理の結果等を IRC のチャンネルに通知するサーバ 皆さんは、日々のお仕事の中で様々なバッチ処理やデプロイツールまたはCIツールを動かすと思います。 一般的なネット系のエンジニア仕事のコミュニケーション手段として IRC を用いているというのが有名ですが、これらバッチ処理の処理状況等を普段の生活環境である IRC に流せたら便利です。 実際に前の会社では、 deploy tool, ci tool, etc batch script の処理結果を社内 IRC channel に通知するような物を hirose31 さんが作ってくれて、とても便利でございました。 とはいえ、各種スクリプトが独自に IRC server に繋ぎに行く事は大げさですし、バッチが走る都度 join/part されたらうざいです。 そこで前の会社では、 IRC s

  • YappoLogs: BPStudy#39 で Ficia の UI とテストに関する事を発表してきました

    BPStudy#39 で Ficia の UI とテストに関する事を発表してきました 当に今更で申し訳ないのですが、さる2010年11月30日にBPStudyで発表する機会を頂いて、FiciaのサクサクなUIをどうやって作っているのか?というプレゼンとFiciaで利用しているテストツールのJSTAPdについてのプレゼンの二を行って来ました。 ベースは、Web+DBの連載の内容になっていて、YAPCやFukuoka.PMでの発表内容に近しい形とはなっていますが、発表する場所も違うので少しだけ構成を変えて発表するというtrue TAKESAKO methodをしました。 発表資料はイカよりそれぞれどうぞ。 http://yappo.github.com/talks/20101130-bpstudy-webui/ http://yappo.github.com/talks/20101130-

  • YappoLogs: Module::Setup - pmsetupをモジュール化した

    Module::Setup - pmsetupをモジュール化した Perlのモジュールをまず最初に作る時はpmsetupやModule::Starterなどを使うのが一般的です。 かく言う余もpmsetupでガリガリ書いてたんですが、はこべさんやらdannさんやらの最近の記事を見て思う所もあってpmsetupをモジュール化してみました。 http://svn.coderepos.org/share/lang/perl/Module-Setup/trunk/ 使い方は簡単!cpan Module::Setupでinstallして(まだCPANにあげてないよ!) $ module-setup Foo:Bar を実行するだけ! ほぼpmsetupと同等の挙動でひな形を作ってくれます。あらべんり! これだけじゃまったく意味が無いのでModule::Setupらしい所を。。。 flavor Modu

  • YappoLogs: 最新 CPAN モジュールをつぶやく Twitter BOT それAnySanで

    最新 CPAN モジュールをつぶやく Twitter BOT それAnySanで ほんっと奇遇なんですけど。ちょうたまたまなんですけど。AnySanにFriendFeed対応した所に。いや当に偶然なんですけど。 最新 CPAN モジュールをつぶやく Twitter BOT を書いた - punitanのメモっていうエントリを見たので。 ほんと、超偶然なんですけどAnySanでもFriendFeedをリアルタイムで処理出来るようになっちゃってたので、ほんと偶然だけど。 なので、CPAN - FriendFeedからリアルタイムでデータを取ってきてTwitterで呟くbotを書いてみました。 たまたま、AnySan::Provider::Twitterでも、streaming apiを使わないモードとかを実験的に付けたので(偶然ですけど)、無駄なストリーミングAPIの接続もしません。 Any

  • YappoLogs: Dena Technology Seminar #2に行ってきた

    Dena Technology Seminar #2に行ってきた せっかくDB Magazineで記事を書いている方々がいらしたのでサイン書いて頂きました。 素敵な東京都のマークも付けてもらえて感激です。 nippondanjiさんのサインは、別途サインをもらうのに相応しいイベントがあるようなので我慢しているところです。 個人的にはhandlersocketをさわってみたくて、集中して参加できたのですごく有意義でした。 ピース!PEACE!! Posted by Yappo at 2010年06月30日 11:26 | TrackBack | 適当

    bayashi_net
    bayashi_net 2010/06/30
  • YappoLogs: ShipItつかわなくて良いのは小学生まで

    ShipItつかわなくて良いのは小学生まで 超クールな CPAN リリースツール 1 選。ShipIt がスバラシイ件 - TokuLog 改め だまってコードを書けよハゲが火種になってるけど、今ShipItが熱い! という事でちょっと前からShipItに移行してます。 一昨日辺には、オレオレpmsetupもplaggerからコピペしてきたリリースツールを消してShipItしてます。 http://coderepos.org/share/changeset/3295 結構どうでも良いBKがあって、cpanに上げる時にShipIt::ProjectType::Perlを利用してperl Makefile.PLするフェーズがあるのですが、ShipIt::ProjectType::Perl::MakeMakerの実装を見てわかるとおり sub prepare_build { my $self =

  • YappoLogs: Mooseを使うべきでない理由とMooseを使う理由

    Mooseを使うべきでない理由とMooseを使う理由 twitterにでも書いて終りにしようと思ったけど140文字じゃ無理なんで。 Mooseの欠点やら利点やらMouseがどうだとかは今更感過ぎて割愛するし、下手な抽象的な表現も面倒なんでしない。 あなたが、再利用性の高いライブラリを作りたい場合はMooseを使うべきではない。 なぜならMooseはフレームワークだからであるからだ。 たとえ有用な再利用性の高いライブラリを作ったとしても、Mooseというフレームワークに依存してしまっては、あなたの有用なライブラリを選択してもらえない事もあるだろう。 誰かが小さいスクリプトを書くために、あなたが書いた有用なライブラリを使う事で楽が出来るとする、だがMooseというフレームワークに依存したばっかりに、その有用なライブラリの後ろに控えるものの大きさに臆して選択してくれないかもしれない。 もちろんM

  • YappoLogs: HTTP::Request::StreamingUpload - 省メモリでrequest bodyをupload

    HTTP::Request::StreamingUpload - 省メモリでrequest bodyをupload Today I created a good wrapper for request body upload HTTP::Request. this module is use few memory on file upload. also too big file. http://search.cpan.org/dist/HTTP-Request-StreamingUpload/ http://github.com/yappo/p5-HTTP-Request-StreamingUpload DESCRIPTION HTTP::Request::StreamingUpload is streaming upload wrapper for HTTP::Request. It

  • YappoLogs: AnyEvent で plagger-ircbot 的なのかいた

    AnyEvent で plagger-ircbot 的なのかいた AneEvent二日目なので plagger irc bot的に使えるのを書いてみた。 http://github.com/yappo/perl-anyevent-irc-message-proxy POEってのはIKCっていう便利なRPC的に便利に使えるのが有るんですが、まぁplagger irc bot的なのにはそんな大げさの物も要らないので、jsonでデータ送ったらその中身をirc serverにNOTICEで出してくれるのを書いてみた。 そもそもjsonにしなくても良いんだけど、jsonの中に発言したいchannelとか指定出来るように拡張する時とかのためですね。 このくらいだと別に直でAnyEventのコード書いても良い感じすなー plaggerのそれとはコードも比べ物にならない程適当なんですが、似たような処理をA

  • 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できるように