読者です 読者をやめる 読者になる 読者になる

ピクシブ株式会社 Advent Calendar 2016 まとめ

気になるけど全部読んでるヒマが無い!そんなあなたのために各記事をザックリとご紹介します。


ピクシブの新執行役員に直撃!CTO&CCO就任記念インタビュー

今月からCTO(最高技術責任者)になった高山と、CCO(最高文化責任者)になった川田がそれぞれ抱負を語っています。

こんな人にオススメ
CCOってなんじゃいと思ってる人
31歳の執行役員がどんな人達か気になる人
・いずれ経営者の視点で会社を支えたいと考えているエンジニア・学生さん

Railsのアップグレードでもう苦しまない

ある程度コストのかかるRailsアップグレードも、事前の心がけや普段からの工夫で簡単にしていけるんですね。

こんな人にオススメ
Railsのアップグレードでヒィヒィ言わされた経験がある人
YAGNIってなんだろうと思ってる人
日本酒が好きな人

Firebase Cloud Messaging (FCM) を利用してお手軽に通知を送る

Firebaseを使ったプッシュ通知の具体的な手順と、pixivアプリでの活用例について紹介しています。 通常なら一斉に送られるプッシュ通知ですが、各ユーザーに最適なコンテンツを届けるために個別にトピックを生成しているというのがスゴそう。

こんな人にオススメ
・Firebase Notificationは使ってるけどFirebase Cloud Messagingは使ったことがない人
・プッシュ通知によるABテストに興味がある人

LINE BOT: pixivコミックをおすすめしてくれる司書チャットボットを試作しました

発言の内容を理解して漫画のレコメンドを行うLINE BOTの作り方が紹介されています。 LINE BOTのカード表示って複数コンテンツのオススメに適してそうですね。

こんな人にオススメ
・LINE BOTの可能性が気になってる人
Microsoftの自然言語解析APIに興味がある人
・pixivの新卒エンジニアの力を見てやろうという人

Swift+CocoaPodsではじめてのOSS(ハンバーガーメニューを作ってみた)

iOS/Macアプリのライブラリ管理ツール「CocoaPods」向けに新しいライブラリを登録してみたという記事です。

こんな人にオススメ
・iOS/Macアプリ開発にもRubyのBundler的なものあったのか〜という人
・CocoaPodsを使っていてライブラリを作る方法が知りたい

CMSの編集ロックUI部分で元気に走り回るRiot.js

Riot.jsの基礎と、Fluxを実現するためにRiotControlを選んだ理由などについて書かれています。 技術的負債を解消し、機能追加も実現したというエピソードが語られていて良いですね。

こんな人にオススメ
・そもそもpixivisionってなんだろうという人
・Riot.jsに興味がある人
“jQueryによるDOM操作”や“複雑な状態遷移”に悩まされている人

BlenderとPythonで3Dモデルを動的生成してレンダリングする

pixivFACTORYサーバサイドでBlenderを利用している事に関連して、Blender上でPythonスクリプトから3Dモデルをいじる方法が紹介されています。Blenderでなにかしら自動化を行いたい時に読むと便利そうです。

こんな人にオススメ
・Blenderを日頃使っている人
Blenderで自動化したいと思っている人
・Generative Artに興味がある人(?)

割れ窓理論を導入してWebサービスのクオリティに直結した話

デザイン崩れの修正を、普段から書き溜めておいて週一で優先的に解消するようにしてみたという話です。 タスクが解消されるという点だけではなく、チームメンバーが普段からデザインについて意識しやすくなる点も良いですね。

こんな人にオススメ
・直したいと思ってるデザイン崩れを溜め込んでいる
・現場の人間に対して、小さいデザイン修正ってどう依頼すればいいんだろうと思ってる人
・割れ窓警察

AndroidのBottomNavigationってどうなのよ?pixivコミックのリニューアルを通じて考えてみた

“Androidアプリには珍しい「画面下部のナビゲーション」”を実現してみたという話です。 スクロール時に下部のナビゲーションが隠れるような動作は自前で作ろうとすると地味に手間になりそうですが、そこまで提供してくれているライブラリがあるんですね。

こんな人にオススメ
・Androidアプリのナビゲーション周りが気になってる人
無料で漫画読み放題「pixivコミック」ってなんだろうという人

pixiv開発を支えるVim (タグジャンプ編)

タグジャンプ(universal-ctags)が同名の定義に弱いので、良い感じにタグジャンプしてくれるVimプラグインを作ってみたという話です。 自分の道具を作れるエンジニアは強い

こんな人にオススメ
・Vim使い
・タグジャンプが同名の定義に弱くて困っている人

PHP開発のためのEmacs 2016 (pixiv <3 Emacs)

Emacsでの開発を効率化するために、どんな設定やプラグインを入れているか紹介しています。 補完、ファイルの絞り込み、ドキュメント参照などの汎用的なものはもちろん、最後にはpixivの開発に特化した設定も書かれています。

こんな人にオススメ
・EmacsでPHPやWebの開発をしたい人
・もっとEmacsを便利にしたい人

pixiv Sketchのフロントアーキテクチャ

ISUCON6本戦の元ネタにもなったサービスの構成について、具体的な利点・目的とともに紹介しています。 特に、WEBとモバイルアプリとでAPIを共通化できるのは魅力的ですね。

こんな人にオススメ
・ISUCON6本戦で悔しい思いをした人
・これからWEB&モバイルアプリの同時開発を控えている人

まだシングルスレッドでレンダリングしてるの? HTML5 CanvasとWeb Workerの最新技術

