タグ

ブックマーク / inside.pixiv.blog (20)

  • ピクシブの全員が共通で使ってるSaaSの紹介 - pixiv inside

    この記事では2020年5月時点でピクシブの社員全員が使っている主なSaaSを紹介します。 ピクシブとSaaS ピクシブはpixiv、BOOTHなどクリエイターを支援する様々なサービスを提供していますが、これらは基的に内製しています。 業務を支えるシステムは最近ではもっぱらSaaSを選ぶことで、社内の開発・運用力をユーザ向けにフォーカスするようにしています。 そんなピクシブでは、かつてはチームごとにバラバラにSaaSを選んで使うことを基にしてきました。 現在はチームが違えどピクシブのプロダクト全体を皆で支えているという意識が高まり、チーム間での共通言語化をすること、利用ノウハウを高めることの重要さが上がってきました。 そういう変化を背景として、徐々に使うSaaSを全員で同じものを使うようになってきています。 なお今でも新しいサービスの利用が必要になったら、どの社員でも申請することができま

    ピクシブの全員が共通で使ってるSaaSの紹介 - pixiv inside
    atomicmap
    atomicmap 2020/05/21
  • Rails + Contentful で LP のコーディングをゼロにする - pixiv inside

    こんにちは、@f_subal です。 pixivFACTORY というサービスで普段はフロントエンドをやっています。 今回は Rails のサービスに Headless CMS の Contentful を導入し、ワークフローを改善した話をします。 ランディングページ、あるいはマスターデータの詳細について pixivFACTORY はグッズおよび同人誌がブラウザ上で簡単に作れるサービスです。 取り扱っているグッズは 60 種類以上あり、各グッズごとに仕様が大きく異なります。 グッズにはそれぞれ、仕様や出来上がりの写真を載せたページ(以下、product 詳細とも呼びます)が存在します。 要するに、以下の状況を想定してください。 運営が管理する静的なドメインモデル(ここでいう「作れるグッズの仕様」)が存在する モデルの各内容について説明するページが存在する 各ページの内容は DB の内容から

    Rails + Contentful で LP のコーディングをゼロにする - pixiv inside
    atomicmap
    atomicmap 2020/01/16
  • GitLab令和最初のリプレイス。フルコンテナ化ポスグレ移行 - pixiv inside

    こんにちは、sue445です。 先日社内で使ってるGitLabのリプレイスをしたのでその辺の話をしたいと思います。 リプレイスの内容 今回のGitLabリプレイスでは主に下記を行いました。 サーバ移設に伴いURL以外全部変えた レガシーな環境で運用されていたGitLabを全てDockerコンテナに載せた MySQLからPostgreSQLに移行 以上を1時間弱のメンテでやりきった 構成 ざっくり書くと、SSL終端のフロントサーバのみ同じで、それ以外のバックエンドを全部変えました。 旧 APサーバ Debian Wheezy CPU: Intel Xeon E5-2640v2 * 2 Memory: 40GB Disk: 64G + 512G MySQL兼Redisサーバ Debian Wheezy CPU: Intel Xeon X3430 Memory: 8GB Disk: 256G M

    GitLab令和最初のリプレイス。フルコンテナ化ポスグレ移行 - pixiv inside
    atomicmap
    atomicmap 2019/09/19
  • 筆跡再生機能の Flash を Canvas に移植しました - pixiv inside

    福岡オフィスで課題解決チームに所属しているエンジニアの @petamoriken です。弊社では drawr というサービスを11年間提供していましたが、2019年12月2日13:00をもってサービスを終了することとなりました。詳しくは drawr 特設サイトを御覧ください。 drawr はサービスの中核が Flash の技術で成り立っています。特にイラストを描くドロー画面と、投稿された作品の筆跡再生機能がブラウザにプラグインとして搭載されている Flash Player を使って提供されています。 drawrのサービス終了にともない、以下の機能を新規開発・提供しました。 投稿作品一括ダウンロード機能 お絵かきコミュニケーションサービス「pixiv Sketch」への引っ越しツール drawrの描き味を再現したドロー機能「シンプルドローモード」(pixiv Sketch で利用可能) その

    筆跡再生機能の Flash を Canvas に移植しました - pixiv inside
    atomicmap
    atomicmap 2019/07/31
  • RubyWorld Conference 2018に登壇しました #RubyWorld - pixiv inside

    こんにちは、@orekyuuです。 2018年11月1日〜11月2日に開催されたRubyWorld Conference 2018に「日初のキャッシュレス即売会を支えた決済アプリ pixiv PAYの技術」というタイトルでpixiv PAYを一緒に開発している五十嵐さんと登壇しました。 内容のほとんどがinsideで紹介したpixiv MARKETを支えたpixiv PAYの裏側の焼き直しになっています。 以前のinsideで紹介しなかった内容として、タイムアウト対策についての解説も行ったので記事内でも解説します。これは、買い手のアプリがタイムアウトなどの理由で離脱したケースで、売り手と決済結果の表示が剥離する問題です。 買い手が離脱してしまった場合、Railsは200を返しますがクライアントとの接続は切れているのでnginxのアクセスログには499が記録されます。この時買い手には決済失

    RubyWorld Conference 2018に登壇しました #RubyWorld - pixiv inside
    atomicmap
    atomicmap 2018/11/07
  • Flutterで社員研修用のアプリを作った話 - pixiv inside

    みなさんはじめまして。初めてじゃない方はお久しぶりです。ピクシブでAndroidアプリエンジニアをしておりますconsommeです。 ピクシブでは基的に年一回、社員同士の交流を深めるという目的のもと、社員研修を開催しています。2018年は2泊3日の沖縄研修が計画されました。そのなかで研修運営チームから「社員研修で使うアプリを作れないか?」という相談を受けました。 研修中は基的にチーム行動になるので、自分のチーム以外の人が何をしているかがわかりづらい。それなら各自で研修中に撮った写真を共有して、みんなで楽しめれば社員同士の交流につながるのではないか、そのためのアプリが欲しい、とのこと。 そう言われるとアプリエンジニアとしては作らないという選択肢はありません。ぜひやりましょう、ということで、社員研修を盛り上げるためのアプリを開発することになりました。 システム構成 アプリ側 アプリはFlu

    Flutterで社員研修用のアプリを作った話 - pixiv inside
    atomicmap
    atomicmap 2018/10/10
  • Content Security Policy Level 3におけるXSS対策 - pixiv inside

    こんにちは、セキュリティエンジニアのkoboです。ピクシブには2018年4月に入社しており、セキュリティ観点でのアプリケーション開発や脆弱性報奨金制度の運用などを行っています。 記事では、現在ピクシブの一部のサービスで取り組んでいるContent Security Policyについて知見を共有します。 概要 Content Security Policy (CSP) は、XSSを主としたウェブアプリケーションセキュリティの問題を軽減するために考案されたブラウザのセキュリティ機構です。 ウェブアプリケーションは、 Content-Security-Policy ヘッダをHTTPレスポンスに含めることで、意図していないJavaScriptの実行やリソースの読み込みをブラウザ側で制限することができます。 CSPは2012年頃よりブラウザに実装されていますが、2016年のGoogleの調査によ

    Content Security Policy Level 3におけるXSS対策 - pixiv inside
    atomicmap
    atomicmap 2018/10/05
  • 失われた2人日をiMac Proで取り戻し、開発体験を向上するまでの軌跡 - pixiv inside

    お初です。2017年10月入社の @kobaken です。iOSアプリ開発を生業にしております。 最近はすっかりスタァライトされてしまい、舞台創造科の一員になってしまいました。 普段は声優のことを考える傍ら、pixivpixiv SketchのiOSアプリの開発をしています。 ところで、iOSアプリ開発をされている皆さんの中に、このような現象に頭を悩まされている方はいるでしょうか? なかなか終わらないビルド……侵されるCPUリソース……固まるIDE…… わかります。自分も以前までは上記の症例に頭を悩まされ、【精神破壊(メンタルブレイク)】される寸前でした。 どうにかして作業効率を上げないと僕が病んじゃう!そうすると開発の手が止まって、新しい価値をユーザに届けられなくなっちゃう!私これからどうすればいいの〜〜〜!……そんなとき僕たちの目の前に現れたのが「iMac Pro」でした。 iMa

    失われた2人日をiMac Proで取り戻し、開発体験を向上するまでの軌跡 - pixiv inside
    atomicmap
    atomicmap 2018/09/10
  • 永久保存版Railsアップデートガイド - pixiv inside

    はじめまして、2018年7月入社の sue445です。自称「フルスタックキュアエンジニア」です。最近はpixiv PAYのチームでRailsを書いたり社内gemを作ったりしています。 好きなプリキュアはキュアピースです。 前置き 先日Rails 5.2.1がリリースされました https://weblog.rubyonrails.org/2018/8/7/Rails-5-2-1-has-been-released/ pixiv PAYでもその対応を行っていて、先日番環境にRails 5.2.1を投入しました 💪 ググると特定のバージョンでのアップデート方法はいろいろ見つかるのですが、どのバージョンでも使える汎用的な方法が意外になかったので紹介しようと思います。 Rails 4.1系以降はだいたいこの方法でアップデートしてきたのでそれなりに実績のある手法だと思います。 筆者スペック 初め

    永久保存版Railsアップデートガイド - pixiv inside
    atomicmap
    atomicmap 2018/08/21
  • BOOTH iOSアプリはどうやって有料ダウンロード商品の販売を解禁したか? #booth_pm #booth - pixiv inside

    2020/12/25 編注:この記事は2018年当時のエピソードです。現在はこの方法では審査に通らなくなりました。 おばんです、給料日であることをいいことに、にじさんじくじに課金しまくったBOOTH iOSエンジニアの @danbo-tanaka です。 平素よりBOOTH iOSアプリをご贔屓いただき、ありがとうございます。 みなさんもうアプリをアップデートしていただけましたでしょうか? 8月16日(木)にリリースしたv2.12.0では、これまで要望の多かった有料ダウンロード商品の販売を実装しました!🎉 これまでiOSアプリにおいて、デジタルコンテンツの購入に対応したアプリは多くありませんでした。それはAppleが用意したアプリ内課金(通称Apple税。手数料として30%をAppleに支払う必要がある支払い方法)を通さなければ、基的にデジタルコンテンツの取り扱いが許されなかったという

    BOOTH iOSアプリはどうやって有料ダウンロード商品の販売を解禁したか? #booth_pm #booth - pixiv inside
    atomicmap
    atomicmap 2018/08/20
  • t-wadaさんから直接学ぶ!TDDワークショップ開催レポート - pixiv inside

    みなさんこんにちは!ピクシブで唯一(?)のテストエンジニアの @shimashima です。 6月28日にTDDの伝道師として有名な t-wada こと和田卓人さんを講師として招き、1日かけてのテスト駆動開発(以下TDD)ワークショップを開催しました。 日はピクシブ株式会社様にて、1日コースのテスト駆動開発ワークショップの講師を務めさせていただきました。ご参加くださいました皆様、誠にありがとうございました!— Takuto Wada (@t_wada) 2018年6月28日 今日はその様子を紹介したいと思います。 開催のきっかけ 開催のきっかけは、自分が実行委員を務めているJaSST '18 Tokyoにて和田さんによるTDDチュートリアルを聞いたことです。 このチュートリアルの登壇依頼を行なったのも私なのですが、恥ずかしながらそれまでTDDは話に聞いただけで、各地で開催されているTDD

    t-wadaさんから直接学ぶ!TDDワークショップ開催レポート - pixiv inside
    atomicmap
    atomicmap 2018/08/09
  • 今日から簡単!Webpacker 完全脱出ガイド - pixiv inside

    こんにちは、@f_subal です。普段はおもに pixivFACTORY のフロントエンドを見ています。 今回は pixivFACTORY において、フロントエンドのビルドに Webpacker を利用するのをやめた話をします。 Webpacker をやめよう rails/webpacker は Ruby on Railsプロジェクトwebpack を導入する際に用いられる gem です。必要な webpack の設定ファイルの生成や、Rails のテンプレートからビルド済みの JavaScript ファイルを読み出すために用いるヘルパー関数など、多数の機能を提供します。 結論から言うと、Webpacker を入れてもあまり良いことがありませんでした。単に必要が無いというより、あることによって面倒が増していると感じたので、剥がしました。以下 Webpacker が導入された Ra

    今日から簡単!Webpacker 完全脱出ガイド - pixiv inside
    atomicmap
    atomicmap 2018/08/06
  • pixiv chatstoryのPWA採用事例 - pixiv inside

    ピクシブ福岡オフィスの @ikasoumen です。iOS版が先行してリリースされていたチャットストーリー投稿アプリの「pixiv chatstory」。 昨年の12月から、Android版の提供もはじまりました。 ホーム画面にインストールできるWebアプリ ネイティブで実装されているiOS版と違い、Androidでは全てHTML + CSS + JSで作られているWebアプリを、Google playストアを経由せずにpixiv chatstoryの公式サイトから直接Android端末へとインストールすることができます。 従来の「ホーム画面に追加」されたWebページと違って、Chromeのヘッダーが非表示になっていたり、URLを開く際にアプリとして選択できたりと、まるでネイティブアプリかのような体験を得られます。 これには、Progressive Web App(PWA)の特徴の一部を利

    pixiv chatstoryのPWA採用事例 - pixiv inside
    atomicmap
    atomicmap 2018/03/12
  • 放置しがちな社内システムこそ式年遷宮していこう - pixiv inside

    こんにちは、CTO兼福岡オフィスマネージャーの@edvakfです。最近はとあるC++のコードをRustに逐語訳しながらRustを勉強中です。 今回はピクシブで使っているデプロイ管理画面のpployをgo-pployにリプレースした話を書きます。 まずは結論から メンテナビリティの向上 を目指して社内システムをリプレースした 小規模であっても新規開発から得られる学びはとても大きい その気になれば式年遷宮できるシステム規模を心がけましょう そもそもpployとは? pployとは、「デプロイ管理画面」という類の小さなウェブアプリケーションです。 ピクシブで開発しているウェブアプリケーションのデプロイは基的にはすべて 「デプロイ中」状態になる masterにpushする staging等にデプロイして確認する productionにデプロイする 問題無ければ「デプロイ中」状態を解く という手順

    放置しがちな社内システムこそ式年遷宮していこう - pixiv inside
    atomicmap
    atomicmap 2018/03/02
  • 酔っ払ってもコードが書きたい!JavaScriptを書き散らかしてPrettierに介護してもらう方法 - pixiv inside

    こんにちは、一般ノーマルエンジニアのgeta6です。社内ではpixiv SketchというサービスでJavaScriptを書く仕事をしています。今日はPrettierの話をします。 JavaScriptを書くのが大好きな皆さま各位におかれましては、きっと酒のつまみにコードを書くこともあるでしょう。しかし酔っ払いながらコードを書くと、往々にして上記のような書き散らかしをしてしまうことがあります。 このコードは動きます。動きますが、思わず目を背けたくなる汚さです。この世に存在することが許されるべきか疑うレベルです。ESLint先生も思わずブチギレです。当然ですね。 CIにLintを仕込んでいた場合は当然通りませんし、gitのprecommit hookにLintを仕込んでいた場合はgit commitすら許されません。堅牢なシステムは酔っ払いにコードをコミットする権利すら与えてくれないのです。

    酔っ払ってもコードが書きたい!JavaScriptを書き散らかしてPrettierに介護してもらう方法 - pixiv inside
    atomicmap
    atomicmap 2018/02/20
  • なぜ自分は「ペアプロ全面導入」という考えに至ったのか - pixiv inside

    この記事はピクシブ株式会社 Advent Calendar 2017のラストを飾る25日目の記事です。 inside.pixiv.blog 去年も一昨年もラストを飾らせていただいたCTO兼福岡オフィス立ち上げ担当の高山(@edvakf)です。 2017年は福岡に移住という大きなライフイベントがありましたが、思い返してみればペアプロで始まりペアプロで終わったペアプロの年でした。 まずは結論から ペアプロは一般的に言われるようにレビューの手間が減るとかコードの品質が向上するとか属人化を防ぐのに良いとかの利点がありますが、自分は「その時間の集中力」こそが実は最大の利点なのではないかと考えています。 一人で集中して何時間もコードを書き続けられる人は別ですが、現代のプログラミングって調べ物をしてる時間のほうが長くありませんか?しかも調べ物のほとんどは、ちょっと詳しい人ならすぐにわかるようなことばかり

    なぜ自分は「ペアプロ全面導入」という考えに至ったのか - pixiv inside
    atomicmap
    atomicmap 2017/12/25
  • 「自社で勉強会ってどうやるの?」おさえておきたいポイントとピクシブ独自のこだわり - pixiv inside

    こんにちは!ディレクターのyukirby_です。 ピクシブでは、月に1回のペースでディレクターやエンジニアの勉強会が開催されています。 今回は、ピクシブ社で開催されている社外向け勉強会の運営体制についてご紹介します。 勉強会の頻度と運用体制 昨年まで、ピクシブで開催されるディレクターやエンジニアの勉強会は3ヶ月に1回くらいの頻度でした。 しかし今年から徐々に開催頻度が増え、ついには1ヶ月に1回という頻度で開催されるようになってきました。 頻度が少なかった昨年までは新卒メンバー中心に都度設営準備をしていましたが、開催頻度も増えてきたため役割に名前をつけて、運用体制を明確化しました。 役割は2つあります。1つは、主に社外とのやりとりを担当する『主催者』です。もう1つは、社内で備品や人員・スケジュールの調整を担当する『まとめ役』です。それぞれ1人ずつ別の人をアサインすることにしました。 役割を分

    「自社で勉強会ってどうやるの?」おさえておきたいポイントとピクシブ独自のこだわり - pixiv inside
    atomicmap
    atomicmap 2017/08/26
  • CTOが福岡移住!?ピクシブ福岡オフィスついに始動! - pixiv inside

    今週から福岡に移住しました、CTOの高山(@edvakf)です。 「オマエは何を言っているんだ…?」と思われるかもしれませんが、大真面目です。 今回はピクシブ福岡オフィスの所信表明を、無駄に自己啓発的な見出しとともにお送りします。 変わり続けることこそが安定 今を去ること半年前にピクシブ福岡オフィスを開設しましたが、誤解を恐れずにいえば、完全に「勢い」でスタートしたので、これまでは具体的な動きには繋がっていませんでした。 さらに誤解を恐れずにいえば、勢いというのはとても大切で、人も会社も意識的に変化を起こしていかなければ「現状維持」という易きに流れてしまいがちです。変化の激しい時代・業界にいる我々としては「変わり続けることこそが安定」を常に意識していきたいですよね。 などと、ゴールデンウィーク明けに飲みの席で熱弁を振るっていたところ、「いいjang!来週から福岡オフィス立ち上げちゃいなYo

    CTOが福岡移住!?ピクシブ福岡オフィスついに始動! - pixiv inside
    atomicmap
    atomicmap 2017/06/22
  • 社内ISUCON開催のための構成とノウハウを公開!Amazon Lambdaでサーバレスのベンチマーカーを構築した話 - pixiv inside

    こんにちは。 pixivの投稿ユーザ向けグロースを担当しているエンジニアsestaです。 4月28日、ISUCON6戦の問題を作ったedvakf、catatsuyと一緒に第2回社内ISUCONを開催しました! ISUCONとは3人までのチームで参加し、与えられたウェブアプリケーションのチューニングを制限時間いっぱい行い、パフォーマンスに基づいたスコアで競いあうコンテストです。 去年の社内ISUCON開催記事に引き続き、 今年は当日の様子のレポートとベンチマークなどの全体構成について紹介します。 当日の様子 今年は38人もの社員が参加し、その中にはなんと、ビジネス職の新卒や人事(!?)も参加していました。 競技時間は10:30から18:00までと番のISUCONと同様にしました。 10:30によーいどんで始めた社内ISUCONですが、前半はなかなかスコアを伸ばすチームが現れませんでした

    社内ISUCON開催のための構成とノウハウを公開!Amazon Lambdaでサーバレスのベンチマーカーを構築した話 - pixiv inside
    atomicmap
    atomicmap 2017/05/23
  • ImageMagick・Blenderを使った画像合成技術 — ピクシブの画像処理エンジニアが語る(3) - pixiv inside

    ピクシブで働く人の姿や、どんな技術を使ってプロダクトを生み出しているのかがみえる。そんなイベント「pixiv Night #02」が、2017年3月14日に代々木のピクシブオフィスにて開催されました。 テーマは「画像処理」ということで、イラスト1枚からグッズを作成できるサービス「pixivFACTORY」の開発チームに所属するhayaが、同サービスの画像処理システムについて、具体的な実装方法を語りました。その内容をお届けします。 買う前に実物を目にしたような体験をさせたい 物を買う時、実物をみたいと思いませんか? たとえば、オリジナルマグカップを作りたいと考えた場合、イラストを描いて画像ファイルを入稿すれば、イラスト入りマグカップは製造できます。しかし、お金を払って手に入れるものなのですから、どういう見た目になるのかを事前に確認できないと不安になりますよね。 では、イラストが入った状態のグ

    ImageMagick・Blenderを使った画像合成技術 — ピクシブの画像処理エンジニアが語る(3) - pixiv inside
    atomicmap
    atomicmap 2017/03/24
  • 1