タグ

ブックマーク / techlife.cookpad.com (42)

  • 検索結果の疑問を解消するための基礎知識 - クックパッド開発者ブログ

    こんにちは、買物情報事業部の荒引 (@a_bicky) です。 業務ではクックパッド特売情報のサーバーサイドや商品検索周りを担当しています。 突然ですが、とある商品検索の機能を使っていて次のようなことが起きたら不思議ですよね。 「ねぎ」で検索したら「たまねぎ」がヒットした! 「ドレッシング」で検索したのに「たまねぎドレッシング」がヒットしない! 「豚 薄切り」で検索したのに「豚ロース肉薄切り」がヒットしない! 「たまご」と「卵」の検索結果が違う! 今回は上記の疑問を解消するために検索の基礎的な内容について説明します。 以下、特売情報の商品を検索することを例に説明しますが、一般的な内容なので「商品」を「レシピ」等に読み替えることも可能です。 大量のページから目的のページを探すための索引 たいていのの巻末には索引が載っていますよね。特定の内容が載っているページを探す場合、1ページ目から順番に

    検索結果の疑問を解消するための基礎知識 - クックパッド開発者ブログ
  • 施策の効果をみんなで納得して前に進むための「箱ひげ図」 - クックパッド開発者ブログ

    こんにちは、検索・編成部ディレクターの岡根谷です。 クックパッドを訪れてレシピ検索するユーザーさんの検索成功率を上げるために、日々施策を行っています。 自信を持って進めるためには客観的なデータ はじめはどんなによさそうと思った施策でも、進めていく中で、自分や一緒にやっているエンジニアが施策の価値に自信をなくして停滞する瞬間が必ずあります。 そんな時、A/Bテストの結果などの客観的な定量データは非常に心強いです。客観的な裏付けがあると、判断に対しての迷いがなくなり、前向きに改善に取り組んで価値を生み出していけるようになります。 客観的データを自分の言葉で伝えたい しかし、このよく言う「施策の効果を数字で」というのは、いざちゃんとやろうとすると非常に手間のかかるものだったりします。 ある機能が検索成功率を上げるのに有効ということを示すために、 「機能ありの方がなしの場合より検索成功率高めだから

    施策の効果をみんなで納得して前に進むための「箱ひげ図」 - クックパッド開発者ブログ
  • クックパッドの広告エンジニアは何をやっているのか - クックパッド開発者ブログ

    クックパッドの広告エンジニアは何をやっているのか こんにちは、新規広告開発部の武田(@cnosuke)です。 私は、今年の7月より新規広告開発部に配属されました。 例えば花金などに、社外のWebエンジニアの人達とお酒を飲みに行ったり、ひさしぶりに大学時代の友人にあったりして 「最近はクックパッドの広告を担当している」というと、みんな「あぁアドテクね。ふ〜ん」みたいなリアクションをします。 興味があるのか無いのかわかりませんね。そんな時は、だいたい「あぁそうそう、アドテクアドテク〜」と返します。 確かに、私が所属している新規広告開発部は、いわゆる「アドテク」と呼ばれる領域のことは行ってはいますが、 そもそも「アドテク」という用語が完全にバズワード化していますので、具体的に「クックパッドの広告エンジニア」が何をやっているかをほとんどの方はご存じないのではないでしょうか。 そこで、今回はクックパ

    クックパッドの広告エンジニアは何をやっているのか - クックパッド開発者ブログ
  • データベースドキュメント管理システム dmemo のご案内 - クックパッド開発者ブログ

    こんにちは、みんなのウェディングに出向中の小室 (id:hogelog) です。 今回はクックパッドとみんなのウェディングで利用しているデータベースドキュメント管理システム dmemo を紹介します。 https://github.com/hogelog/dmemo dmemo を作成し導入した経緯 私は2016年3月頃からみんなのウェディングで Redshift, bricolage, embulk, re:dash 等を利用したデータ分析基盤の構築を進めています。 (みんなのウェディングのデータ分析基盤の現状 - みんなのウェディングエンジニアリングブログ) 社内の誰でも扱えるデータベース、データの集約・計算・加工、ダッシュボードの作成、クエリの共有などは上記ブログ記事でも書いたように Redshift, bricolage, embulk, re:dash 等を組み合わせることで実現

    データベースドキュメント管理システム dmemo のご案内 - クックパッド開発者ブログ
  • モバイルアプリのログ収集ライブラリ「Puree」をリリースしました - クックパッド開発者ブログ

    モバイルファースト室の @rejasupotaro です。 クックパッドでは、サービスをリリースしてログを収集して分析して改善してまたリリースして、というサイクルを素早く回すことでより良いものを作るということをウェブではやってきました。 クックパッドのサービス開発のフレームワークをモバイルアプリでも適用したいのですが、モバイルアプリにはウェブアプリと違ったロギングの難しさがあります。 今回はモバイルアプリのロギングの問題点とPureeというログ収集ライブラリについて話します。 モバイルアプリのロギングの難しさ ウェブアプリでは、基的にはサーバー側でログを収集することができますが、モバイルアプリの場合は画面の制御はアプリ側で行われ、APIを介してデータを受け取るため、クライアント側でログを収集して送信する必要があります。 アプリのログを収集するのに、画面遷移をしたりタップするたびにサーバー

    モバイルアプリのログ収集ライブラリ「Puree」をリリースしました - クックパッド開発者ブログ
  • デザイナー横断組織の変遷 - クックパッド開発者ブログ

    こんにちは。デザイナーの池田(id:tikeda)です。6月末までユーザーファースト推進室というデザイナーを中心としたユーザー体験について横断的に責任をもっている室の室長を勤めていました。7月からこのユーザーファースト推進室をなくし役割を各部室に分散させる体制変更を行いました。 ユーザーファースト推進室については、過去のインタビューやブログのエントリーをご覧ください。 はじめに サービス開発では、デザイナー・エンジニアといった職種毎に部を構成し各プロジェクトに派遣するようなスタイル(A)、ディレクター・デザイナー・エンジニアといった役割の異なる職種で部を構成するスタイル(B)、またこの2つを組み合わせたハイブリットのような組織が存在しており、弊社だけでなく開発の現場ではよりよい開発が行われるよう試行錯誤が行われていると感じています。 クックパッドではここ数年、アプリケーションエンジニアは各

    デザイナー横断組織の変遷 - クックパッド開発者ブログ
  • 開発の見積もりとスケジュール管理 - クックパッド開発者ブログ

    こんにちは。会員事業部の丸山です。 エンジニアが開発を開始する時にはタスクの見積もりとスケジュールを作成行って、実装を進めていくと思います。 しかし1ヶ月を超えるような規模の開発をする場合、なかなか予定通りの期日に終わらなかったりすると思います。 そして大抵の場合、増える方向になりますよね。 今回はそういうことにならないために、私が気をつけていること・実践していることをいくつか紹介したいと思います。 見積もりとは まずは「見積もり」とは何なのかを正しく理解したいと思います。 一般的には「見積もり」=「全タスクとその工数を洗い出す」というものだと思います。 しかしここで以下のことに気をつける必要があります。 見積もりとスケジュールとコミットメントは違う 見積もりとはあるタスクがどれだけの工数(規模)なのかを算出することです。 対して、スケジュールとはあるタスクがどれだけの工期(期間)なのかを

    開発の見積もりとスケジュール管理 - クックパッド開発者ブログ
  • 現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ

    会員事業部の有賀(id:chezou)です。 今年一年、社内では勝手に"Jupyterの伝道師"を標榜してJupyter notebookの普及活動を展開してきました。 先日、社内でハンズオンも行ったおかげもあり、かなり社内のマシンにPython環境が構築されてきました :) Jupyter notebookとは? ひとことで言うとブラウザで動くすごい便利なREPL*1です。 百聞は一見にしかず、見てみましょう。 このように、Rubyの対話環境であるpryを触っているようにインタラクティブにコードを書くことができます。 以降で説明をしますが、Jupyter notebookは記録・共有・再現がとても得意です。特に図表があるときにその効果を発揮します。 Jupyter notebookの良い所 過去のコードを改変、再実行できる セルと呼ばれる入力部分にはMarkdownやコードが記述できます

    現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ
    masaya-chonan
    masaya-chonan 2015/12/12
    RedshiftやTreasureDataにも接続できるのか。Cloud DatalabがクラウドでJupyter notebookを使えるとのことで気になってた。ETLまわりの試行錯誤で使えるかな。近い内に試そう。
  • 日々の気づきをクックパッドのサービスとして形にするための取り組み - クックパッド開発者ブログ

    こんにちは、検索・編成部ディレクターの原田です。検索・編成部では検索サービスをはじめとして、主にクックパッドレシピを探す方に向けたサービス開発をしています。 さあ、しっかり企画を立てよう!の落とし穴 突然ですが、例えば 思いつきで施策をスタートしてしまって、後でチームのメンバーがバラバラになってしまった… 関連する部署を調整できなかった… またその逆で、誰かの思いつきの施策によって翻弄されて大変だった… という経験はないでしょうか。 個人の制約を超えて目的を達成できることがチームで仕事をすることの可能性ですが、チームワークの威力は各自が自発的に行動できるようになって発揮されるので、判断を支える明確な目標や指針を含む「企画」が必要になります。 一方で、さあちゃんとした企画を立てるぞ! と意気込んでみても、ちゃんとしたどころか発想すら浮かばない…ということはないでしょうか。毎日の暮らしの中で

    日々の気づきをクックパッドのサービスとして形にするための取り組み - クックパッド開発者ブログ
  • スタッフもクックパッドの1ユーザー - クックパッド開発者ブログ

    こんにちは、会員事業部でプロのレシピを担当しています ツヤ です。 2015年10月にプロのレシピ(プレミアム会員プラン)をリリースしました。クックパッドプレミアム会員であれば(決済方法に条件あり) プロのレシピを月額100円(税別)で利用できるプランです。 開発中に発生した検証についてのお話です。 プレミアム会員であれば・・・ サービス内にはユーザーの状態による条件分岐が随所にあります。 ここでのユーザーの状態とは、クックパッドに登録済みかどうか。またどのような方法でログインしているか。プレミアム会員であれば、どの決済方法を選択してるユーザーなのか。ということにします。 プロのレシピ(プレミアム会員プラン)の「プレミアム会員であれば」という条件に対して、ユーザーの状態は クックパッドで提供している 決済方法の種類と同じだけ存在します。 ※ クックパッドで提供している決済方法 クレジットカ

    スタッフもクックパッドの1ユーザー - クックパッド開発者ブログ
  • 機械学習によるレシピの自動分類、その裏側 - クックパッド開発者ブログ

    こんにちは。検索編成部&研究開発チームの原島です。 クックパッドレシピには、内部で、様々な情報が付与されています。例えば、こちらの「母直伝♪うちの茹でない塩豚」というレシピには「肉料理」という情報が付与されています。これらの情報は、クックパッドの様々なプロダクトで利用されています。 レシピに情報を付与する方法は沢山ありますが、その一つに機械学習があります。クックパッドでは、レシピが肉料理か否か、魚料理か否か、...という分類を行うことで、「肉料理」や「魚料理」などの情報をレシピに付与しています。 今日は、分類をどのように実現しているか、その裏側を紹介します。 ■ 実装フェーズ まず、分類器を実装する際に気をつけたことを紹介します。 モデルを決定する 分類を行うには、そのための機械学習のモデルを決定する必要があります。クックパッドでは、十分な精度が出るだけでなく、リファレンスが多いという点

    機械学習によるレシピの自動分類、その裏側 - クックパッド開発者ブログ
  • 広告ブロッカーの検知と計測について - クックパッド開発者ブログ

    こんにちは広告事業部の芳賀(@func09)です。 iOS9からの新機能である Content Blocking Safari Extensions を利用して広告の表示をブロックするアプリがリリースされて、ネットでも結構話題になっていました。 広告コンテンツをブロックするツールということで、普及の仕方によってはメディアの収益に影響を与えうるものです。実際に広告ブロッカーアプリをインストールして、Safariを利用すると 一部の広告はブロックされるようになりました。現時点では英語圏のネットワーク広告などは消えるが、日語圏の広告にはまだ対応されていないことが多いようです。 収益にどのくらい影響を与えるのか?ということを調査するにも、まずどのくらいの利用者が広告ブロッカーを使っていて、どのくらいのインプレッションに影響があるのかを、定量的に計測することが必要だと考え、その仕組みを導入していま

    広告ブロッカーの検知と計測について - クックパッド開発者ブログ
  • 定番メニューを提案して検索体験をより良くする - クックパッド開発者ブログ

    クックパッド検索・編成部の須藤耕平です。 先日、「定番提案」(と呼んでいる)機能をスマートフォン版のクックパッドにリリースしました。 エントリでは、この機能を開発するにあたって考えたことや、形にする上で工夫した点などを紹介させて頂きます。 ひき肉の検索結果に表示される定番メニュー 検索成功率を追う 検索チームでは、サービスの満足度を図る指標として検索成功率という数値を追っています。 検索成功率とは、特定の条件を満たして終了する「検索成功セッション」が全セッションに占める割合を示したもので、この数値が高いほど、目的のレシピに到達し易い検索体験を提供できていると考えています。 レシピが決まりにくいキーワードから利用シーンを推測する クックパッドの検索窓に入力されるキーワードは、材名、料理名、その他の3つに大別されます。 その他に分類されるキーワードの多くは、「ダイエット」「ランチ」「誕生日

    定番メニューを提案して検索体験をより良くする - クックパッド開発者ブログ
    masaya-chonan
    masaya-chonan 2015/09/08
    検索成功率は高めていきたい。
  • Androidアプリを新規リリースする際のあれこれ - クックパッド開発者ブログ

    こんにちは、投稿推進部の吉田です。 少し前に、お料理アルバムという「日々の料理を写真を記録する」ためのアプリのリリースしました。初めて会社のプロダクトのリリース作業を経験して、色々と学びがあったので共有したいと思います。 見出し releaseビルドをCIで作成する releaseビルドから不要なモノを排除する Google Playストアのリファラを活用する Google AnalyticsとGoogle Playストアの連携をする リリース直前チェックリスト releaseビルドをCIで作成する リリース版apkはコマンドから生成できる環境を整え、CIで作成するのがお薦めです。 CI上でのビルドすることで、ビルド手順の共有が不要になり、開発チームの誰でもボタン一つでビルドが可能になります。 また、ビルドをCIに任せることで、keystoreとパスワードを開発者全員に共有する必要がなくな

    Androidアプリを新規リリースする際のあれこれ - クックパッド開発者ブログ
  • よく言われる「施策を数字で」というやつについて - クックパッド開発者ブログ

    新規広告開発部の大野です。今回は、「目標を達成するための施策を数字で考える」ということについて、普段やっていることを書きます。 施策の評価に関しては Rを使う などいろいろなノウハウがありますし、Web上の行動改善などはそれはそれで、世にノウハウがたくさんあります 。 今回は、例えば、期初に事業目標を決めた次のステップとして、全体の優先度を決めるあたりの段階の話をしましょう。 分解: 数字から取り組む施策を決める まず、どの施策をするかを決めるわけですが、必ず、最初に目標を因数分解しています。 広告なら「収益 = 単価 × 在庫 × 販売率」といういつもの式があるので、これが元です。例えば 単価がCPCなら在庫はクリック回数。つまり、imp(表示回数) × CTR 単価が表示なら、在庫は単純に imp となります。で、販売方法によって、どの項をあげるのが有効か、つまり、現実的に伸びるか、ど

    よく言われる「施策を数字で」というやつについて - クックパッド開発者ブログ
  • Cookpad × Fablic のデザイナーイベント「Think User First」を開催しました。 - クックパッド開発者ブログ

    こんにちは、ユーザーファースト推進室 デザイナーの吉井です。 クックパッドでは去る7月23日(木)、フリマアプリ「フリル」を運営するFablicさんと合同でデザイナー向けにイベントを行いました。 イベントのタイトルにもある通り、"ユーザーファースト"をテーマに掲げ、開発現場での実践事例を交えながら両社の文化やデザイナーの働き方についてご紹介しました。 お集まりいただいた70名の皆さまの熱量も高く、イベントスタート時からパネルディスカッション、懇親会に至るまで、とても充実した時間を過ごさせていただきました。 ご来場いただいた皆さま、当にありがとうございました。 また今回は多数応募をいただいたため残念ながら抽選に漏れてしまった皆さま、たいへん申し訳ありません。 こういったイベントは今後も開催していきたいと思いますので、またのご参加を心よりお待ちしております! 最後に、各発表者の当日のスライド

    Cookpad × Fablic のデザイナーイベント「Think User First」を開催しました。 - クックパッド開発者ブログ
  • クーポンコードの打ち間違えを防ぐために工夫した話 - クックパッド開発者ブログ

    こんにちは。会員事業部ビジネス開発グループの高田です。 クックパッドは今年、株主優待制度として、プレミアムサービス一年間無料クーポンを贈呈しました。エントリではクーポンコードを打ち間違えて、意図せず他の人のクーポンコードを使用するのを防ぐために工夫した話をご紹介します。 はじめに クーポンコードは入力のしやすさを優先して数字だけの文字列にしました。はじめは rand 関数を使って生成しようとしていたのですが、数字の打ち間違えや順序間違いで、意図せず誤使用してしまうのを防ぐためにチェックサムを加えるのがいい、と同僚から助言をもらいました。 いくつか調べて見たところ、Luhn アルゴリズムが上記を満たしていたので利用することにしました。 Luhn アルゴリズムの利用 Luhn アルゴリズムとは、誤り検出のためのチェックサム符号で、1 桁の間違いや隣接する数字の順序間違いを検出できるという特徴

    クーポンコードの打ち間違えを防ぐために工夫した話 - クックパッド開発者ブログ
  • より良い組織を作るために - クックパッド開発者ブログ

    はじめに こんにちは、投稿推進部部長の勝間です。 突然ですが、皆さんは「組織における課題」について考えたこと、意識したことはあるでしょうか。 「組織における課題」なんて言葉を使うと、たとえば 事業戦略の方向性 人事評価制度 マネジメント層の育成 など、少し高いレイヤーの話が思いつくでしょうか。 ともすれば自分とは無関係な話のように思えるものかもしれません。 一方で、このようなものはどうでしょうか。 なんとなく、最近社内の空気変わった気がする なんとなく、隣の部署が何やってるかよくわからない このような、もやっとした感覚、は普段働いている中で感じたことがある人も少なくないかもしれません。 こういった「具体的な何か」というより「抽象的な違和感」を私たちが抱くことも組織における課題といってもいいかと思います。 このような組織における課題、違和感を認識したとき、私たちはどのように向かい合うべきでし

    より良い組織を作るために - クックパッド開発者ブログ
    masaya-chonan
    masaya-chonan 2015/06/09
    すばらしい。
  • Safariで入力したアカウント情報をiOSアプリで使う - クックパッド開発者ブログ

    こんにちは。ユーザーファースト室の中村(@_nkmrh)です。 先日リリースしたクックパッドアプリ v7.6.0 には iCloud の Keychain に保存されているクックパッドアカウントを、アプリから利用する機能を追加しています。具体的には次のような機能です。 1. Mac の Safari から cookpad にログインします 2. アカウント情報を iCloud Keychain に保存します 3. iPhoneのcookpadアプリを立ち上げ、ログインボタンをタップすると、Safari でログインしたアカウントが選択できるようになっています このように、Mac 又は iPhone の Safari からクックパッドを利用していた人が、アプリにログインする際、面倒な入力をせずにログイン出来るようになりました。ぜひ試してみて下さい。 ※この機能を使用するには、事前に下記の設定が

    Safariで入力したアカウント情報をiOSアプリで使う - クックパッド開発者ブログ
  • 安定したリリースを継続するためのテストとテストレベルの話 - クックパッド開発者ブログ

    こんにちは。技術部の松尾(@Kazu_cocoa)です。 安定したリリースを継続して回す為には、開発プロセスや実装も大事ですが、その中でどのような確認、テストを継続して行うかも大切になります。そこで、開発プロセスにおけるテストをどのように切り分けて、構築していくかという考え方に関して少し整理してみようと思います。 これにより、実施されているテストによって検出できる/できない不具合がどのようなものか、それが開発中のどこで防ぐことができるのかを整理できるようになってくると思います。また、安定したリリースを実現するためのボトルネック解消に向けて、どのレベルでテストを充実させると効率的にそれが達成できるかという所も考えることができるようになります。 テストレベルによるテストの区分け テストレベルという言葉にも様々な定義がありますが、ここではざっくりとテスト対象となる範囲や領域を意味することにします

    安定したリリースを継続するためのテストとテストレベルの話 - クックパッド開発者ブログ