タグ

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

  • YappoLogs: DBD::mysql Async API

    DBD::mysql Async API MySQL の Async API 使って思いクエリを並列処理したら早いかと思ったらそうでも無い風味。 Web アプリの時のように、クライアント側の並列度があがれば差が縮まる感じだけどそうでもない。 ある程度重いクエリの想定で SELECT SLEEP(0.05) とか投げてみたけどやっぱり普通に使った方が早い。 Async API 使うのにコストがかかるのかな、と思って IO::Select 使ってみたらかなり早くなったので AnyEvent がわりとボトルネックっぽい。 とは言え微妙な誤差ではあるので、普通に DBI 使ってればいい気がしてきた。 perl 5.18.2 DBI 1.63 DBD::mysql 4.025 AnyEvent 7.07 IO::Select 1.21 async-mysql-ioselect.pl が全入りベンチ(

    umiyosh
    umiyosh 2014/02/13
  • YappoLogs: 配布するスクリプトが依存しているモジュールを実行時にスマートに入れてもらう方法

    配布するスクリプトが依存しているモジュールを実行時にスマートに入れてもらう方法 社内ツールなどで Perl スクリプトを配布する時にいちばん気になるトピックとしては、スクリプト中で依存しているモジュールをどうやってインストールさせるか? という所ですね、最近は toolchain が強まってきて cpanm --installdeps . とか carton install をやってもらえば良いのですが、たかだかちょっとしたツールだったら git clone してもらってすぐにスクリプト叩いてもらいたんじゃんすか。 ってことで、スマートかつクールにこの問題に対処するスクリプトの雛形を書いてみました。 core module 以外には Carton を予め入れておく必要があるのがまだまだ敷居高いですが、エンジニア向けのツールだったらだいぶ手間は下がるでしょう。 ポイントとしては、コードで使う

  • YappoLogs: perlbrew best practice

    perlbrew best practice perlbrew には $ perlbrew upgrade-perlというのが実装されてるのがあまりにも有名ですが、これは現在使ってる環境の perl を、そのマイナーバージョンの中で一番新しいバージョンにアップグレードしてくれるんです。 perl-5.16.1 を使っていたら perl-5.16.3 に perl-5.14.2 を使っていたら perl-5.14.4 に。という具合ですね。 同じマイナーバージョンの Perl では XS バイナリの互換性とか保証されているので、すでにインストールされているモジュールはそのまま利用できる状態になっています。 だがしかし $ perlbrew install perl-5.16.2して作った環境を upgrade-perl すると 5.16.3 が入ってるのに perl-5.16.2 って名前が

  • YappoLogs: Perlの女神降臨!「WiiRemoteハック」で鮮魚を喰らう

    Perlの女神降臨!「WiiRemoteハック」で鮮魚を喰らう ―― Perlの女神さんはブログでPerlのソースコードを公開してますけど、プログラミングはいつ覚えたんですか? ―― それまではプログラミングは全然経験なし? ―― WiiRemoteって、マウスを使わないでプレゼン資料を操作するデバイスですよね。ダイエットなんかもできる。 ―― 鮮魚を喰らう……鮮魚を。 ―― ところで、なぜ「鮮魚」の研究を始めたんですか? (中略) ―― Perl女神さんはWebアプリを開発できますし、ハードウェアとの連携も経験している。後はサーバーでも覚えたら完璧なエンジニアですね。 ―― では、すっかりエンジニアPerl女神さんから、読者のエンジニアに何かメッセージを。 そんなPerl女神さんのインタビュー全編はこちら Posted by Yappo at 2013年02月28日 17:46 | T

    umiyosh
    umiyosh 2013/02/28
  • 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

    umiyosh
    umiyosh 2013/02/14
  • YappoLogs: 本物の KEN_ALL.csv の処理が簡単に出来る Parse::JapanesePostalCode をリリースした

    物の KEN_ALL.csv の処理が簡単に出来る Parse::JapanesePostalCode をリリースした 空前の KEN_ALL.csv ブームが凄かったのが記憶に新しいばかりですが、この郵政さんが公開している郵便番号ファイルをカジュアルにパース出来るモジュールを作りました。 https://metacpan.org/release/Parse-JapanesePostalCode https://github.com/yappo/p5-Parse-JapanesePostalCode 使い方はとても簡単で use Parse::JapanesePostalCode; my $parser = Parse::JapanesePostalCode->new( file => 'KEN_ALL.csv' ); while (my $obj = $parser->fetch_ob

    umiyosh
    umiyosh 2012/08/15
  • YappoLogs: DeNA のノウハウが12個も馬鹿正直に書いてある「Mobageを支える技術 ~ソーシャルゲームの舞台裏~」を読んだ

    DeNA のノウハウが12個も馬鹿正直に書いてある「Mobageを支える技術 ~ソーシャルゲームの舞台裏~」を読んだ 先週末くらいに届いて週末うっかり読むの忘れて昨日の夜にだいたい読み終わりました。 実際の発売日は明日からなので、今すぐアマゾンで予約するか明日屋に並ぶといいよ! なんていうか書評書くのが凄い難しいん素よねこの、高層ビルの上層階のレストラン街のような感じで、それぞれの著者がそれぞれの業務に関して得た知見を惜しげもなくこれでもかって書いてるので、全体としてはまとまり感が凄いないっていうw ガラゲーの話とかサービス終わってるDoCoMoのPDC端末の判定方法とか Flash とか FastCGI とか2012年に出るらしからぬトピックスがあったりしますが、それが当に今の DeNA/Mobage を支えている技術である事には間違いないので当に馬鹿正直に、包み隠さず書籍化

    umiyosh
    umiyosh 2012/06/13
  • YappoLogs: Perl 5.16 の面白そうな新機能を厳選して5つ紹介

    Perl 5.16 の面白そうな新機能を厳選して5つ紹介 日人が金環日で騒いでる待っただかにリリースされた事で有名な Perl 5.16 ですが、ちょっとまえに僕が Hokkaido.PM Casual で新機能の見所プレゼンしてて、折角なのでブログにも書いとこうと思いまして転載仕様かなーと。 More CORE subs are callable through references コア関数のコードリファレンスを取れるるようになります。たとえば文字列フィルタリングをユーザが差し替え可能なモジュールとか作る時に捗るって jsx が言ってました。 use strict; use warnings; use 5.016; # ここの関数テーブルをユーザの好みに差し替える # 基はコア関数を使う my %func_map = ( index => \&CORE::index, splic

    umiyosh
    umiyosh 2012/06/04
  • YappoLogs: GrowthForecast ノススメ

    GrowthForecast ノススメ みなさん管理画面毎にグラフ作ってませんか?作るのめんどくさくて数値の表だけだして、直感的にサービスの動向掴みにくいとおもっていませんか? Google スプレッドシートの機能でグラフだせるからいいよ?とかいってませんか? Google スプレッドシートに吐かせる方法より簡単にグラフが作れたらいいとおもいませんか? 遂に GrowthForecastというグラフ表示ツールで捗る話 - blog.nomadscafe.jp リリースされたので、早速僕が GrowthForecast をどんな感じで紹介しようと思いますが、なんか忙しいので便利ツールだけ紹介します。 https://github.com/yappo/grouthforecast-worker こういうツールを使っているので、グラフ追加したい時にいちいちある程度のボリュームのあるコードとか書か

    umiyosh
    umiyosh 2011/12/02
  • YappoLogs: Mooseを使うべきでない理由とMooseを使う理由

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

  • YappoLogs: CodeRepos - 個人レポジトリを共有しよう!計画

    CodeRepos - 個人レポジトリを共有しよう!計画 typesterさんのつぶやき みんながそれぞれ作って公開してる公開レポジトリを一緒くたにしちゃいたい。参加してる全員がどのファイルもみたり変更したりできるような。 パッチ送られてくる代わりに「後で見とくからコミットしといて」とかいえたりとか、つくりかけで放置したもので他の人が興味もったら続き作ってもらうとか、メンテするのめんどくなったのだれかにやってもらうとか、突発的に誰かと一緒にプロジェクト始めたりとか、できる! に呼応する形で共有レポジトリを作りました。 http://coderepos.org/share/ 特に明確な方向性とかはきまってませんし、決まるかどうかもわかりませんがtypesterさんのつぶやきを現在の方向性という事にしておきますか。 昨日作ったばかりで、今はディレクトリ構成どうしようかとかそういう事をircとか

  • YappoLogs: CodeReposにうpする事は恐くないよ

    CodeReposにうpする事は恐くないよ ユーザ避けとしてのSubversion - blog.fuktommy.comのミラー だから早いうちからソースを公開するのはいいことだと思うんですけど、 問題もあるんですよね。 ソースはできるだけ早くから公開したいんですけど、 実際にユーザが使うのは「ひととおりできあがった」あとにしてほしいんです。 早くから使われると、当然完成度も低いですし、 仕様の変更だってちょくちょくあるから、 「完成度は低いし、バージョンアップのたびに互換性なくなるし、つかえねー」 という評判が立ってしまう。 これは二つの問題を混ぜて考えてしまっている。 ソースを公開する=将来のユーザになる層に告知するという考え方がまず間違っています。 そりゃ2chとかでスレ立ててやっちゃえば、混ぜこぜになっちゃうのもしょうがないかもしれないすけど、ひげぽんとかの成功例もあるからプロジ

  • 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: goo.gl の API を叩いて goo.gl のショートURLを作る WWW::Shorten::Google ってモジュールかいた

    goo.gl の API を叩いて goo.gl のショートURLを作る WWW::Shorten::Google ってモジュールかいた http://goo.gl/ ってのが巷では始まっていますが、まだ勝手に tinyurl を作れないようなので 簡単に http://goo.gl/hoge な tinyurl を作る WWW::Shorten::Google ってモジュールを書きました。 http://github.com/yappo/p5-WWW-Shorten-Google CPAN には、各種 tinyurl を使って url を短くするための統一インタフェイスとして WWW::Shorten ってのがあるので、それの流儀にしたがって作りました。 Posted by Yappo at 2009年12月15日 19:54 | TrackBack | Perl

  • YappoLogs: Yacafi という軽量CGIフレームワーク書いたよ

    Yacafi という軽量CGIフレームワーク書いたよ MENTA というウェブアプリケーションフレームワークをかいてみた - TokuLog 改めB日記やらNanoA というウェブアプリケーションフレームワークをかいてみた - id:kazuhookuのメモ置き場やらと軽量CGIフレームワーク作りが流行ってるようなので昼飯った後に20分くらいで書いたよ。 Yacafi(Yet another CGI application framework interface)と言います。 http://svn.coderepos.org/share/lang/perl/Yacafi/trunkからsvn coできるけど、Yacafiはモジュール一個だけあれば動くようにしてあるのでhttp://svn.coderepos.org/share/lang/perl/Yacafi/trunk/lib/Yac

  • YappoLogs: Twitterはもう終わった、wassrやってなくて良いのは幼稚園児までだよね

    Twitterはもう終わった、wassrやってなくて良いのは幼稚園児までだよね なんだか知らないがTwitterAPI制限が一時間に20回までになってしまったようだ。 3分に一回しかtimelineを拾えない。 ただでさえ取りこぼしまくってるのに、もうこの制限じゃマトモにTwitter APIが使えなくなってしまったと言わざるを得ない。 この調子だとWebとかでスクレイピングとかするのにも制限はいるんじゃ無いか。 そんな皆さんにおすすめなのがwassrです! wassrにはAPI制限なんてありませんし、followとかとは別に個別のテーマのルームが作れたりします! しかも@で言及されたらメールでおしらせしてくれたり、secondlifeから書き込めたりとtwitterより凄いサイトなんです! wassr専用クライアントってのは凄くマイナーで数少ないけど、Twitter APIと同等なので

  • YappoLogs: 会社を辞めたら早急にハローワークへ行って貰えるお金を減らさないライフハック

    会社を辞めたら早急にハローワークへ行って貰えるお金を減らさないライフハック 色々訳ありで事実上、離職日から30日くらい経過して失業の受給申請しにいこうと思ったんだけど、失職日から月さえまたがなければ満額貰える物だと勘違いしたら、職業安定所に行って求職票をだした日から受給期間がカウントされるそうだ。 色んな意味で涙目。 失業手当を満期で貰うつもりとか長引きそうだったら涙目にもならないんだろうけど(支給開始日が後ろにずれ込むと、終了日もその分後ろにずれるみたい。)、失業期間が短期とかになると早めに動かないとロスト割合がでかくなるすね。 ちなみに、貰える金額はザックリと(過去6ヶ月もらった給料の金額/180)で日当の基準が算出されて、その日当から5割〜8割の金額が、支給日当として計算されるらしい。30代だと支給日当の上限が7070円 あとは、結果的に支給日数が少なくても自己都合退職(自己都合とか

    umiyosh
    umiyosh 2008/07/01
  • 1