タグ

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

  • YappoLogs: ikachan with Yappocall for LINE BOT API Trial Account

    ikachan with Yappocall for LINE BOT API Trial Account LINE さんから Bot が作れる API がリリースされたということなのでikachanと昔なつかしYappocallの LINE 版を作ってみました。 実物はこちらhttp://yappocall.yappo.jp/ 初代 Yappocall は APNs で実装してましたが、今度は LINE を使ってるので僕からのお知らせが表示されてて双方向インタラクションな未来が来てる! LINE の開発者画面で Bot の作成を行い必要な設定を済ませた後、 Bot 連携するために必要な情報をソースコードに書いて実行するだけで簡単に ikachan のような単純な Web API が設置出来ます。 ソースコードの設定以外にも必要な作業があって、作成した LINE Bot を友だちに追加して

  • YappoLogs: xlsx ファイルを git diff しやすくする為の天才的な wrapper script を書いた

    皆さんはプロジェクトのリソースとしてエクセルの xlsx ファイルを使う事があると思います。 何てったって事務職の人ですら楽々使えるスーパー優れた UI なので、 web の管理画面とかを作り込むよりもエクセルでシート作ってもらってしまった方が早いケースも多いんです。現実の世界では。 で、普通の人は TSV にするだの CSV にしてもらうだのすると思うんですが、一方的にデータ貰うだけなら良いんだけど、相手とやり取りする時にはどうしても xlsx ファイル経由とかにしないと相手がこまる!やっぱりエンジニアのエは優しさのエだから相手に優しくしないとだめです。 で、 xslx ファイルでエンジニア以外の人とデータやり取りするとやっぱり、バージョン管理したくなるのが人情です。 でも xslx ファイルはバイナリファイルなので git diff とかが残念です。。。 って事で作っちゃいました。 h

  • 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: 馬鹿でもわかる Application Server と Reverse Proxy Balancer のお付き合いを考える

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

    jazzanova
    jazzanova 2013/06/07
  • YappoLogs: Amon2 で国際化アプリを簡単に書く Amon2::Plugin::L10N を出しました

    « HTTP::AcceptLanguage - Accept-Language ヘッダを解析して適切な言語を返す君 | Main | zh-hans, zh-hant に対応してない!って怒られた時は » Amon2 で国際化アプリを簡単に書く Amon2::Plugin::L10N を出しました Perl で L10N する方法としてはPerl でつくった web サイトを L10N する方法 - tokuhirom's blog.が有名ですが、昨今はうっかりパンケーキとか唐揚げをべてたらロンドンとかに海外進出しちゃうようなのが当たり前になった現代においては、 blog のコードをコピペするやつは死んどけば良いので、死なないため殺されない為に実用的に CPANize して殺す側に回りました。 https://metacpan.org/release/Amon2-Plugin-L10N

  • 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

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

  • YappoLogs: yappocall を作った。もしくは inside yappocall

    « OSDC.tw 2011 で Groonga 布教してきました/もしくは TOEIC スコア 100 未満の日人が国外カンファレンスで英語プレゼンする方法 | Main | iPhoneの移動履歴を再生するiPhone Tracker Stream作ったよ » yappocall を作った。もしくは inside yappocall もともとはヌーブラアプリを作るためにiPhoneの開発環境を作ったのですが、ちょっと気が向いてim.kayackみたいなのを作ってみました。 im.kayack使えば良いじゃんって話もありますが、着信音を僕の好きな音とか声とかにしたかったので作ったのです。 通知の時にならす時には、hoge.appを作った時に一緒にコンパイルされてないと駄目なんです。 同時にコンパイルされちゃってさえいれば、通知するサーバ側の都合で音声を選べるという感じ。 yappoca

  • YappoLogs: JPerl Advent Calendar 2009 はじまりました

    JPerl Advent Calendar 2009 はじまりました という事で始まりました。 http://perl-users.jp/articles/advent-calendar/2009/ gfxさんがまとめてくれたPerl界隈のAdvent Calendarの便利リンク集も有るので便利です! 今回はトラックが二つに別れた事の他にDBIx::SkinnyとData::Modelのトラックが出来てるのに気づくかと思います。 これは、来予定されていたものでは無くて、今回のJPerl Advent Calendar 2009は結構便利に書ける仕組みだったので、便乗して開始したといういきさつです。 Advent Calendar書く為の準備をする必要が特にないので参入障壁が低いと言う事ですね。 何が言いたいかというと、もし何かのテーマでPerl Advent Calendarをやってみ

  • YappoLogs: Ajax アプリ等の為の JavaScript コードのテストツール JSTAPd を作ってるよ

    Ajax アプリ等の為の JavaScript コードのテストツール JSTAPd を作ってるよ Data::ObjectDriverをDISってる人の話題が三周目に突入した今日この頃ですが皆さんは何をDISってますか?Yappoです。 JavaScript にもテストツールが色々とあると思うんですが、 Ajax アプリの XHR リクエストとかも含めてラクチンにテストできるツールが見つからなかったので JSTAPd というツールを作りました。 http://github.com/yappo/JSTAPd 名前の通りテスト結果はTAPで出力してるのでproveコマンドとかを使ってPerlの作法でテストできます。 ブラウザの連携の設定をすれば prove -v foo/hoge.t とかをコマンドで打ち込めば勝手にブラウザ立ち上げてテストコード実行してブラウザ閉じて結果をコンソールに吐いてく

  • YappoLogs: HTTP::Request::StreamingUpload - 省メモリでrequest bodyをupload

    HTTP::Request::StreamingUpload - 省メモリでrequest bodyをupload Today I created a good wrapper for request body upload HTTP::Request. this module is use few memory on file upload. also too big file. http://search.cpan.org/dist/HTTP-Request-StreamingUpload/ http://github.com/yappo/p5-HTTP-Request-StreamingUpload DESCRIPTION HTTP::Request::StreamingUpload is streaming upload wrapper for HTTP::Request. It

  • YappoLogs: YAPC::Asia 2009 発表資料など

    YAPC::Asia 2009 発表資料など まだ終わってないですが発表資料等。 1日目の Data::Model の資料は http://yappo.ficia.com/pl/album/1E8DF4EE-9DB6-11DE-B1EE-7BD1A805B909 2日目の LT nginx に突いての資料は http://yappo.ficia.com/pl/album/9509705E-9EAA-11DE-ADEA-3624873069EA 一応テキスト版を置いてあります。 http://github.com/yappo/talk-yapcasia2009/tree/master なお LT で発表した nginx with memcached は http://github.com/yappo/ngninx-ngx_http_memcachep_module/tree/master に

  • YappoLogs: HTTP::Engine は国産か否か

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

  • 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_

  • 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: Cache::Memcached::Retry - servers の数だけ勝手に retry

    Cache::Memcached::Retry - servers の数だけ勝手に retry Cache::Memcached って servers を複数設定してて、どれか落ちてるサーバに当たった時に最初undef返して、次の接続からrehashされたサーバに接続するんだけど、落ちてるサーバに最初に当たったの時のundef帰ってくるのが嫌なので、undef帰って来たらserversの数だけretryを試みるようなラッパーを作った。 get_multiは、これが欲しい用途では使わないし面倒なので未実装。 package Cache::Memcached::Retry; use strict; use warnings; use base 'Cache::Memcached'; for my $name (qw/ set add replace delete get /) { no str

  • 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 | 適当

    jazzanova
    jazzanova 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