タグ

ブックマーク / devpixiv.hatenablog.com (23)

  • pixivの事例で考える、脆弱性報奨金制度との上手な付き合い方 - pixiv inside [archive]

    新CTOの@edvakfです。 今年のピクシブ株式会社アドベントカレンダーも無事最終日を迎えることができました。 http://qiita.com/advent-calendar/2016/pixiv 脆弱性報奨金というものがありまして、日だとCybozuさんとかLINEさんの事例が有名です。 今回はピクシブで脆弱性報奨金の導入事例を元に、脆弱性報奨金とどう付き合っていくのが良いかを考えていきます。 忙しい人向けのまとめ BugBounty.jpを利用して脆弱性報奨金制度を導入した セキュリティ部署を作らなくてもミニマルに始められて良い 会社の規模に合わせて報告件数をコントロールしながら報奨金額を設定しよう BugBounty.jp CybozuさんやLINEさんは自前で脆弱性報奨金の窓口を運営されていますが、ピクシブではBugBounty.jpというサービスを利用しています。(pixi

    pixivの事例で考える、脆弱性報奨金制度との上手な付き合い方 - pixiv inside [archive]
    kamipo
    kamipo 2017/01/03
  • 大量接続に耐えるWebSocketアプリケーションサーバ構築のコツ - pixiv inside [archive]

    WebSocketの扱うサービスでは、長時間のコネクション、再接続処理、プロキシ、ロードバランサなど、インフラの面で多くの問題を抱えがちです。弊社のサービス「pixiv」の9周年企画でも、この問題に直面しました。 実際にそこで構築したインフラの事例をもとに、運用に使えるWebSocketサーバの構成について、pixivインフラ部の南川からご紹介します。 * 9周年企画 “黒歴史”をロケットで宇宙に飛ばす pixiv歴史 そもそも WebSocket とは? WebSocketはTCP上で動く双方向通信のための通信規格です。 Webページの読み込みで行われているような、クライアントがサーバにデータを要求し、サーバはクライアントにレスポンスを返すというHTTPの通信ルールとは違います。サーバと長時間コネクションを確立し、Socketのようにデータのやり取りを行います。そして、コネクションを

    大量接続に耐えるWebSocketアプリケーションサーバ構築のコツ - pixiv inside [archive]
    kamipo
    kamipo 2016/12/05
  • ISUCON6出題チームが社内ISUCONを開催!AMIも公開!! - pixiv inside [archive]

    ISUCON6の出題者の1人の@catatsuyです。 GW直前の4/28、年度入社の新卒エンジニア全員と社内のエンジニアほぼ全員が参加するイベントとして社内ISUCONを開催しました。 同じく出題者の1人である@edvakfの記事でも書いたように、今年のISUCON6では株式会社はてなさんと弊社で共同出題する予定です。 inside.pixiv.net 今回は弊社のISUCON6出題チームの4人で開催した社内ISUCONの様子を紹介します。 社内ISUCON 時間は12:30から19:00まで行いました。営業日に会社のエンジニアのほとんどが参加するイベントなので、午後を割り当てる形にするぐらいが良いのではないでしょうか。今回は新卒研修の一環としての側面があったので、新卒エンジニアにはISUCON事前ハンズオンとしてこのような内容の講義を行いました。 初期実装 初期実装の言語は『Ruby

    ISUCON6出題チームが社内ISUCONを開催!AMIも公開!! - pixiv inside [archive]
    kamipo
    kamipo 2016/05/18
  • Let's EncryptとnginxでHTTP/2サーバを立てる - pixiv inside [archive]

    この記事は ピクシブ株式会社 Advent Calendar 2015 10日目の記事です。 qiita.com こんにちは。Androidアプリエンジニアのいとおちゃんです。 高校生の頃からアルバイトとしてピクシブに入社してから4年目になりました。昨年は若手アルバイトと名乗っていましたが、気づいたらもう大学生です。最近はpixivマンガアプリの開発をしています。 今回はAndroidアプリ開発の話ではなく、個人的に最もアツいと感じているLet's Encryptを使ってnginxでHTTP/2サーバを立てる話をします。 Let’s Encryptを使おう Let's Encryptを利用すると、無料で認証されたSSL証明書を簡単に発行することができ、ここ最近話題を集めています。今月、Let's EncryptはようやくPublic Betaになりました。そこで、まさに今が旬ともいえるLe

    Let's EncryptとnginxでHTTP/2サーバを立てる - pixiv inside [archive]
    kamipo
    kamipo 2016/05/17
  • CORSでハマったことまとめ - pixiv inside [archive]

    こちらは ピクシブ株式会社 Advent Calendar 2014 の12/16の記事です。 こんにちは、エンジニアの@dnskimoです。 先日、はじめてCORSを実装する機会があったので、覚書がてらまとめておきたいと思います。 CORSとは Cross-origin resource sharingの略です。 読み方は「コルス」でいいんでしょうか? Same-Origin Policyに弾かれずに、異なるドメイン間でリソースを共有する仕組みです。 2014年1月にW3C勧告になり、JSONPに替わる方法として徐々に普及してきているようです(要出典)。 アクセスコントロールの仕様も定義されているので、特定のサイトからのみ利用可能なAPIを作る際などに便利です。 JSONPのような「裏ワザ」的な方法ではないところも個人的に好みです。 詳しいことはネット上に素晴らしい記事がたくさんあるので

    CORSでハマったことまとめ - pixiv inside [archive]
    kamipo
    kamipo 2016/01/11
  • 二次元から三次元を作る方法 — サーバ内でBlenderを動かしてみたら意外にもイケていたという話 - pixiv inside [archive]

    こんにちは、エンジニアのみどです。 ピクシブは、イラスト1枚で簡単にオリジナルグッズが作れるサービス pixivFACTORY を開発しています。 そのpixivFACTORYのプレビューに焦点を絞った勉強会を社内で行いました。 今回は、その勉強会の内容を公開したいと思います。 プレビューとは pixivFACTORYでは、グッズの仕上がりのイメージを確認する機能を提供しています。 この機能は、チーム内でプレビューと呼ばれていて、pixivFACTORYの売りのひとつになっています。 今回の勉強会では、ピクシブのエンジニアがこのプレビューに関する技術やノウハウについて発表を行いました。 pixivFACTORYのプレビューを支える技術 まず、私がアプリケーションサーバ側の処理について発表しました。 ImageMagickやBlenderといったソフトウェアをどのように使い分けているかが見所

    二次元から三次元を作る方法 — サーバ内でBlenderを動かしてみたら意外にもイケていたという話 - pixiv inside [archive]
    kamipo
    kamipo 2015/12/30
  • ISUCON6の出題担当になったので抱負を語っておく - pixiv inside [archive]

    メリークリスマス!ピクシブ株式会社 Advent Calendar 2015は日が最終日です。トリは去年に引き続き今年も@edvakfの担当です。 qiita.com 今日は「腕っぷしに自信のあるウェブエンジニアの祭典」こと、来年のISUCONの出題を担当することになった話を書いていきます。 (ISUCON運営のほうから正式な告知は別途あると思います。なにぶん暫定的なことも多いのですが、ご容赦ください) ISUCON出題することになった経緯 「来年の出題者アンケートでピクシブさんがトップだったので、よろしければ是非」 なんてことをISUCON5戦の懇親会で主催の櫛井さんから言われたときは答えに困りました。我々もISUCON「常連」と言える立場になってきましたので、とてもありがたいお話ではあります。しかしながら、率直な感想は 「オマエら押し付けやがってwww」 という感じでした。 という

    ISUCON6の出題担当になったので抱負を語っておく - pixiv inside [archive]
    kamipo
    kamipo 2015/12/25
  • ブラウザの力を借りてピクシブたんとおしゃべりしようよ💕 - pixiv inside [archive]

    こちらはピクシブ株式会社 Advent Calendar 2015 21日目の記事です。 qiita.com 9月に入社した pawa です。ピクシブが『就職四季報』に載っていなかったため、『PPPのピクシブたん』を読んで就活していました。ピクシブに入社すれば漫画の中で躍動しているピクシブたんと実際に会えると思っていた時期が私にもありました。しかし、未だに夢はかなっていません。 一方、Twitter 上では「人工無脳バトル」というものが繰り広げられており、会話ボットをつくる機運が高まりつつあります。そこで、記事では、Webエンジニアだけでなく学生でも作れる、そこそこ対話可能な人工無脳の作り方を紹介したいと思います。 ブラウザ上で動く雑談対話システムを作ろう 休日に作っちゃいました。 ↓このように、おしゃべりできます。 YouTube なぜブラウザ上か 音声認識が容易に行えるため、ブラウザ

    ブラウザの力を借りてピクシブたんとおしゃべりしようよ💕 - pixiv inside [archive]
    kamipo
    kamipo 2015/12/21
    Mojolicious…!!
  • PHPで高速に動作するURLルーティングを自作してみた - pixiv inside [archive]

    この記事は ピクシブ株式会社 Advent Calendar 2015 13日目の記事です。 qiita.com こんにちは、おはようございます、こんばんは、エンジニアのneo-nanikakaです。 最近、業務でURLルーティングの処理が必要になりました。 社内の他のPHPプロジェクトでは Teto Routing というライブラリを使っているのを知っていたので、こちらを使ってみることにしました。 見事にURLルーティング処理は実現され、他の処理の実装に入ることができました。 完 っと思っていた時期が私にもありました。 Teto Routingは、実行時間がルーティング数に依存する 実装になっています。 ここでいう実行時間とは、Teto RoutingにリクエストURL文字列を渡してから結果が返ってくるまでの時間のことです。 実際、Teto Routingは表1のような時間がかかります。

    PHPで高速に動作するURLルーティングを自作してみた - pixiv inside [archive]
    kamipo
    kamipo 2015/12/13
  • PHP初心者が仕事で躓いた4つの罠 - pixiv inside [archive]

    こちらはピクシブ株式会社 Advent Calendar 2015の2日目の記事です。 こんにちは。Vimエンジニアの kana です。 さて、皆さんもご存知の通り、WebサービスpixivにはPHPが使用されています: PHPについては様々な噂を聞き及んでいた為、 これまでPHPとは関わらないように注意して過ごしてきましたが、 pixiv.netの開発ではPHPを避けて通ることは出来ません。 仕方なくPHPを使うことになる訳ですが、 実際に使ってみると……これが予想していた以上に様々な方向から毎日新鮮な驚きを届けてくれます。 今回は実際に遭遇したPHP初心者が躓くポイントを幾つか紹介しようと思います。 switch の中で continue したら switch の直後に飛ぶ 大量のデータをループでぶん回して処理するのはよくある話です。 その中で特定の種類のデータについては処理をスキッ

    PHP初心者が仕事で躓いた4つの罠 - pixiv inside [archive]
    kamipo
    kamipo 2015/12/03
  • pixiv小説縦書き機能 開発の裏側 ~横のものを縦にする~ - pixiv inside [archive]

    はじめましてこんにちは。pixivでアルバイトをしているhakatashiです。 さる6月10日、パソコン版pixiv小説にて縦書き表示機能がリリースされました。この開発のあらかたを担当したので、今回の縦書き機能開発における裏側を紹介いたします。 構想 縦書き機能開発にあたり、設計段階からその大部分を一任されました。小説機能開発において自分の中に絶えず理念として存在していたのは、ユーザーに最高の読書体験を提供することです。縦書きによって得られる利益を最大化し、快適な閲覧を支援するために、以下のような構想を置きました。 縦書き横書きの組版の差異における違和感を可能な限り軽減すること。 スクロールとページングを融合した、柔軟で快適な閲覧インターフェイスを提供すること。 この2点について詳しく解説します。 縦組版 まず、ウェブブラウザで縦書き表示を実現するにあたり、どのような手法をとるかという問

    pixiv小説縦書き機能 開発の裏側 ~横のものを縦にする~ - pixiv inside [archive]
    kamipo
    kamipo 2015/06/15
    すごい
  • 【お知らせ】ピクシブから飛び出て新しいチャレンジをします - pixiv inside [archive]

    開発マネージャの bash0C7 です。 何かの比喩ではなくタイトルの通り、ピクシブから飛び出て新しいフィールドでのチャレンジに軸足を移す決断をしました。 広くお知らせしたい事柄があるため、このブログにてこれからのチャレンジについて書かせていただきます。*1 自己紹介 2013年秋に技術職として中途入社し、2014年以後は開発マネージャとして働いてきました。*2 キャッチフレーズは「古きよき時代から来ました、まじめなSE、まじめにSE」です。 P-1グランプリ2014で審査員を務めていただいた寺嶋由芙さんリスペクトです。 ピクシブでのエンジニア仕事としては、入社以来、広告技術担当としてピクシブにおけるアドテクノロジー領域を中心にコミットしてきました。大きな仕事としてはRubyGolangによる広告配信システム開発があり、RubyWorld Conference2014などで事例と技術情報

    【お知らせ】ピクシブから飛び出て新しいチャレンジをします - pixiv inside [archive]
    kamipo
    kamipo 2015/06/05
  • ドリコムさんに「社会人交換留学」してきました - pixiv inside [archive]

    こんにちは。4月からリードエンジニアという肩書になり、会社の技術選択などに一定の責任を持つことになったedvakfです。 少々前のことになりますが、4月に株式会社ドリコムさんへ「社会人交換留学」として1週間行ってきました。さらにその後ドリコムさんからスーパーRailsエンジニアのonkさんを1週間迎えてピクシブの業務に携わってもらいました。 面白いけどあまりない試みで手探り状態でしたが、やってみると案の定大成功と言えるものとなったと思っています。「社会人交換留学」の事例がもっと増えるように、何が良かったのかを書いてみます。 発端と目的 常に新しい技術を学びたい意欲はエンジニアなら誰でも持っていると思いますが、常に刺激を得られるような取り組みとして社内で短期間だけ別のチームにインターンのような形で行くことを頻繁にやっていけたら、という話を弊社マネージャーのbashさんとしていたところ、bas

    ドリコムさんに「社会人交換留学」してきました - pixiv inside [archive]
    kamipo
    kamipo 2015/05/26
  • Treasure Agent MonitoringをProduction環境で使い始めた件 - pixiv inside [archive]

    あけましておめでとうございます。最近ジョインした新兵の @bash0C7です。広告系の技術サイドを担当しています。 新年一発目のエントリーとして、昨年末にbetaリリースされたTreasure Agent Monitoringを速攻でProduction環境で使い始めている件について共有します。 Treasure Agent Monitoringとは Treasure Data社が提供している、Fluentd/td-agentのモニタリングサービスです。 2013/12/13開催のFluentd Casual Talks #3で発表され、同日よりベータリリース中です。 詳細はベータリリースのアナウンススライドをご覧ください。 セットアップ方法 fluentd-plugin-for-td-monitoringのgithubのREADMEをご参照ください。 プラグインとして提供されているので、

    Treasure Agent MonitoringをProduction環境で使い始めた件 - pixiv inside [archive]
    kamipo
    kamipo 2015/05/12
  • インターンを支えるpixivの開発環境 - pixiv inside [archive]

    インフラチームの @catatsuy です. ピクシブ株式会社では現在春・夏の年に 2 回 2 週間のインターンを行っているのと,選考の過程として 1 週間のインターンを行っています.その際に実際に pixiv の開発に携わってもらいたいことがあります. しかし残念ながら pixiv を開発する環境を用意するのは以下の理由から容易ではありません. pixiv の抱える画像のデータは膨大 MySQL や KyotoTycoon など各種ミドルウェアに大量のデータが保存されている上に系統が複数あるので複数個立てる必要がある このような状況のために VM などで手軽に pixiv の開発環境を提供することができません.しかしせっかく優秀な学生が会社にインターンしに来てくれているのに pixiv の開発環境を触らせることができないというのは双方に取って機会損失ですし,インターンとして会社の開発手法

    インターンを支えるpixivの開発環境 - pixiv inside [archive]
    kamipo
    kamipo 2015/04/09
  • 『pixivエンジニアが教えるプログラミング入門』という本が出ます - pixiv inside [archive]

    インフラチームの @catatsuy です. 去年非エンジニアの新卒にプログラミング研修というのをやりました. 非エンジニアの新卒にプログラミング研修を行いました - pixiv inside [archive] 縁あってこの研修の内容を書籍化しました. pixivエンジニアが教えるプログラミング入門 (星海社新書) 作者:金子 達哉星海社Amazon Amazon では 2015/03/26 に発売されるそうです. 非エンジニア向けということで手軽に手に取れるように技術書ではなく新書として星海社さんから発売されます.内容は実際にやったプログラミング研修を同じく実際に Mac 上で動く画像投稿掲示板を作ってもらうという内容です.実際に作る画像投稿掲示板のコードは以下に公開しています. catatsuy/sinatra_keijiban 以下の様な読者が対象読者であることを書の『はじめに』

    『pixivエンジニアが教えるプログラミング入門』という本が出ます - pixiv inside [archive]
    kamipo
    kamipo 2015/03/11
    単著すごい
  • 超かんたんに使える出品無料のフリマアプリFrilのFablicさんにお邪魔してきました - pixiv inside [archive]

    こんにちは。最近は仕事Scalaを書いてるのでついつい仕事を満喫してしまっている@edvakfです。Scala楽しい。 今日は最近転職した同僚を訪ねてFablicさんにお邪魔させていただきました。 めっちゃ突然の訪問でしたがお寿司やビールまで用意していただき当にありがとうございました。 pixivの良くも悪くもウェブ的というか Release early, Release often なところとは違って、Fablicさんは徹底的にプロダクトの質を高めているところが伝わってきて、ものすごく刺激的だと思いました。 それより一番印象に残ったのは、Fablicさんは遅刻とかいう概念の無い完全裁量労働制だそうで、このような会社がもっともっと業界をリードしてくれると嬉しいです! 今年は他社訪問をもっとやっていこうと思った理由 考えてみるとエンジニア(に限らずですが)の横のつながりというのは多ければ

    超かんたんに使える出品無料のフリマアプリFrilのFablicさんにお邪魔してきました - pixiv inside [archive]
    kamipo
    kamipo 2015/02/10
    kamipoさん、そんなこと言っていたのか…
  • エンジニアの呼吸を支える技術 - pixiv inside [archive]

    こちらは ピクシブ株式会社 Advent Calendar 2014 の12/24の記事です。 エンジニアは知識労働がメインとは言え、身体が資であることに違いはありません。 そこで今回は、私 @Moyashipan が鼻の手術を受けた体験を通して、エンジニアの呼吸を支える技術についてお話ししたいと思います。 いつからか仕事中に頭痛を感じるように 2012年の春。仕事中に鼻が詰まりやすくなり、それにより頭痛を感じることが多くなっていました。 そしてある日、出社後に自分が風邪気味であることに気づいた時、鼻呼吸ができないほど鼻が詰まっていることにも気づきました。 短期的な解決が長期的には悪化を招く可能性 鼻詰まりがあまりにも辛かったので、薬局に行って鼻詰まり用のスプレーを買って使用してみました。 すると、これまでの人生で体感したことが無いくらいに鼻が通るではありませんか。 それまでの「普通」に

    エンジニアの呼吸を支える技術 - pixiv inside [archive]
    kamipo
    kamipo 2014/12/25
  • pixivのサムネイル事情 - pixiv inside [archive]

    この記事はピクシブ株式会社Advent Calendar 12/10の記事です。 こんにちは、インフラチームの@harukasanです。 さて、今日はpixivで使用しているサムネイル変換サーバについて紹介しようと思います。 pixivにはたくさんのサムネイルがある pixivにはうんざりするほどたくさんの種類のサムネイルがあります。 これは対応しているプラットフォームが多く、また画面毎にもサイズが異なるからです。 PC版であるwww.pixiv.netだけでも10種類以上のサムネイルが使用されています。 また、サムネイルにはアスペクト比を固定したものと、スクエアにクロップした2種類があります。 (Ugoira Tech Talks: Ugoku Backendより) 従来の方法ではこれらのサムネイルをアップロード時に生成していたため、サムネイル生成を非同期化するなどして対応していました。

    pixivのサムネイル事情 - pixiv inside [archive]
    kamipo
    kamipo 2014/12/12
  • pixivで行っているバグフィックスデーについて紹介します - pixiv inside [archive]

    こんにちは、ISUCONのために2ヶ月ほどgoをみっちり書いてた@edvakfです。練習した甲斐あって2位になることができました。 バグフィックスデーについて pixivではPHPのアプリケーションのエラーはすべてfluentd経由でMongoDBに入れていて、管理画面からスタックトレースなどを見られるようにしています。 デプロイ直後などに見たことのないエラーが出ていないかをここで確認したりします。もちろん自分の入れたバグやクリティカルなものであればすぐに直します。 たまにこのチェックをすり抜けて、クリティカルではないけれども1日数個ぐらい出てるようなものが溜まってしまうことがあります。 pixivでは1ヶ月に1回程度、こういう類のバグを潰す日として「バグフィックスデー」というのを実施しています。 流れ 参加者は普段pixivのサーバーサイドを書いているエンジニア6〜8名程度で、その日ター

    pixivで行っているバグフィックスデーについて紹介します - pixiv inside [archive]
    kamipo
    kamipo 2014/11/11