タグ

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

  • 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 とかからどうやって引っこ抜

    hide-K
    hide-K 2013/11/19
  • YappoLogs: YAPC::Asia 2013 #yapcasia

    YAPC::Asia 2013 #yapcasia 今日みた夢が「blog 書かないと干すぞ!」ってがちぎれる941さんとlestrratさんがでてきたので書く事にした Yappo です。みなさん週末はいかがお過ごしでしたか?僕はカート大会いって箱根で温泉と美味しいご飯べてきました。 編発表資料 社内開発簡単化と世界で戦う開発を考える技術 明らかに会場でかくていっぱい人見に来る、裏発表の DeNA の人が Yappo に負けないクオリティにする!的な宣言してて泣きそうになったのでささやかな反撃でタイトルぱくりました。 1日目の午後一から40分の枠をもらったので、仕事向けのアプリケーション開発で考えなきゃいけない事と、雛形スクリプトを作る時に便利なKsgkの紹介をしました。基的にはコピペ脳は害でしか無いのでいかにしてコピペを排除するか、ちゃんと自分の頭で考えていくか。のような話をしまし

  • YappoLogs: Joining livedoor

    Joining livedoor So, here's the update I promised this week: I'm thrilled to join livedoor as a software engineer, starting Aug. co-workers with lestrrat, nipotan, kazeburo, mala(bulkneets), 941(YAPC::Asia 2011 coordinator) And too many perl hackers ;) みんなが感動するような転職エントリを書こうと頑張っていたのですが、僕の才能では無理だったようなのでもう書きます。自社サービスのブログでお知らせしたとおり8月1日からライブドアに通っております。 20人以上いる会社で働くのが9年ぶりくらいなので緊張するかと思ったのですが、よく考えたら周りを気にし

    hide-K
    hide-K 2011/08/04
    よろしくおねがいします!
  • YappoLogs: あなたがData::Modelを使う10の理由

    « JPerl Advent Calendar hacker track で Module::Setup の事書いたよ | Main | Module::Requires について hacker track last day を書きました » あなたがData::Modelを使う10の理由 前口上 一昨年書いた『あなたがRuby on Railsを使わない10の理由』を書いたら、おおむね好評とともに読んでもらえたみたいで(ほんとかー?)うれしい限り。実際あのあとも記事の影響ってわけじゃないと思うけどRoR使ってくれた人もたくさんいるし、ますます広まってきているみたいでこれも私設営業の人としてはとてもうれしい。 略 (例によって書きかけなので今後もいろいろ変わったりするかも) Data::ModelはCPAN Moduleである まあ上でああいったけどやはりCPAN Moduleであることそ

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

  • YappoLogs: KVSでORマッパーを使うという事

    KVSでORマッパーを使うという事 ケイレキ.jpの中でケイレキ.jpに招待して欲しい人を呼びかけても絶賛スルーされてるYappoです。さて今回は今巷で大人気のKey Value StorageでORマッパーを使う事についてお話するのじゃ。 一般的にORマッパーとはオブジェクトとリレーショナルデータベースをマッピングする為の仕組みの呼び名だと言うのは知られている所です。はい、そうするとKVSってのはハッシュデータベースであるわけなのでおかしいですね。今回の話はData::Model::Driver::Memcachedを使う事を前提としてるので問題が無いのです。なぜなら「data/object mapper」とか書いてあるから。 いわゆるPerlなORマッパーってのは行データをHASHで管理します。それはRDBが一般的に表形式でデータを管理しているからなんだと思います。なんでKVSをオブジ

  • YappoLogs: Imager::ExifOrientation - Exifの情報を元にして画像を回転するよ

    Imager::ExifOrientation - Exifの情報を元にして画像を回転するよ 全国的にみんな真面目だな〜。勉強会の目的なんてないよ。楽しいからやっている。それで何が悪いのかな?の実況中継、その勉強会への 参加そのものについてちょっと考えなおした方がいいかもしれない。 Imager::ExifOrientationをCPANにうpりました。 Exif の Orientation というパラメータを元にして回転済みのImagerオブジェクトを返します。 一緒に Imager::Filter::ExifOrientation もバンドルしてるので、filterとしても利用出来ます。 Orientationは何かと言うと、カメラに縦方向センサーが入ってる機種で、画像に対してカメラの上方向はどちらかというような情報が入っている所です。 わかり易い説明は500で見れないのでgoogle

  • YappoLogs: ひろせさんふるはしさん優勝おめでとう!

    ひろせさんふるはしさん優勝おめでとう! Interop Tokyo 2009のクラウドコンにkumofsで出場します - (ひ)メモ いんたろっぷで優勝すげーすげー kumofsすげーすげー Posted by Yappo at 2009年06月11日 16:23 | TrackBack | 適当

    hide-K
    hide-K 2009/06/12
  • 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 を参考にして開発しました。 他にも後述して

  • YappoLogs: Hash::Merge 活用術

    Hash::Merge 活用術 「全裸は違法だということを言われた。ええええ、そんな法律があるのか?Debugはできるようになるかもしれない。」と思っておセンチなyappoです。 hashを簡単にmergeするCPAN moduleとしてHash::Mergeがあるのは有名ですが、デフォルトだと色々頑張ってマージしちゃうので、例えばHTTP::Engine::Middlewareの使いたいMiddlewareをARRAY refで書いちゃったりして、base.yamlとproduction.yamlでmergeした時に、以下のような混ざりかたでとんでも無い目にあいます。 use strict; use warnings; use YAML; use Hash::Merge; my $base = { Middlewares => [ { module => 'HTTPSession', c

    hide-K
    hide-K 2009/05/28
    specify_behavior
  • YappoLogs: HTTP::Engine is moved to GitHub

    HTTP::Engine is moved to GitHub こんにちわ!gitがむづかしすぎてgitなんか滅んでしまえば良いのにと思ってる金曜日の天使ことyappoです。 表題の通り HTTP::Engine 関連のプロジェクトgithub に引っ越しました。 http://github.com/http-engine http://twitter.com/httpengine http-engineアカウントを取ってそっちで管理する感じです。 必要な方にはコラボレータ追加したりとか良い感じで運用しようと思います。 なおHTTP::Engine 0.1.8 をshipitしました。 Any::Moose 0.08 での変更の追随や http://example.com/?aco=tie でリクエストたときに $req->uri の中身が http://example.com?aco

    hide-K
    hide-K 2009/05/20
    乙です / svn2git
  • YappoLogs: Iron Man Blogging Challengeに参加するよ、日本のPerlな人も参加しようよ

    Iron Man Blogging Challengeに参加するよ、日Perlな人も参加しようよ Perlをもっとブログの表舞台に - Iron ManコンテストとかPM 05:36 Iron Man Blogging Challengeとか見て僕も応募してみたよ! エスペラント語だろうが地球語だろうが言語は何でも良いそうなので日Perl書きの皆も申し込めば良いよ! ironman@shadowcat.co.ukにblogのurlとそのblogの詳細を送れば参加出来るみたいだよ! 僕はURLと日の諺を添えて送っただけだけどちゃんと受理されるかな? 上手くすればmstの髪の毛の色を好きに変える権利も持てるみたいだし損する事は無いので日Perlの盛り上がりぶりを世界に知らしめるチャンスだから皆応募しようぜ! Posted by Yappo at 2009年05月09日 12:41

    hide-K
    hide-K 2009/05/11
    iYappoList::Writingの方じゃなくて心の底から安堵してる
  • YappoLogs: Cobbler Koan を CentOS な Xen で動かしたよ

    Cobbler Koan を CentOS な Xen で動かしたよ Xenが熱かった今年ですが皆様いかがおすごしでしょうか。 Koan - mizzy.org - Trac これで Xen ゲスト OS のインストールがはじまる、はずなんだけど、うちの環境では Segmentation Fault になってしまった。VMWare 上で Xen を動かすというのは無理があるのかもしれない。 実機で試したいところだけど、試せるサーバがないので保留。Yappo さんあたりが試してレポートしてくれるに違いない、きっと。 という牙指令を頂いたので試してみましたよ! 今回の環境をざっと説明すると、Cobblerを入れるマシンはCentOS5.1(i386)な環境で(master server)、cobbler importするディストリビューションはCentOS5.1(x86_64)、koanでネッ

  • YappoLogs: TokyoCabinetがPerlのHASHより遅いわけがない!

    TokyoCabinetPerlのHASHより遅いわけがない! こんにちわ!金曜日担当・Shibuya内フェアリーことYappoです。 mixi Engineers’ Blog » PerlRubyで省メモリなハッシュを使おうにて 100万件のレコードを格納した場合のメモリ使用量と処理時間を測ってみましょう。Perl(5.8.8)でテストコードを動かしたところ、以下の改善が確認できました。標準のハッシュに比べて、メモリ使用量がTCのオンメモリハッシュだと約61%、TCのオンメモリツリーだと約37%になることがわかります。処理時間に関しては157%ほどになっていますが、まあ許容範囲ですよね。といった事が書かれており、その文面の上の解説で、tieしたので、tieしてるからおせーんじゃねーの?とテストコードも見ないで呟いてたらmikioさんからtie使わないでやってるよ!とつっこんでいただき

  • YappoLogs: Shibuya.pm #11で発表しました

    Shibuya.pm #11で発表しました こんにちは、日のHOTEL担当、素敵なレディーことYappoです。3人の荷物が家族のオモチャにされないか心配だけどもう寝るぞ!話は変わるけど、acotieさんはアクメアクメ言っててどんだけアクメ好きなんだよ!と思ったのは内緒だぞ! という訳でShibuya.pmで発表してきました。二立てです。 一目は、一般的なperl userの作法のBやらDevel::Peekの紹介に加えて、新しく作ったDevel::RunOpsAnalizeを使ってOPCODEの実行単位でPerlの動作を覗き見る方法の紹介をしました。 二目はLTで、dan the eval botの作り方を説明する為のCentOSのインストールをするというのを口実にHatetterのアーキテクチャや、なぜこれらの要素を採用したかを紹介しました。 もちろんCentOSのインストールも

  • YappoLogs: はてなのお気に入りアンテナをTwitter Clientで見れるゲートウェイ「Hatetter」作りました

    はてなのお気に入りアンテナをTwitter Clientで見れるゲートウェイ「Hatetter」作りました 注意:ブックマークだけでなく、お気に入りアンテナのフィードを使うようになりました。 はてブのお気に入りリストってRSSリーダとかで見たりするのが多いんですが、もっとTwitterのようにカジュアルにウオッチしたいと思って、お気に入りリストのRSSTwitter API互換のFeedに変換するサーバを書きました。 Hatter - 太っ腹にソースコードも公開してるので、自宅サーバとかに置いて使うってのもできます。 たとえばid:acotieがお気に入りに入れてる人達のブックマークをTwitter風に変換したい時は http://hatetter.blogdb.jp/acotie/statuses/friends_timeline.json もしくは http://hatetter.b

  • 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

    hide-K
    hide-K 2009/03/27
  • YappoLogs: danさんのllevalをもっと便利にするラッパー作った

    danさんのllevalをもっと便利にするラッパー作った 404 Blog Not Found:Ajax - Lightweight Languages を実行するAPI 今度はPerlだけではありません。一時はcodepadの1/100くらいの利便性まで下がってしまって心配しましたが、80倍便利になってぼくたちのDan the APIが帰って来ました。 しかし、まだ物足りない所として貼付けたcodeのpermalinkが取れないので、実行結果を友達に教えてhackに役立てるのが不便でした。 そこでDan the APIを利用する形で、貼付けたcodeのpermalinkを作るCGIを作りました。 http://seiitaishougun.com/lleval.cgi ソースコードは公開されてるので、自己責任で遊んで下さい。実際に動いてる物はYacafiのpack機能をつかって1つのファ

    hide-K
    hide-K 2009/03/26
  • YappoLogs: HTTP::Engineの今とこれから

    HTTP::Engineの今とこれから 昨年末にHE con #1 が開催されてから久しいですが、あの前後で話題になっていた 「HTTP::Engineは依存が大杉メモリいまくり」な件に関しては、Shikaという回答を出し、その後Mouse版の0.1.1をリリースしました、 そして最近Stevanから「Any::Mooseはどうか? lang:en」と言った話も有り、現在Any::Mooseに依存した0.1.4を出すべく0.1.4_xをCPANにあげています。 クラスビルダーにMooseを使うか捨てるか論争は、0.1.4にて妥協出来る所に落ち着いたんじゃないかなと思います。 Any::MooseやMouseが細かい所で挙動が変わるかどうかは今のところわかりませんが、少なくともHTTP::Engineで採用した事により安定する方向になるんじゃないでしょうか? もちろんより高い互換性の為の変