OffscreenCanvasWeb Worker、さらにそれらを組み合わせてCanvasに関連した描画処理をマルチスレッドで行う例が紹介されています。 サンプルではシングルスレッドとのパフォーマンスの差がなかったようですが、いずれゲームやドローツールなどでCanvasをゴリゴリ使う時には使えるかもしれません。

こんな人にオススメ
Canvasのパフォーマンス限界を超えたい
・そもそもWeb Workerってなんじゃいという人

Slackを情報収集に使おう!SlackにRSS/Atomを簡単に追加できるChrome拡張機能の紹介

SlackをRSSリーダーとして使う時に、登録を楽にしてみたという話。 コードも短く、処理の流れについても説明されているので、これからChrome拡張を作ってみたい人にも良さそうな記事です。

こんな人にオススメ
・Chrome拡張に興味がある人
・SlackをRSSリーダーとして活用している人

ES2016+ on herokuでSlackにイラストを流してユーザ像を感じ取る話

自社サービスの機能がどう使われているかを知るために、新規投稿をSlackへ流すBotをNode.jsで作ってみたという記事です。 async/awaitを使った非同期処理の直列実行をメインに、sleepを挟む処理なども書かれていて、これからクローラーを作る人にもわかりやすい内容となってます。

こんな人にオススメ
・Callback地獄になりがちな人
・Node.jsでBotを作りたい人

GitLabの運用方法をドーンと公開!!

ピクシブではGitLabもGitHubも使っていますが、最も大きなリポジトリはGitLabで管理されています。 この記事ではGitLabについて、LDAPを利用した認証方法、前段にGoogle認証を挟む方法、バージョンアップ時の注意点などについて書かれています。

こんな人にオススメ
・GitLabを利用している人
・GitLabの認証とかどうすべきなんだろという人

pixivのイラストで機械学習したらどうなるのっと ~pix2pixで自動彩色編~

機械学習の分野で最近話題になったpix2pixを用いて、イラストの自動彩色を試してみたという記事です。 pixivに公開されているイラストの中でも、フォーマットの決まっている企画をデータセットとして利用させていただいた形ですね。

こんな人にオススメ
・機械学習に興味がある人
・自動で色塗りしてもらえたらいいのになという人

2017年はGitLabだけで開発のタスク管理を完結するのも夢じゃない

タスク管理のためにGitLabが使えるのでは、というのを実際の運用をしながら得られた所感とともに解説しています。 ピクシブでは各プロジェクト(チーム)ごとにタスク管理の方法も任せられているので、こんなふうに小さく試していけるのが良いです。

こんな人にオススメ
・GitLabを利用している人
・いろんなタスク管理方法を知っておきたい人

Google Apps Scriptで業務を効率化! 大切なものは全てGoogle先生が作ってくれていた

サーバーレスでちょっとしたことをする時にGoogle Apps Scriptは便利ですよね。 Google Apps Scriptの基本的な解説をはじめとして、実際にどんなスクリプトを業務効率化のために利用しているのかを紹介しています。

こんな人にオススメ
・GoogleSpreadSheetを活用している人
・業務効率化のためにがんばってJavaScript書いてみようかなという人

ピクシブとニジエで野球!? — コードを書いて学んだ草野球チームの運営

野球が大好きなエンジニアが、草野球チームでの活動を通して、使ってもらえるWebサイトを制作するために奮闘した話。 ちゃんとチームメンバーの要望を聞きつつ自分のこだわりも反映させていく制作のフローは、今後の仕事でも活きてきそうですね。

こんな人にオススメ
・野球好き
・スポーツチームも上手く運営したいエンジニア
ピクシブとニジエの絡み(意味深)が気になる人

社内で勝手にアプリを作ってみんなでワイワイした話

欲しいアプリが無いなら作ればいいじゃない」という話。 アプリでもWebサービスでもそうですが、たまに新しい物を一から作ってみんなに見せてみると、自分も含めてテンションが上がりますよね。
記事中にあるSlackで見せた時のテンションにもご注目。

こんな人にオススメ
・ピクシブのものづくりのワイワイ感に興味がある人
・作ったアプリ見せたがりマン

PDFの不遇なアクセシビリティのお話

タグ付きPDFを利用することで、構造化されたテキスト情報をPDFに持たせる事ができる、という話をpixivの小説PDF化機能と絡めて解説しています。
オチが少し悲しいです。

こんな人にオススメ
・PDF出力に興味のある人
・そもそも小説PDF化機能ってなんじゃろという人

みなさんはSwift3ですか?

pixivコミックアプリのSwift3対応を実例として、移行時に注意すべき点について解説しています。 エラーにはならないが望んだ挙動をしなくなる例があるのは怖いですね。

こんな人にオススメ
・これからSwift3化をする人
・そういえば最近Swift3化をして、なんだかおかしい挙動があったような…という人

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

ピクシブが利用しているバグ報奨金プラットフォーム「BugBounty.jp」について紹介しています。 導入した理由や、報告例と対応例、さらには、おおまかな報奨金額の基準も記載されているので、これからバグを見つけようという方も見てみてください。

こんな人にオススメ
・ホワイトハッカー
自分の所でもバグ報告を受け付けたいと思ってる人


ピクシブ株式会社 Advent Calendar 2016 まとめ、いかがでしたでしょうか。
数行ずつの紹介でも1ヶ月分となるとなかなかの文量ですね!

今後もpixiv insideではエンジニアリングに関わらず情報を発信していきますので、2017年以降もぜひご注目ください。

この記事は、ピクシブ株式会社 Advent Calendar 2016 の22日目。
執筆者は、@moyashipan でした。