inFablic | Fablic, inc. Developer's Blog.

フリマアプリ フリル (FRIL) を運営する Fablic の公式開発者ブログです。Fablic のデザイナー・エンジニア・ディレクターが情報発信していきます。

ColaboratoryをBigQueryと連携して分析を行う

こんにちは。shobyです。

皆さんは、業務での複雑なデータ分析にはどのようなツールをお使いでしょうか?

フリルでは、RedashのPython DataSourceを使用しており、Googleが新しく発表したColaboratoryへの移行を検討している最中です。 ColaboratoryをBigQueryと連携すると、大量のデータに対しても、便利に分析を行うことがわかったため、調査結果をまとめました。

概要

  • Colaboratoryとは
  • RedashのPython DataSourceの問題点
  • ColaboratoryとBigQueryの連携方法
  • RedashのPython DataSourceと比べたColaboratoryの欠点
続きを読む

Fablic Standup#2 〜デザイナー ぶらり転職の旅〜 を開催しました

f:id:wariemon:20171114121915p:plain

こんにちは、デザイナーのkitachです♪

去る2017-11-08(水)の夜に、恵比寿のFablic本社にてFablic Standup#2 〜デザイナー ぶらり転職の旅〜 を開催しました!

fablic.connpass.com

Fablic Standupとは?

サービスデザイナーのためのゆるくてミニマムな交流会です。

デザイナーが成功したことや挑戦してみたことを発表したり、興味があることや悩みごとについて気軽に話し会える場で、イベント中は#fabstaで交流も可能です♪

当日は20名近くのお客様にご参加頂きました。ありがとうございます!

今回のテーマは、ずばり「デザイナー ぶらり転職の旅」🚃

今回は2回目開催ということで、ぶっちゃけ本音トークも大歓迎の転職テーマで募集しました。

(内容が内容なので)集まりが悪いことも懸念しておりましたが、はてなブログのmazcoさん、SHELFYのkasumidyayaさんに発表していただけることになり、とても有意義な時間を提供して頂けました!

また、社内からはyabecomとkitachが発表しました。

社会人1年2ヶ月で転職!若手なりの転職の軸を語る@kitach/株式会社Fablic

f:id:kitach:20171113121758j:plain

  • トップバッターを務めさせていただきました!第二新卒として転職に挑んだ若手ならではの思考を発表しました。デザイナー界の猛者達を前に登壇するのはとっても緊張しましたが、転職を振り返る良い機会にもなりました。

@mazco/株式会社 はてな

f:id:kitach:20171113121952j:plain

(話の性質上、タイトル/スライドは非公開です)

  • はてなブログでデザイナーをされているmazcoさん。転職経験3回ということで、パンチのある濃厚なLTを披露してくださいました!

  • いろんな人に助けてもらうことや情報をもらうこと、自身のやりたいことに寄せてスキルを磨いくことの大切さを熱く語ってくださいました。

「デザイナーみ」のある環境〜転職して感じたデザイナーの働きやすい環境〜@kasumidyaya/SHELFY株式会社

f:id:kitach:20171113121851j:plain

  • SHELFYでリサーチ/デザイン/マークアップの全てを担当されているkasumidyayaさん。デザイナーとして働きやすい環境について発表していただきました。

  • 数々のキャッチーなワードが頻出しました。「デザイナーみ」の「み」ってなんだ?はすごく参加者の胸に響きましたし、雑に褒める文化はぜひ弊社でも根付かせたいですね!

部署が解散になってから2ヶ月で転職をキメた話 @yabecom/株式会社Fablic

f:id:kitach:20171113121838j:plain

(話の性質上スライドは非公開です)

  • kitachと同時期に入社されたyabecomさん。刺激的な転職話が繰り広げられ、会場でも#fabstaでも物議を醸す内容でした。

  • 転職をきっかけに「自分自身がデザイナーとしてどのように企業と関わりたいのか」という思考の変化が丁寧に追われていて、納得の充実度でした!

