タグ

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

  • 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: 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: PHPの関数と同等の実装をPerlでどう書くリファレンスプロジェクト開始のお知らせ

    PHPの関数と同等の実装をPerlでどう書くリファレンスプロジェクト開始のお知らせ ふとしたきっかけでPHPのリファレンスマニュアルにある関数と同等の機能をPerlで実装するにはどうするか?といったリファレンスを作るプロジェクトを始めました。 PHP使いの人がPerlを弄る時に「PHPのこれPerlでどうやれば良いんだ!」といった要望や、ごく普通のPerl使いの人が「これどうやって書けば良いのかな?」って時に使うcookbook代わりに使える事を想定しています。 ドキュメント管理にはgithubhttp://github.com/yappo/docs-php-funcref-in-perlを使い、ドキュメントのビューワーとしてwikihubWikiHub :: php-funcref-in-perl :: READMEを使っています。 書いて欲しいと思った人にはあらかたコラボレータ入れてる

  • YappoLogs: Tracで自分の追いかけたいディレクトリの変更ログだけを簡単に取り出す為の3個の手順

    Tracで自分の追いかけたいディレクトリの変更ログだけを簡単に取り出す為の3個の手順 リポジトリへだんだんと全体のcommit流量が増えて来ると自分の突っ込んだプロジェクトに誰かがpatchを書いても気づかない事が出て来ます。 例えばCodeReposなんかがそうで、困っていた訳です。 さっき知ったんですが、tracは各ディレクトリ毎のコミットログをRSSで出せるので、これを活用して目的を達成します。 具体的にはtracのtemplateを少し追加するとRSS Auto Discoveryできるようになるので、まずはAuto Discovery出来るようにしました。 次は、誰がどのプロジェクトに関わってるかをまとめる訳ですが、これはXOXOというMicroformatsが使えるので、各コミッタページにXOXOで自分のプロジェクトディレクトリへのリンク集を書きます。 自分の場合はhttp:/

  • YappoLogs: Class::Component - プラガブルなモジュールを作る為のベースモジュールの解説

    Class::Component - プラガブルなモジュールを作る為のベースモジュールの解説 pluginやcomponentを取り扱うモジュールを書く時に、plugin/componentを取り扱いを全て引き受けてくれるモジュールを作りました。 だいぶ前からCPANには上げてたんですが、色々あって今日報告と。 既出のアイディアとしてはid:naoyaの Class::Pluggableやid:ya_kenの Class::Pluggable等があります。 これらのモジュールもシンプルでいい感じなのですが、シンプルな分、若干物足りなさがあった(例えばメソッドの生やし方に自由度持たせたいとか)のでこしらえました。 詳しくはCPANのClass::Componentにもありますが日語でも説明文書きたい。 出来る事component追加で基メソッド拡張が出来るplugin追加で、hook p

  • YappoLogs: tracとsvnwebとapache1.3.*でオープンソース開発環境の構築

    tracとsvnwebとapache1.3.*でオープンソース開発環境の構築 http://plagger.org/のようなtrac&svn環境を作りたかったので頑張ってみました。 Apache1.3系でtracとsvnwebの構築をしました。 例としてBloxabというプロジェクトを立ち上げる時の構築方法で書いていきます。 ディレクトリとかユーザー名とかは適時書き換える事。 tracの細かい事についてはドキュメントとかを参考に。 svnリポジトリの作成 $ svnadmin create /usr/local/bloxab/repos普通にリポジトリを作ります。 この作成したリポジトリは、apacheとtracdを動かすuid双方で読み書きできるしておく必要があります。 適切なchownとchmodをしておいて下さい。 以上 tracのインストール tracを動かす為の各種ソフトをインス

  • 1