Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LINE Developer Meetup Slide

Avatar for ueneid ueneid
July 27, 2016

LINE Developer Meetup Slide

This slide written about "LINE Creators Market" and "Creators' Theme" was used at LINE Developer Meetup in Fukuoka #15 on 2016/07/20.

Avatar for ueneid

ueneid

July 27, 2016
Tweet

Other Decks in Technology

Transcript

  1. 自己紹介 •  上野 英治 @ueneid •  LINE Creators Market – クリエイターズ着せかえの開発を担当しました

    •  Server Side Engineer – 主に Perl – Elixir 好きだけど最近追えてない 2
  2. LINE Creators Market とは •  販売スタンプ数:280,000 セット以上 •  販売着せかえ数:11,000 セット以上

    •  クリエイター登録数:580,000 人以上 (数値はいずれも 2016/07/10 時点のもの) 5
  3. 環境について •  サーバーサイドの言語は Perl – Amon2 を採用 •  フロントエンドは AngularJS1.x – Gulp

    + Babel で ES2015 で記述して modern に •  DB は MySQL •  キャッシュとして Memcached •  Nginx + Starlet – ユーザー向け静的ファイルは全て CDN 利用 6
  4. Internet Proxy Servers App Servers (For Management) App Servers (For

    Users) DB Servers Batch Servers CDN Log Aggrega\on Servers Memcached Servers Sta\c Origin Servers Proxy Servers LINE Creators Market サーバー構成概要 7
  5. LINE Creators Market サービス構成概要 Creators Market Shop NEON Billing LAN

    XLT Stats LINE Web Login LINE Pay -> hHps://developers.line.me/ 9
  6. LINE Creators Market サービス構成概要 Creators Market Shop NEON Billing LAN

    (LINE App No\ce) XLT Stats LINE Web Login LINE Pay 12
  7. Creators Market と ThriF •  Shop 側にある ThriF サーバー(armeria で実

    装) に対して、リクエストを投げる armeria については -> hHp://line.github.io/armeria/ •  データ操作用の Perl module は自動生成 $ thri' -out /tmp/foo --gen perl /path/to/ your/idl.thri' $ cat /tmp/foo/Bar.pm # auto-generated 17
  8. ThriF: Set と Perl •  set: An unordered set of

    unique elements. Translates to an STL set, Java HashSet, set in Python, etc. Note: PHP does not support sets, so it is treated similar to a List hHps://thriF.apache.org/docs/types#containers 19
  9. ThriF: Set と Perl •  こちらからデータをセットするときは Array $data->{foo} = [‘bar’,

    ‘bazz’,…]; •  データを受け取ったときは Hash say Dumper $data->{foo}; # { bar=> 1, bazz=> 1,…} 22
  10. [RESOLVED] ThriF: Set と Perl •  自動生成されたモジュールにパッチを当てて データ書き込み時も Hash で処理するようにし

    た •  Apache thriF 側に p-r hHps://issues.apache.org/jira/browse/THRIFT-3595 •  Set 型の値が object の場合 -> Tie::RefHash を使う 23
  11. PNG chunk: gAMA •  gamma = 1 のとき、入力と出力が同じ rgb(200, 200,

    200) -> rgb(200, 200, 200) •  gamma < 1 のとき、入力より暗めの出力に rgb(200, 200, 200) -> rgb(150, 150, 150) •  gamma > 1 のとき、入力より明るめの出力に rgb(200, 200, 200) -> rgb(250, 250, 250) 30
  12. PNG chunk: gAMA •  gamma = display gamma * gAMA

    = 2.2 * gAMA (本当は、2.2 * gAMA / 100000 が正しい式ですが、説明しにくいので簡易 表記にしています) •  gAMA = 1/2.2 なら gamma = 1 31
  13. PNG chunk: gAMA •  処理後に gAMA を 1/2.2 -> 1/4.4

    に戻す Edited Restored 1/2.2 1/4.4 34
  14. PNG chunk: gAMA •  処理後に gAMA を 1/2.2 -> 1/4.4

    に戻す 1/4.4 1/2.2 1/4.4 1/2.2 ? 1/4.4 ? 35
  15. [RESOLVED] PNG chunk: gAMA •  Imagemagick を使ってガンマ補正 •  補正値は、 gAMA

    / 2.2 で算出 (本当は、2.2 * gAMA / 100000 が正しい式ですが、説明しにくいので簡易 表記にしています) $ convert /path/to/src.png \ -gamma 0.5 \ # 2.2 / 4.4 +gamma 0.45455 \ # 1/2.2 /path/to/dst.png 38