タグ

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

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

    n2s
    n2s 2013/11/19
  • YappoLogs: YAPC::Asia 2013 #yapcasia

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

  • YappoLogs: Try::Lite supported of older perls

    Try::Lite supported of older perls I fixed Try::Lite's nexted try-catch block don't work on older perls, because I received that bug report by koba04. https://metacpan.org/release/YAPPO/Try-Lite-0.0.3/ Try::Lite は最近の Perl で開発したため、うっかり古い Perl の例外処理が変なやつに対応するのを忘れてました。 pull-req 受け取ってから4ヶ月かかってしまったんですが、例外処理ややこしいせいがあってパッチの意図が良くわからんくて放置してたってのがあります! 最初貰ったやつだと RAII して $@ を良い感じに元に戻すみたいな事してたけど、よく考えたら普通に書けば R

    n2s
    n2s 2013/07/25
  • YappoLogs: Perl徹底攻略という本を作った話

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

    n2s
    n2s 2013/07/18
  • YappoLogs: 馬鹿でもわかる Application Server と Reverse Proxy Balancer のお付き合いを考える

    馬鹿でもわかる Application Server と Reverse Proxy Balancer のお付き合いを考える 一般的な Web Application というのはロードバランサ、Webサーバ、アプリケーションサーバという HTTP を喋るサーバで構成されていると思います。 ロードバランサは高級なハードウェアからソフトウェア(lvs, httpd, etc..)で作るものまで色々ありますね。 アプリケーションサーバでは各種言語に合わせた実装でデーモンが常駐してるでしょう。これはいわゆる普通の Web サーバよりは単純なコンテンツを返す性能が低いです。 そんなわけで動的なアプリケーションサーバが有る構成では js や css や画像など静的なファイルは Apache や nginx などの専用の Web サーバでサービスして、動的なリクエストだけバックエンドのアプリケーションを

    n2s
    n2s 2013/06/07
  • 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 してみる

    n2s
    n2s 2013/03/13
    「一度ビルドした perl binary と元の site_perl を使いまわして、新たに lib path だけ変えて複数の環境を手軽に切り替える事が出来る」そういえば使ったことなかった / id:tokuhiromさんのコメントにも注目
  • 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 するのを忘れてしまうとクリティカルなバグを発生させる要因となりま

    n2s
    n2s 2013/02/18
  • 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 を送っちゃうと親

  • YappoLogs: サービスをつぶさない為に Web アプリを書く時にやっとくと良い事2選

    サービスをつぶさない為に Web アプリを書く時にやっとくと良い事2選 テンプレートのエラーが出た時にアプリケーションのログだけに書くのでは無く、誰にでも「ここがえらってるよ!」って見えるようにしとくと間違いが少なくなる傾向があるのでテンプレートエンジンでフック出来るようになっておいてたら、それをうまく使うと良い。 また、テンプレートエンジンがレンダリングしてるフェーズで DB にクエリが飛ぶような構造で書いてあると、非エンジニアのカジュアルにテンプレートいじる人が甚大なクエリを実装してしまう可能性があるので、これも早期に発見しないとサービスが止まってしまい会社の売り上げが下がってしまい社員が路頭に迷うケースが発生してしまうので、これらも未然に防がなければならない。 Text::Xslate + Amon2 ならこうかける。 package MyProje::Web; ...; { my

    n2s
    n2s 2012/11/26
  • YappoLogs: Perl の サブルーチンリファレンスとコードリファレンスの違いと prottype の & について

    Perl の サブルーチンリファレンスとコードリファレンスの違いと prottype の & について Perl 初心者なので、うっかりはまったので質問してみたら理解力深まったので open & share します。 17:33 < acotie> sub html_builder (&){} 17:33 < acotie> my $x = sub {}; 17:33 < acotie> html_builder $x; 17:34 < acotie> これで Type of arg 1 to main::html_builder must be block or sub {} (not private variable) 17:34 < acotie> て怒られない方法あった気がしたのに忘れたくらい初心者です 17:35 < jox__> html_builder \&{$x}; 17:

    n2s
    n2s 2012/10/04
  • 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

    n2s
    n2s 2012/06/04
  • YappoLogs: #!なんか糞だ

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

    n2s
    n2s 2011/02/14
  • YappoLogs: トランザクションを使用したMySQLのおまとめINSERTはどれくらい速いか

    トランザクションを使用したMySQLのおまとめINSERTはどれくらい速いか 元ネタはMySQL のおまとめINSERTはどれくらい速いか - bonar noteです。 トランザクションでまとめてInsertしてからcommitしたほうが速くなるので、元ネタのベンチマークをベースにして試してみました。 環境は macports で入れた mysql 5.1.44 です。 まぁnormalからbulk(100)くらいの差は出てなくても、トランザクション使ってまとめてコミットしても多少速くなっとりますね。 normal と txn の差よりも bulk(100) と bulk(100)_txn の差が小さいのは、 bulk insert で最初から効率的になってるぶん差が少なくなってるという感じでしょうか。 コードは以下の通り。 Posted by Yappo at 2010年03月09日

    n2s
    n2s 2010/03/09
  • YappoLogs: CodeRepos障害のお知らせ

    CodeRepos障害のお知らせ 最近もitkzに心配されてたのですが、CodeReposを置いてる物理サーバのディスクが壊れたのが原因で朝方からアクセス出来なくなってました。 現在は仮の物理マシンにイメージをコピーして動かしていて無事動いているようです。 移した先のマシンはリソースが弱めなので、明日にでも新しいHDDを買ってきて(何買えばいいの?)ディスク入れ替えとイメージのコピーをやって復旧させる予定です。 なのでイメージのコピー中(約30分くらいかかる)の間は使えなくなります。 作業する前にiirで告知するです。 今回はたまたまイメージが無事っぽい感じで復旧が楽だったので良かったのですが、今後も突然死に備えて真面目にバックアップする仕組み作ります>< 具体的にはsvnリポジトリとtracのデータをrsyncdできる場所にコピーしといて、みんなにrsyncしまくりしといて家が破壊され

    n2s
    n2s 2009/02/10
    「仮想マシン++」
  • YappoLogs: .codeという新sTLDをICANNに提案するのはどうか

    .codeという新sTLDをICANNに提案するのはどうか 航空業界のsTLDがあるんだからプログラムコードの為のsTLDだってあったって良いじゃない。 git clone git://remedie.code/ とか出来たらカッコいいっしょ! .code sTLDが提案されてるのか調べてないけど、なんかあったら使うプロジェクトいっぱいありそうだよねー Posted by Yappo at 2009年01月09日 17:04 | TrackBack | ネタ帖

    n2s
    n2s 2009/01/09
    +1
  • YappoLogs: WWW::2ch updated

    WWW::2ch updated さっそくフィードバックを頂けた(thnksです!)ので変な所をfixしました。 WWW-2ch-0.06としてCPANにあげました。今はインデックス待ちです。 hikarin.jp: MY_memo[2] Can't "sage" without writing *jbbsをread.cgi経由で正規表現で解析しているようだが、 rawmode.cgiを経由すれば普通のdatと扱うようにすることが出来る。Jbbsではrawmode.cgiを利用するようにしました。 Jbbのdatの取り方がもIf-Modified-SinceやRangeヘッダを吐くものを使っていたので、普通のGETをするようにしました。 これに伴いIwashiのbaseもJbbsに変更されました。 なぜなら全ての板がマイクロ秒表示に 対応しているとは限らないからです。マイクロ秒が無いどころ

    n2s
    n2s 2008/11/20
    py2chやnavi2chでは実装されてるがPerlではまだなのか…>●
  • YappoLogs: CodeReposのコミッタが500人越えました

    CodeReposのコミッタが500人越えました 509人になりました。kanさんがしゃぶしゃぶ奢ってくれるという噂の栄光の500人目のコミッタはeveresさんに確定しました。 < kan_> 来月あたりにやりますかね -codereposbot:#coderepos- CodeRepos::Share: Committers/aratafuji created (aratafuji) - http://coderepos.org/share/wiki/Committers/aratafuji?version=1 < kan_> coderepos忘年会兼でとの事なので来月になる模様です。 1981忘年会を越える規模になるかどうか要注目ですね! ちなみにしゃぶしゃぶ会場は100人はいらないけど、100人越える貸し切りだと上の店舗使えるらしい。 Posted by Yappo at 200

    n2s
    n2s 2008/11/17
    494人の状態がずっと続いてたと思ったら、一気に15人増えて509人に。
  • YappoLogs: CodeReposが1年たってGitリポジトリ追加の巻

    CodeReposが1年たってGitリポジトリ追加の巻 昨晩は夜9時から誕生日ケーキを探してたけどケーキ屋さん店じまいしてるのばっかで誕生日中にエントリかけなくなった>< YappoLogs: CodeRepos - 個人レポジトリを共有しよう!計画という記事と共にCodeReposが生まれて一年経ちました。 僕は主に460名分のhtpasswdをひたすら登録をするだけのお仕事をしていたわけですが正直ここまで続くとは思っていませんでした。 これも何もひとえにがんがんコミットしてくれる皆様のお陰だと思っています。有り難うございました。 やっぱり折角人様のコードを弄くりまくれる環境があるのだから、皆ももっとコミットしまくれば良いよ。 あと折角一年経ったという事でリリースし忘れてたGitリポジトリを公開しておきます。 http://git.coderepos.org/です。 GitはSubver

    n2s
    n2s 2008/09/01
    Git ktkr
  • YappoLogs: git.coderepos.org 作る計画

    git.coderepos.org 作る計画 CodeReposにgitリポジトリ追加するよ! 予定は7月後半くらいまでにやる予定なんだけども、まだgit使ってないからどうしたら良いか悩み中です。 それなのでブクマコメントとかで意見とかみんな書いてくれると嬉しいです。 おもな概要は、既存のsvnリポジトリやtracの環境は今まで通り残す。 新規に git リポジトリを上げて、gitweb?か何かでブラウジング。 svn と git の間では sync しませんが、もしなんか良いツールがあれば使うのもあり(ちゃんと動けば) htpasswdはgitもsvnも共有(できるよね?)。 こんな感じです。ご意見よろしゅうお願いします。 あ、あと7月前半にcoderepos.orgのサーバ引っ越しするかもです。 Posted by Yappo at 2008年06月24日 17:31 | TrackB

    n2s
    n2s 2008/06/24
    和製githubついに来るか。
  • 1