タグ

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

  • YappoLogs: 2014年に向けた JSON API の実装の方向性と X-JSON-Status 改め X-API-Status header のご提案

    2014年に向けた JSON API の実装の方向性と X-JSON-Status 改め X-API-Status header のご提案 追記 2014/11/20 14:00:00 わりと JSON やら XML やら各種フォーマットで API を運用している環境がある場合に JSON API の時だけ X-JSON-Status にすると XML とかの時と整合性取れないし、 X-XML-Status みたいのを量産するのは困る的なレビューを頂いたので X-JSON-Status をやめて X-API-Status にしました。 へたに JSON に限定するから REST とか JSON-RPC とかいわれるんや! X-API-Status にしたら全部解決したし MessagePack な API でも使い回せるって songmu さん言ってた! XML とかからどうやって引っこ抜

  • YappoLogs: perlbrew lib

    perlbrew lib perlbrew best practice まとめようと思ったら perlbrew lib なるコマンド見つけたので使ってみた。 なんか、一度ビルドした perl binary と元の site_perl を使いまわして、新たに lib path だけ変えて複数の環境を手軽に切り替える事が出来るってやつみたい。 例えば perl-5.17 の環境に @suneo って lib を作ると、 perl-5.17 の通常のライブラリパスに追加されて @suneo のライブラリパスが利用できる。そして cpanm で install するときは @suneo を汚さない。という branch っぽい作業するときに便利そう。 作る $ perlbrew lib create suneoってコマンドで suneo っていうのができます。 perlbrew list してみる

  • YappoLogs: Carton Conferenceやってきました

    Carton Conferenceやってきました cpanm / carton の新しいバージョンも出たことだし、そろそろみんなの carton の知見を集めましょうってことで Carton Conference を開催して来ました。 当日の模様は動画では無くはやりの podcast で配信します。 Podcast SP1: 2013/03/02 Carton Conference Tokyo 2013 / riywo's Podcast carton 業界の今までとこれからをが見える貴重な音声ですので皆さん、どうぞご利用ください。 僕の死霊はhttp://yappo.github.com/talks/20130227-cartoncon/です。 podcast してくれた riywo さんと、会場提供やら準備をして頂いたLINE(仮)さんと中野人に感謝です。 Posted by Yapp

  • YappoLogs: plackp -R したプロセスを終了する時には SIGHUP ではなく SIGTERM を送るべき、もしくは daemontools で plackup -R するのは筋が悪い話

    « Perl Advent Calendar Japan 2012 は明後日からです、みんな参加して寿司をべよう! | Main | PLACK_ENV my way » plackp -R したプロセスを終了する時には SIGHUP ではなく SIGTERM を送るべき、もしくは daemontools で plackup -R するのは筋が悪い話 スレタイ速報だから内容は無いけど、 plackup -R や plackup -r した場合には Plack::Loader::Restarter で fork して親プロセスでファイルシステム監視をして、変更があったら子プロセスで立ち上げた plack を再起動するみたいな事やってるんだけど、この親プロセスに対して SIGTERM を送ると子プロセスの方にも TERM 送ってくれるから良いんだけど、うっかり SIGHUP を送っちゃうと親

    mickn
    mickn 2013/01/11
  • 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

    mickn
    mickn 2012/08/15
  • 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

    mickn
    mickn 2011/05/12
  • YappoLogs: AnySanで日本語の文章をzenrize(全裸化)

    AnySanで日語の文章をzenrize(全裸化) 日語の文章をzenrize(全裸化)するAcme::Zenraっていうのを作ったを見たので、折角なのでAnyEvent::IRC::Clientを直で使ってる部分をAnySanで書き換えました。 生で使ってる時と比べると、AnySanを使うとよりbot体のコードを書くことに注力できる事がわかるとおもいます。(まだまだAnySanでのAPIの洗練は必要だけど) let's enjoy irc hacking! Posted by Yappo at 2010年11月17日 13:11 | TrackBack | Perl

    mickn
    mickn 2011/05/12
  • YappoLogs: #!なんか糞だ

    #!なんか糞だ #!というものは、根的にURLの使い方を破壊しているからうんこである。 まず、質ではない。jsが壊れたら見れなくなる!っていう批判は的外れだが。 #!に妄信するのは愚かなことであるのは間違いない。 何が糞かってのは、もうさんざんDISられてるから中略。 というかlifehackerとかのそれはやる意味がまったくないし、もし軽くしたいんであればもっと別の手段を取ればよい。 そもそも http://www.lifehacker.jp/ にアクセスすると http://www.lifehacker.jp/ に飛ばされるし、頑張って http://us.lifehacker.com/ からアクセスして記事のリンクをクリックすると http://www.lifehacker.jp/ に飛ばされるので、ほんと死ねばいい。 動的に書き換えられたコンテンツのパーマリンクを作るためには、

    mickn
    mickn 2011/02/14
    え、IE9 って、state 書換まわり対応してないの?: YappoLogs: #!なんか糞だ
  • http://blog.yappo.jp/yappo/archives/000723.html

  • YappoLogs: kumofs での Data::Model の使い方

    kumofs での Data::Model の使い方 スケート頑張りすぎて足首が痛いYappoですみなさまウインタースポーチュしてますか? 日kumofsが公開されたので、折角なので Data::Model から kumofs を実際にどうつかっているかを紹介しようかとおもいます。 kumofs については 分散Key-Valueストア「kumofs」を公開しました! - 古橋貞之の日記 を Data::Model::Driver::Memcached については dann さんによる Data::Model::Driver::Memcachedで超効率データ保存 - JPerl Advent Calendar 2009 を別途参照すると良いでしょう。 スキーマ定義 では実際に kumofs をつかった場合のスキーマ定義を下記に貼ります。 ちなみに、それらしいような定義をしてますが全部フ

    mickn
    mickn 2010/01/18
  • YappoLogs: HTTP::EngineとPSGI - HTTP::Engine is died?

    HTTP::EngineとPSGI - HTTP::Engine is died? HTTP::Engine は元々 ・各種Webサーバに依存した処理がWAF毎に分散してるのをまとめたい! ・Request/Responseも共通化したい! という所からスタートしたプロジェクトな訳ですが、今回PSGIが始まる事によって前段の部分をPSGIに委譲して、Req/Resの共通化は今まで通りありますよと言う話。 今回のPSGIは「HTTP::EngineのInterfaceのレイヤとReq/Resのレイヤが絡み付いてて良く無いんで、良い感じに分離したいよね」という所から始まった感じ。 結局はPSGIは仕様なので、それを実装するのはHTTP::Engineの内部になるかもしくはRack的な物を外に作ってやるかという事になるけど(後者の方向)、HTTP::Engineの内部でPSGIと既存のReque

    mickn
    mickn 2009/09/05
  • YappoLogs: HTTP::Engine は国産か否か

    HTTP::Engine は国産か否か 最近「国産のHTTP::Engine」のような文章を立て続けに見たので、HTTP::Engineは国産なのかどうかを考えてみたけどやっぱり国産じゃないんですよね。 そりゃディストリ作り出してメンテやりだしたのは日人だけども、コードベースはCatalystだしMoose化の際にはnothingmuchの多大なる貢献があったし、大元のアイデアはPythonからの物だしで、そんなに国産と言う思いは無かったり。 だってさ、Pugsが台湾産だなんて言いかた聞かないでしょ?強いて言えばPerlコミュニティ産ってのがしっくりくるなという感じ。 中の人が日語ばっかり使うから日人が使うには気軽で良いという点くらいしかないんだけど、それって全体で見ると利点でなくて英語の情報が余りにも少なすぎてあんま良く無いなと思ってる所なんだけど、日語ですらドキュメント書けてな

    mickn
    mickn 2009/08/25
  • YappoLogs: YAPC::Asia 2009 で「Key Value Store と ORM」について話します

    YAPC::Asia 2009 で「Key Value Store と ORM」について話します このところ、MySQL と KVS と ORM 関連のエントリをいろいろ書いていますが、それは、スケールアウト可能で、かつ、インフラの人に怒られないアプリケーションを、今まさに作っている、という理由があるからです。 ただ、ブログエントリだとどうしても細切れになるので、一連のモジュールやプログラムを組み合わせて、どうやってスケールするインフラと繋げる部分を作るのかという話を YAPC::Asia 2009 でさせていただくことにしました。 YAPC::Asia 2009 は9月10日(木)と11日(金)の2日間、東京工業大学大岡山キャンパスで開催されます。今日からチケット販売も始まったので、興味のある方はお越しいただければ、と思います。 YAPC::Asia 2009 Key Value Sto

  • YappoLogs: Data::Model っていう ORM みたいの CPAN にあげたよ

    Data::Model っていう ORM みたいの CPAN にあげたよ あざーす。循環参照しすぎるとバターになる。。なんでそんなに人の目を気にするのだろうと、マジレス。 早速ですが Data::Model っていう O/Rマッパー 的な物を CPAN にあげました。 Data::Model http://github.com/yappo/p5-Data-Model/tree/master 元来は MVC モデルで言う所の Model を一括でまかなえるつもりで実装していますが、ロジック処理は普通の Perl のクラスで書いちゃった方が潰しが聞くため、主にストレージを Perl のオブジェクトにマッピングする ORM 的な使い方が主流となっています。 そして、 Data::Model の多くの実装や設計などは Data::ObjectDriver を参考にして開発しました。 他にも後述して

    mickn
    mickn 2009/06/10
  • YappoLogs: 良い子のMacなPerlユーザーに送る、あなたのPerlアプリをMacアプリにする方法 (Mac版的PAR)

    良い子のMacPerlユーザーに送る、あなたのPerlアプリをMacアプリにする方法 (Mac版的PAR) こんにちは!近頃咳と痰と鼻水と鼻づまりがすごく多い、金曜日の天使ことYappoです。 ちょっとしたツールをPerlで書いて、お友達に使ってもらいたいときってありますよね?普通は常識的にgithubとかのurlを教えれば良いのですが、それも出来ない人とかもいた場合が非常に面倒です。 そんな時の便利ツールとしてPlatypusがあるのは有名ですね。 Platyputsを使えば簡単にXSを含めたアプリが配布出来ますんです。 XSとかはアーキテクチャ等によって違うバイナリが吐かれてる事が知られますが、今回はあなたと同じMacOSのバージョンが入ってる事を前提にしちゃって問題無いです。 Macユーザ同士なんだからCPUのアーキテクチャは、殆どの場合は一緒だろうしOSのバージョンもLeopar

  • YappoLogs: CPUの気持ちは大事だけど、VMの気持ちも考えようよ

    CPUの気持ちは大事だけど、VMの気持ちも考えようよ CPUの気持ちになってプログラムを書くということ Kansai.pm#11 参加記その1 - プログラマになりたい ちなみに、下記のコードはデータハザードを解消する為のコーディング例です。データハザードは、命令が利用するデータ間に依存関係がある場合に発生します。前の命令が終わらないと後ろの命令が実行できないとか。ですので、それを解きほぐしてやれば、並列で処理が出来るようになります。という感じでnaoyaさんもぶこめで loop unrolling は perl でもちゃんと効果があるって書いてるけど、それforブロック(スコープ)が一段増えてる事で差が出てるんじゃないかと思うわけです。はい。 以下検証コード use strict; use warnings; use Benchmark qw(:all); cmpthese(500000

    mickn
    mickn 2009/03/27
  • YappoLogs: Perlで数有る$selfを取る手法をベンチマーク取った

    Perlで数有る$selfを取る手法をベンチマーク取った PerlでOOなコード書く時のコンテキストを取る方法は色々あります、最近audreyがselfvarsをリリースしたので、gugodのself.pmとingyのSpiffyそして、既存のmy $self = shift;やshift->や$_[0]->で$selfを取る方法それぞれのベンチマークを取ってみました。 テストコードのモジュール名は、それぞれのモジュールの作者名から取り、既存の手法はYAPC::Asiaでプレゼンした事のある日を代表するPerlな企業のCTOからモジュール名を取らせていただきました。 コードは以下の通りです。 package Audrey; use strict; use warnings; use selfvars; sub new { bless { count => 0 }, shift } sub

    mickn
    mickn 2007/12/28
  • YappoLogs: bradとmyとuse fieldsとPseudo-hashesとHash::Utilと

    bradとmyとuse fieldsとPseudo-hashesとHash::Utilと bradプロダクトではuse fieldsが多用されています。そして、 my ClassName $var;のような変数宣言が多用されています。 perldoc -f myしてみるとuse fieldsで使うみたいな事が書いてありました。 use fieldsってのは package Jitensya; use strict; use warnings; use fields qw/(sound); sub new { my $proto = shift; my $self = ref $proto ? $proto : fields::new($proto); $self; } 1; のようなコードがあるとして use strict; use warnings; use Jitensya; my $

    mickn
    mickn 2007/08/03
  • YappoLogs: CatalystのAttributesが初期化されるまで

    CatalystのAttributesが初期化されるまで ちょっとSoozyにもChainedっぽい仕組みを取り入れたくてCatalystのAttributesのコードを追いかけてました。 んで、とりあえず名前のエスケープと文字の長さの制限を加えてみたので、軽くメモしてみます。 AttaributeってのはControllerの中の sub default : Private { }やsub root : Chaind('/') ...のような:の右側にある奴の事です。 適当な解説はPerlのAttributesについてのお勉強でまとめてます。 主にattributesまわりの処理に偏って書いているので来の役割とは違う書き方をしてるかもしれません。 どのコードがどこに在る物なのかとかは空気呼んで把握して下さい。 Catalyst->setup Catalystのアプリケーションは、まずC

    mickn
    mickn 2007/03/15
  • YappoLogs: デブサミで発表してきました

    デブサミで発表してきました デブサミ2007出張Shibuyaイベントでお話ししてきました。 300人の会場が、ほぼ満席状態でかつ完璧なアウェイ状態な中でかつ、会場が凄く豪勢で恐縮する中での発表ですが、前日の入念なリハーサルや発表資料を余裕をもって用意していたおかげで、なんとか無事終わる事が出来ました。 お話の内容は、最初はPlaggerインスパイア系のツールをする予定でしたが、それらツールの作者がLTで発表してしまうため急遽ツールを作成し、そのツールに関する発表もしました。 発表内容はhttp://tech.yappo.jp/docs/devsumi2007/期間限定ノーカット版 発表したDishuberに関してはhttp://svn.yappo.jp/repos/public/Dishuber/trunk/ にて取得可能です。 Dishuberに関しては後ほどちゃんと書く予定。 豪勢な