タグ

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

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

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

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

    yuiseki
    yuiseki 2013/06/08
  • YappoLogs: HTTP::AcceptLanguage - Accept-Language ヘッダを解析して適切な言語を返す君

    HTTP::AcceptLanguage - Accept-Language ヘッダを解析して適切な言語を返す君 月曜日の悪魔こと yappo です。 今時のグローバルな社会ではみなさん多言語対応の web アプリを書いているとおもいますが、その時に使う Accept-Language を解析してくれるのを書きました。 HTTP::AcceptLanguage Plack なアプリだったら。 my $lang = HTTP::AcceptLanguage->new($req->header('Accept-Language'))->match(qw/ en fr es ja zh-tw /);ってするだけで、英語フランス語スペイン語日台湾語の中からユーザが利用可能な最適な言語を探して返してくれます。 もし適切な言語が無ければ undef を返すので、あなたがおすすめの言語で返しておくと

    yuiseki
    yuiseki 2013/04/26
  • YappoLogs: シェル関数でHTTP のステータスコードをすばやくしらべる! そしてメンテナンスフリー!

    シェル関数でHTTP のステータスコードをすばやくしらべる! そしてメンテナンスフリー! 一般的な Web Programmer ならば、HTTP Status code はすべて暗記していると聞きました。 しかし、僕は初心者なので、なかなか覚えきれていないので、HTTPのステータスコードをさがすのに便利なシェル関数を用意しました。httpstatus.sh です。.basrc とかに書いとくだけです。 使い方は以下のとおりです。 4xx なコードを列挙する。 $ httpstatus 4 400 Bad Request 401 Unauthorized 402 Payment Required 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Req

    yuiseki
    yuiseki 2013/02/24
  • YappoLogs: Web関連エンジニアなら必ず読むべき本 〜 Webエンジニアのためのデータベース技術[実践]入門 〜 を全部読んだ

    Web関連エンジニアなら必ず読むべき 〜 Webエンジニアのためのデータベース技術[実践]入門 〜 を全部読んだ 2709円でこんなに濃厚なコストパフォーマンスがアホみたいに高いは読んだ事無いし、Web関連のエンジニアをやっている人は必ず読んだ方が良いし、特にどのレイヤをやるかに関わらずエンジニアを目指す学生さんも卒業までには読んでおいたほうが良いでした。 なんか誤解が多そうなんで追記しておくと、書は「カジュアルなデータベース*利用者*のための入門」ではなくて「質的なデータベース技術の知見を得る為の入門」である。ちゃんとタイトルだってデータベース技術って書いてあるでしょ? 明日着でWDP献先と同住所に送付さ せていただきます。ご一読いただき、コメントなどいただけると大変ありがたい です。 明日発売なので念のためご連絡させていただきました。 というメールを3月8日に頂いて、実

    yuiseki
    yuiseki 2012/04/02
  • YappoLogs: Shibuya.pm Tech Talks #7で話して来た

    Shibuya.pm Tech Talks #7で話して来た Shibuya.pm Tech Talks #7でお話しして来ました。 皆様おつかれさまです。 自分は自然文書から住所抽出してくれるGeography::AddressExtract::Japanというモジュールを作った時の話をして来ました。 他の方々は成果物の発表系だったのに対し、自分はモジュール作成の過程の話をしました。ここでもピントずらすの全開です。 住所抽出をするにあたり、とっかかりをどうしたか、実装方法をどうするか、具体的になにしたか、といった流れです。 開場で100名オーバ、インターネット中継で200接続程合ったらしくYAPC::Asia 2006 Tokyoと規模変わらんと思った。 なんかしらんけど画面が切れてるのを直してるので時間を潰したのが痛かった。 後半がほぼカットです。 話し終わって椅子に座ろうとした所で

  • YappoLogs: InnoDB Deep Talk #1 に参加して来た話または 住所正規化 MySQL UDF を作った話

    « Kyoto.pm Tech Talks #01 に JPA の 地域PM向け 講師派遣支援プログラム で参加してきます! | Main | Kyoto.PM #1 で発表してきました » InnoDB Deep Talk #1 に参加して来た話または 住所正規化 MySQL UDF を作った話 昨日は起きたら参加申し込みしてたはずの InnoDB Deep Talk #1 が始まってるらしいのに気づいて急いで行ってきました。入館面倒い会場なのに遅刻者対応したりピザとか飲み物調達とか面倒い事をニコニコやってるいちい++だったし、ピザーラのピザじゃなくてサルヴァトーレのピザはやっぱり上手くて沢山くってしまった。 っていう話は置いといて、一通り終わって歓談タイムに突入した時に、もりよしさんが昨夜思いついた inokodb っていう素晴らしいストレージエンジンを、その場で実装してて LT して

    yuiseki
    yuiseki 2012/03/12
  • YappoLogs: Perl-users.jp創設者 大沢Yappo和宏 からの緊急のお願いをお読み下さい

    Perl-users.jp創設者 大沢Yappo和宏 からの緊急のお願いをお読み下さい http://perl-users.jp/articles/advent-calendar/2011/ http://atnd.org/events/22657 今年もやってきました。アドベントカレンダーの季節が! アドベントカレンダーは特別なものです。たとえるなら図書館、公園、あるいは知の神殿のようなものです。私たちが考えたり、学んだり、知識を交換しあったりできる場所です。 既に5トラックの応募が始まってます!まだまだ席に余裕がありますので Perl に関わってる方は是非参加しましょう。 アドベントカレンダーを開始したとき、そこに広告バナーを設置し営利企業にすることもできたでしょう。しかし、私は別の道を選びました。私たちは、書き込みシステムのスリム化に努め、小さな組織であり続けています。私たちは使命を

    yuiseki
    yuiseki 2011/12/01
  • YappoLogs: App::Ikachan - 様々なサーバのバッチ処理の結果等を IRC のチャンネルに通知するサーバ

    App::Ikachan - 様々なサーバのバッチ処理の結果等を IRC のチャンネルに通知するサーバ 皆さんは、日々のお仕事の中で様々なバッチ処理やデプロイツールまたはCIツールを動かすと思います。 一般的なネット系のエンジニア仕事のコミュニケーション手段として IRC を用いているというのが有名ですが、これらバッチ処理の処理状況等を普段の生活環境である IRC に流せたら便利です。 実際に前の会社では、 deploy tool, ci tool, etc batch script の処理結果を社内 IRC channel に通知するような物を hirose31 さんが作ってくれて、とても便利でございました。 とはいえ、各種スクリプトが独自に IRC server に繋ぎに行く事は大げさですし、バッチが走る都度 join/part されたらうざいです。 そこで前の会社では、 IRC s

    yuiseki
    yuiseki 2011/10/06
  • 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年ぶりくらいなので緊張するかと思ったのですが、よく考えたら周りを気にし

    yuiseki
    yuiseki 2011/08/04
  • YappoLogs: iPhoneの移動履歴を再生するiPhone Tracker Stream作ったよ

    iPhoneの移動履歴を再生するiPhone Tracker Stream作ったよ 今話題の、お前のリアルな行動履歴はJobs様に筒抜けの件ですが、sugyan++ するだけでiPhoneのトラッキングファイル抽出作ってもらったので、それつかってiPhoneの移動履歴をGoogle Mapでストリーミングするツール書いたよ。 https://github.com/yappo/iPhoneTracker 適当に動かしてSafariとかで開いてください。 全部再生し終わったらプロセス殺してあげ直すとかそういうので。 s/Wifi/Cell/ にすると基地局をプロットします。デフォルトはWifiアンテナの位置なのでより精密です。 彼女の電話をハックするネタが前の飲み会で話題になっていて、いつかやりたいなーと思っていたのですが、遂に出来てよかった^^ ちなみに私のはこんな感じでした。 Posted

    yuiseki
    yuiseki 2011/04/22
  • YappoLogs: simpleTimeago.js - facebook っぽい "2 minutes ago" みたいな時刻表記を作るjs書いた

    simpleTimeago.js - facebook っぽい "2 minutes ago" みたいな時刻表記を作るjs書いた 表題の通りの物を書きました。 https://github.com/yappo/javascript-simpleTimeago デモはこちら http://yappo.github.com/projects/simpleTimeago/ 同種の物として jquery.timeago.js とかあるんですが、そもそもjQuery pluginである必要がないし、時刻フォーマットの拡張の自由度が小さくて用途に合わないので作りました。 使い方はコードを見た方が手っ取り早いでしょう。 simpleTimeago(epoch_time);ってだけです。 フォーマットの追加もとても簡単で、コードの下の方にサンプルてきに英語版と日語版のフォーマットを書いてあります。 だい

    yuiseki
    yuiseki 2011/02/15
  • YappoLogs: iPhone とかの フリックで操作するカルーセル UI を jQuery mobile で作ってる話 (jquery.mobile.carousel)

    iPhone とかの フリックで操作するカルーセル UI を jQuery mobile で作ってる話 (jquery.mobile.carousel) AppStoreとかで、アプリのキャプチャを複数表示したい時にカルーセルなインタフェース(これのAPIの名前わからん)にして画面の高さを節約する事をすると思うんですが、それをjQuery mobileで再現するプラグインを書いてみました。 全画面で画像をプレビューする用途で作ってあります。ポイントは、AppStoreの画面キャプチャ見るやつと同等の動きをするって所です。 画像サイズも画面サイズに合わせて自動的にリサイズして、良い感じに自動的に配置するという。 画面の恥じっこに引っ張ったときの跳ねっ返りも再現してあります。 ぼくAndroidもってないので、Androidな人に是非とも添削して欲しいです。それかAndroid端末下さい。 コ

    yuiseki
    yuiseki 2011/01/26
  • YappoLogs: ficia uploader for linux

    ficia uploader for linux @etolabo 【リクエスト】Linux版のアップローダも作ってください。 #ficia 5:02 AM Aug 18th Tweetie for Macから nippondanji Mikiya Okunoと言われたので、ちょっとだけ作ってみました。 http://github.com/yappo/ficiauploader perlの無い環境でも使えるので安心だと思います。 ディレクトリ監視して、usb刺したら自動uploadの部分は時間が足りなくてperlで実現してるけど。。。 参考文献: http://blog.yappo.jp/yappo/archives/000715.html つかgallery2 protocolなライブラリ見つけて作りたかったんだけど。。。 Posted by Yappo at 2010年08月21日 2

    yuiseki
    yuiseki 2010/08/21
  • YappoLogs: そろそろWEB+DB PRESSについて一言いっておくか

    そろそろWEB+DB PRESSについて一言いっておくか こんにちは、最近 ここ1ヶ月間で映画館に4回行っているYappoです。 さて、ご報告が遅れましたが、先月発売されたWEB+DB PRESS Vol.56より「モダンWebインタフェース構築術」という題名で連載をさせて頂く事になりました。過去に違うジャンルの雑誌で連載していた事があったのですが、技術誌での連載は初めてなので胸がバクバクしています。 内容はというと、今風のWebアプリを作る時に知っておきたい事やらFiciaを実装していく事で得られた知見等を紹介していく方向性になっています。 おもにクライアント側の実装に焦点があたり、JavaScript+Ajaxな感じの連載になるんじゃないかという話もありますが、そこはまぁ特定の言語にフォーカスした感じにはならないかなと、実装例は出るけど質的には「こういうのが困って、こういう解決方法を

    yuiseki
    yuiseki 2010/05/08
  • YappoLogs: するったー というTwitter連携のサービス作ったよ

    するったー というTwitter連携のサービス作ったよ こんにちは!近頃mihimaru GTの曲がすごく好きな、月曜日の悪魔ことYappoです。 さて、僕の大好きなWassrには「飲みに行けるよ!」という素敵なボタンがあります。 とある楽天の偉い人も すげえ、お前作ったの?と言ってしまう程画期的なボタンで、一時期は毎日のようにこのボタンがきっかけで飲み会が開催されていました。 なにがいいっていうと、知らないおっさんとかと飲みに行けるチャンスが増えるとかそういうのですね。 最近はビッグウェーブにのるっきゃないし、九州の方にとんでってるっぽいTKSKっぽい人が「これtwitterのOAuth使って移植したり、ボタンの内容変えればよくね?」 みたいな事もいってたので、ちょっとこのボタンをTwitterに移植してみました。 Surutter - するったー名前の由来的には、お酒を飲む事を"する"

    yuiseki
    yuiseki 2010/04/23
  • YappoLogs: FiciaがEye-Fiに対応したのでアップロードツール書いてみた

    FiciaがEye-Fiに対応したのでアップロードツール書いてみた FiciaがEye-Fiからのアップロードに対応したついでに、Eye-Fiからの受け口がGR2プロトコルなんで折角なんでGR2プロトコルしゃべってFiciaにアップロード出来るスクリプト書いてみたよ。 使い方は簡単なんですが、最初にFiciaからEye-Fiアップロード用のトークンを取る必要があるんですが、それは写真アップロードする所 の中に「Eye-Fiでアップロード」ってのが追加されてるので、そこクリックして「次へ」ってやってくと「パスワード」っていうハッシュっぽい文字列が出るので、これをコピーしときます。 そのパスワードをFICIA_EYEFI_PASSWORD環境変数にセットして $ perl ./ficia-eyefi-uploader.pl アップロードしたい画像ファイル.jpgってするとアップロードされるはず

    yuiseki
    yuiseki 2010/03/23
  • YappoLogs: 僕の撮影環境とFiciaの事について

    僕の撮影環境とFiciaの事について 今年に入ってから単純に僕の使ってるカメラのアフィブログ書こうと思ってたらこんなタイミングになった。とは言っても撮影テクニックやら詳しい事は良くわかってナインすが。。。 せっかくえとらぼ、写真ストレージサービス「Ficia」の追加容量を値下げ:ニュース - CNET Japanという感じで料金が1/10になって動画が上げられるようになったんでFiciaの事もまとめて書こうとおもう。 前座 今日は二立てなんだけど、その前にみて物足りない所を。 どんだけ使ってるか 何かある度に写真取りまくってて動画対応される前までは15GBくらい溜まってたんですが動画対応始まってから20GB一気に越えてる感じです。枚数は9000枚くらい。 昔のは電源入れてないサーバとかに入ってて引っ張り出すのめんどいので入れてません>< ちなみにFiciaに同期したら全部消してるので特に

    yuiseki
    yuiseki 2010/01/21
  • 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 をつかった場合のスキーマ定義を下記に貼ります。 ちなみに、それらしいような定義をしてますが全部フ

    yuiseki
    yuiseki 2010/01/19
  • YappoLogs: iPhotoは取り込んだ写真にExif追加します

    iPhotoは取り込んだ写真にExif追加します eyefiで上げまくる生活をした後にiPhotoに残ってる古い写真も上げようと思ったらeyefiで上げ済みの写真も上がっててバビった今日この頃皆様いかがお過ごしでしょうか。 iPhotoに取り込まれた写真はExif情報を追加するといったことが一般的に知られていますが、実際にどんなデータが追加されてるかを見てみました。 材料:iPhoto通してない写真 1枚 iPhoto通した同じ写真 1枚 下記のスクリプト use strict; use warnings; use Image::ExifTool ':Public'; my $eyefi = ImageInfo(shift); my $iphoto = ImageInfo(shift); while (my($k, $v) = each %{ $eyefi }) { my $iphoto_

    yuiseki
    yuiseki 2009/08/20