以上4名によるLTでした👏

次回ももちろん開催予定です!皆さんの興味を引けるような素敵なテーマを準備しておりますので、ぜひconnpassをチェックして見てくださいね♪

懇親会ではピザを片手に大盛り上がり!🍕

f:id:kitach:20171113123728j:plain

会場のあちこちで、いろいろな転職話が聞こえて来ました!

ちなみに、名刺交換がとっても不慣れな社会人2年目のkitach。 こういう機会はありがたいなーと思いながら皆さんの挨拶から交流への運び方を盗み見しておりましたよ|・`ω・)チラ

デザイナーならではの転職について色々と語り合うことができて本当に良い場となりました。 ご参加頂いた皆さま、誠にありがとうございました!

最後に、yabecomによる恒例のまとめムービーです🎥

撮影/編集 @yabecom

次回(Fablic Standup#3)も企画中ですので、今回参加できなかった方も、ぜひお会いできることを祈っております!

Googleスプレッドシートにある大量のデータをBigQuery経由で操作する

こんにちは、shobyです。

皆さんは、大量のデータが存在するGoogleスプレッドシートに対して集計を行い、固まった記憶はありませんか?

BigQueryのGoogle Drive Integrationを利用すると、Googleスプレッドシート上にある大量のデータを高速にフィルタリングすることができます。

Googleスプレッドシート上で大量のデータを扱う際の問題点

Google SpreadSheetを用いて大量のデータに対して複雑な集計を行う場合、実行と反映に時間がかかるという問題が発生します。これに対しては、BigQueryを用いることで改善ができます。

Googleスプレッドシートは、敷居が低く、エンジニアに限らず、ディレクターやマーケターも利用できる優れたツールです。そのため、CSVの受け渡しがある分析業務などに有効活用することができます。

in.fablic.co.jp

しかし、CSVのサイズが大きい場合などは、スプレッドシート上に大量のデータが生まれます。そのようなスプレッドシート上の大量のデータに対して、複雑な条件で集計をする場合などは、動作が重くなりがちです。

具体的には、20万件以上のデータに対して、Query関数を用いた集計を行う場合などに発生します。

Google スプレッドシートはデータに対してQuery関数を用いて、SQLのような文法で集計を行うことができますが、件数が多い場合は実行と反映に多くの時間がかかってしまいます。

そのため、BigQuery経由でGoogle SpreadSheetのデータを操作する必要が出てきます。

Google SpreadsheetのデータをBigQuery経由で操作する

BigQueryにはスプレッドシートを入力ソースとしてtableを作成する機能が存在します。 この機能を利用することで、スプレッドシート上の大量のデータに対して、高速に集計処理を行うことができるようになります。

設定方法に関しては、BigQueryでスプレッドシートのURLとスキーマを設定し、テーブルを作成するだけです。 通常のtableと同様に集計をすることができます。

設定例は以下のようになります。

f:id:shoby:20171108173757p:plain

LocationにスプレッドシートのURLを入力し、File formatをGoogle Sheetsにした上で、テーブル名や、Schemaを定義してください。

詳細な設定方法は公式のドキュメントをご覧ください。

cloud.google.com

フリルでの活用例

フリルでは、GoogleスプレッドシートとBigQueryを連携し、CSVでデータのやり取りがある分析業務の改善を行なっています。

また、Redash経由で結果の可視化も行なっています。

まとめ

大量のデータが存在するGoogleスプレッドシートにはBigQueryを利用することで、高速に集計を行うことができます。

Googleスプレッドシートが重くて固まるような場合にご活用ください。

VimConf 2017をスポンサーし、特化型のチラシを作って配布しました

去る2017-11-04 (土), VimConf 2017が開催されました。先日はその速報記事として、FablicとVimConf2017との関わりについてや、各発表で得た学びなどを共有しました。記事を執筆したのはFablicによるVimConf 2017のスポンサーチケットで参加したtommyさんでした。一方変わって、今回は、VimConf 2017が開催されるより前のVimConfのFablicとしての裏話と、そして、VimConf 2017が終わったこのあとの世界について語ります。

さて、以下の配布物に見覚えはありませんか。

続きを読む

今年のVimConfは一味違う!VimConf2017速報

f:id:kazu9su:20171104141230p:plain

こんにちは、サーバーサイドエンジニアのtommyです。

本日は、秋葉原で開催されたVimConf2017の速報をしたいと思います。

FablicとVimConf2017との関わり

今回、FablicはスポンサーとしてVimConfを応援しています。
パンフレットには求人チラシも同梱していました。

他社スポンサーの中の人がこれには勝てないょ…というほどvimmerに対して訴求力の高いものが出来上がりました。 また、会場の同時通訳は @ujm と奥さんの @sandkattさんによって行われていました。

翻訳は非常に好評のようでした。 ちなみに、翻訳で度々登場した「アレ」「ヤバイ」「こいつら」「優勝」などの単語はFablicでは日常語として使用されています。

Vim, Me and Community

さて、宣伝もほどほどに早速セッションのレポートに移っていこうと思います。
@haya14busa さんは最初にコントリビュートを始めたのは大学生の頃とのこと。
「最初は全くわからなかったけれども、一つ一つのバグレポートを見ていたら、こうしたらいいんじゃない?というのが見えてきた」(若干うろ覚え)という言葉が印象的でした。
現在はGoogleでSoftwareEngineerをされているということで、一つ一つの積み重ねがキャリアにも繋がっていくのだなという非常にいい話でした。 様々なライブラリの作者の方とコミュニケーションを取ってeasymotionを改良している点や、goで実装を書き直してみたというところがいい話ポイントでした。

The Past and Future of Vim-go

次に@fatih さんによるvim-goの発表がありました。
翌日曜日にはGoCon*1が行われ、それにも出席される@fatihさんですが、@ujmによれば@fatihさんはVimConf2017に参加するために来日し、それに合わせてGoConでも話してもらいたかったためGoConは日曜日に開催されることになったとのことです。
goとvimとの関わりはgoのsyntaxを追加するというところからはじまり、さまざまなプラグインが作られるようになったとのこと。
しかし、開発がそれぞれ独自に行われていく中で、

  • 多すぎるライブラリ
  • ロードマップがない
  • ドキュメントがない などの問題が浮上し、それを解決するためにvim-go(最初はgo.vim?)のプラグインを作り始めたとのことです。

ドキュメントを書くつらさはOSS開発者共通の悩みなのかなと思ったりしました。 また、vim-goがやばいので、彼に寄付したいという人がめっちゃいたがあんまりお金はいいかなと思ったため、最初はkindle wish listを公開し、本を購入してもらっていたが50冊を超え読みきれなくなったので、patreon*2 を使って寄付を受け取るようになったとのこと。
今では 200$/月の寄付をもらっており、それによって恩恵もあるので、積極的に寄付は受けるべきだという主張が印象的でした。

goを書くエディタとしては、vimが一番人気らしいです。

この発表を聞くだけでgoを使ってみたいという人も現れるなど、その完成度の高さが見て取れますね。

@fatihさんがとても楽しそうに発表しているのも印象的なセッションでした。

お弁当

お弁当にはすき焼きと白い恋人(1枚)が提供されました。

あまりもあるのでおかわりもでき、とても充実した昼食でした。

Talk show

mattnさん、k_takataさん、kaoriyaさんによるトークが行われました。 ちなみにmattnさんの読み方はマットンでもマッタンでもなくマッツンとのことです。 mattnさんはvim2.0から、k_takataさんはvim5.7からvimに関わり始めたとのこと。
みなさんwindowsユーザらしく、windowsに関する思い入れがとても強そうでした。
vim8.0の新機能のうち、terminalはwindowsユーザにとって非常に強力なものとのことです。

Creating your lovely color scheme

カラースキーマの作り方についての発表でした。 カラースキーマを作る際には、

  • カラーパレットを最初に作る
  • コンセプトを決める
  • 色相のみ変えて彩度と明るさは変えない などのポイントを押さえておくと便利です。

例として、氷山をイメージしてカラースキーマを作る過程が紹介されました。
プレゼン資料も非常におしゃれでとてもいい感じでした。
colorswat.ch, 配色すごく好みだったんでチェックしてみます!

vim-mode-plus: The most ambitious vim emulator in the world

atomのVimModePlus(vmp)というプラグインについての発表でした。
ワタクシはatomに触れたことが全く無いので若干ついていけませんでしたが、めちゃくちゃ便利であるということは伝わってきました。
また、デモがすごくよくて、かつ聞きやすい英語で話されていたので、是非セッションを聞いてみることをおすすめします。

最後に、便利機能を使いこなすためには練習あるのみとのことでした。練習しましょう。

Vim and Compatibility

サイボウズLiveが終了した理由。そんな導入から始まった話は、POSIX原理主義の話へと移行していきました。

様々な環境に移植できることを前提に.vimrcを作る。という(ざっくりまとめると)お話でした。

議論を呼びつつ、vimの歴史の話、各OSのデフォルトVimのバージョン、サポートはいつまでか、文字コード。
様々な考慮すべき点を網羅して「どんな環境でも動く」目標を達成するのはとても難易度が高いなあと感じました。

最終的に思考停止された方も多かったようです。
考慮すべき点が多いのと、文字コード問題の根が深すぎるという問題があるようです。

neosnippet.vim + deoppet.nvim

暗黒美夢王ことshougoさんの発表です。
shougoさんのアイコンがしまうまではなく竜騎士の兜がモチーフであることは前回のfablic.vimでも言及されておりましたが、
暗黒美夢王の発音について、ご存知の方はどのくらいいるでしょうか?

そう、アンコックビムオーです。正しい読み方を知ることは重要ですね。

なお、今回は歌は歌わないそうです。

まず、shougoさんがこれまでに作ってきたdark powered pluginの紹介があり、話はneosnippetの話に。 snippetとは、 () などを自動補完して、カーソルを移動してくれるという超便利機能です。 

その当時、snippetが流行っていたらしく、なぜ流行っているのかがわからなかったとのこと。
そこから「よし、作ってみよう」というところに行くつくのはやはり、すごいなと思わざるを得ません。
ただVim scriptによるVim scriptのパースが遅いなどの問題があるため、deoppetを開発中とのこと。
ここでデモもありましたが、他のプラグインの開発も忙しくまだ使える状態にはないとのことでした。
開発してくれる人も募集中らしいので、ぜひ手を上げてみたいものですね。

How ordinary Vim user contributed to Vim

このVimConfに参加している方々はみんなVimにコントリビュートしてみたい人たちだと思います。
そんな一言から始まり、パッチを送るためにはどうすればいいかという話になりました。

やる気があればなんでもできますよね。まず必要なのは絶対にパッチを送るという強い決意です。
けっこう難しいですよね。

そんな@dice_zu さんは普段は運用でカバーする派とのこと

運用でカバーに関しては、熱い共感が寄せられていました。

それから具体的にどういうパッチを送ったのかという話をされていました。
具体的な話を見ると確かに小さな問題にフォーカスすればできそうな気もしますが、話を聞くのとやるのは全く違うもの。

パッチを送るにはまずバグフィックスがよいとのこと。
なかなかバグなんて見つからないという場合にも、毎日vimをビルドしていると結構見つかるとのこと。
また、職場でのvim talkも非常に大切であるとのことでした。
この点、Fablicに入社すれば、 @ujm と毎日のようにvim talkをすることができるのでとても便利です。
個人的にはこの後次回のfablic.vimまでの間に何かしらのプラグインに対してテスト追加などのコントリビュートしたいなと思っております。

The new syntax highlighter for Vim

ほっこりするプラグインの紹介から始まりました。syntaxハイライトのお話でした。 vimのシンタックスハイライトは、すごい長い行を読み込むときに途中で諦めます。 synmaxcolという設定をしておくとそれ以降無視するような挙動をします。 ログファイルの1行のめちゃくちゃ長いjsonなどだと途中からシンタックスを諦めたりするとのことです。

シンタックスハイライト機能の実装は、正規表現でやろうと考えがちですが、重要な問題があります。 正規表現は人類には早すぎるという問題です。

例えば p(?? ? ?: : ??) のようなruby codeのシンタックスハイライトは正規表現でやるととても難しいとのこと。

そこでpockeさん作のiro.bimでは、正規表現の代わりに言語に実装されたparserを使っているとのこと。 完璧なシンタックスハイライトを実現しています。

You've been Super Viman. After this talk, you could say you are Super Viman 2 -- Life with gina.vim

この発表はVimmer, Viman, SuperVimanのための発表であり、SuperViman2, SuperViman3, SuperVimanGod向けではありません。 人間は忘れる生き物です。 みなさんは、先週の日曜日のランチ、会議で決まったこと、自分の子供の誕生日を覚えていますか?
これらはランチ以外覚えておかなくてはいけないことですが、それは難しいことです。Gina.vimを使えば、覚えることを減らすことができます。

Ginaの紹介が行われていきます。
便利機能が次々と紹介されました。すごい便利そうでした。 fixpoint社の紹介も行われていました。フリードリンク、フリーフード?とてもよさそうでした。 弊社でも取り入れてくれないかな(|д゚)チラッという機運を感じます。

まとめ

これから懇親会があって終了となります。 @ujmさん翻訳お疲れ様です。また、スタッフの皆様もありがとうございました! すごく内容の濃いカンファレンスでした。

現場からは以上です!

参考

daisuzu.hatenablog.com

sssslide.com

speakerdeck.com

speakerdeck.com

ターゲット層のサービス利用時間を元にCM枠の購入パターンを選ぶ方法

こんにちは。shobyです。

フリルでは定期的に全国でCMを放送しており、各CMについて分析を行っています。

今回は、ターゲット層のサービスの利用時間を元に、CM枠の購入パターンを選ぶ方法をご紹介します。

概要

  • CM枠の購入パターンとは
  • サービスのアクセスログからターゲット層の可処分時間を分析する
  • フリルでの活用方法
続きを読む

RedashでCSVファイルのやり取りがある分析業務を改善する(Google SpreadSheet DataSource)

こんにちは、shobyです。

皆さんはCSVファイルでユーザーリストを渡され、「リストに含まれるユーザーのデータを分析して欲しい」と頼まれたことはありませんか?

このようなCSVファイルを用いたデータのやり取りは、社外との連携などにおいて発生することが多く、異なるユーザーリストに対して同様の分析が定期的に依頼される傾向があります。

今回は、このような定期分析業務をRedashのGoogle SpreadSheet DataSourceを用いて効率化する方法をご紹介します。

これにより、エンジニアが関わらなくても、マーケターやディレクターがCSVをGoogle SpreadSheetにコピー&ペーストするだけで分析が行えるようになります。

続きを読む

Ebisu.rb#14を開催しました

f:id:infablic:20171018231552p:plain

こんにちは、サーバーサイドエンジニアのtommyです。

10月18日、Fablicで第14回Ebisu.rbを開催しました。

今回はその模様をゆるりとレポートします!

Introduction

Ebisu.rbは過去13回開催されたイベントです。2年ほどの休憩期間を経て、この度14回目のイベントを開催することとなりました。
15回、16回と開催していきたいと思いますので皆様よろしくお願いします!

speakerdeck.com

RubyKaigi 2017 A short summary of Nobu's keynote

docs.google.com

トップバッターの@ujmによるRubyKaigi2017基調講演の一つ、nobuさんのセッションの解説が行われました。

その中でも、ローカル変数の扱いには、特に注目が集まりました。

# p = 2
p (-1.3).abs # => 1.3

このコード、 p = 2 のコメントアウトを外したらどうなるでしょうか。 正解は、 -1.3 と表示されるのですが、なぜそうなるのかという解説が行われました。

尚、これはバグであるとして、RubyKaigiのセッション中に、パッチが作られ、 @matzによって承認されたとのことです。

レバレッジ効かせてますか?

speakerdeck.com

続く発表は、不詳ワタクシによる発表です。 やらなくても業務は回るけど、やったほうがいいことって、ありませんか? この発表では、Fablicにおける「レバレッジを効かせる」ためにやったことの詳細を表示しています。

自己紹介

LT中ではありますが、ピザが届いたので、熱々のうちに食べながら、自己紹介を行いました。

なんと遠くオーストラリアから参加していただいた方も居り、非常にアットホームな自己紹介となりました。

Active Recordのスコープ調整に試行錯誤した

speakerdeck.com

続いては、ActiveRecordのお話。サービス運用をしているとあるあるではないかというお話が繰り広げられました。

kintoneなどのお話

speakerdeck.com

kintoneというサービスを知っているでしょうか? DB周りのコードを書かずにGUIをいじるだけで、データの入力とか画像のup、操作データの管理ができて便利です。 paperclip や carriwave、paper_trail を使って実装することがほぼポチポチだけでできます。 stripe のgemを使うことでお手軽に決済機能もつけることができたので、是非使ってくださいとのこと。 みなさん使っていきましょう!

memcachedのお話

続いてはmemcachedについてのお話がありました。
もともとはかっこいいモンキーパッチのお話を考えていたそうですが、
かっこいいモンキーパッチなどないということに思い至ったそうです。

FRILにおけるいいねの秘密が明らかにされていました。

Fiberの話

最後に、飛び込みでFiberのお話がありました。

www.slideshare.net

f:id:infablic:20171019112904j:plain

終了後

LT終了後も引き続き交流会を行い、盛況のうちに久しぶりのEbisu.rbを終えることができました。

f:id:infablic:20171019112820j:plain

その日のうちに次回開催日も決まりました。
次回もよろしくお願いします!

CMのタレント選定に役立つ調査資料

こんにちは。shobyです。

フリルでは定期的に全国でCMを放送しており、各CMについて分析を行っています。

今回は、CMにおいて適切なタレントを選定するために役立つ調査資料をご紹介します。

CMにおけるタレント選定について

CMにどのタレントを選ぶかによって、CMの効果が変わるため、 製品イメージに良い影響を与えるタレントを選ぶ必要があります。

一般的に、CMにおいてはタレントを起用することで、 製品に対する信頼性や好感度を増すことができることが知られています。

これらに関してはタレントの起用に関するいくつかの調査があり*1、 以下のような理由でCM効果が増すことが分かっています。

  • 信頼度の高いタレントから情報伝達をしてもらうことで信憑性が増す
  • タレントの身体的魅力(美しい、かっこいい)が注目を集める
  • 製品イメージとタレントイメージが一致する場合、効果が高くなる
  • タレントの持つイメージが製品のイメージに影響を与える

そのため、CMのタレント選定の際には、好感度や知名度を考慮し、製品に良いイメージを与えそうなタレントを選ぶ必要があります。

*1:朴 正洙 (2009), 「広告コミュニケーションにおける有名人広告の効果と課題」, 『産業経営』, 早稲田大学産業経営研究所, 44, pp.21-37

続きを読む

Fablic Standup 〜サービスデザインについて話そう〜 を開催しました

f:id:infablic:20171011114430j:plain

こんにちは、デザイナーのkenjowです。

去る2017-10-04(水)の夜に、恵比寿のFablic本社にてFablic Standup 〜サービスデザインについて話そう〜 を開催しました!

fablic.connpass.com

Fablic Standupとは?

サービスのデザインにまつわることで、成功したことや挑戦してみたことを発表したり、興味があることや悩み事について気軽に話し合うための、ゆるくてミニマムな交流会です。

続きを読む