タグ

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

  • レシピ検索を改善する工夫 - クックパッド開発者ブログ

    こんにちは。技術部検索グループの兼山(@PENGUINANA_)です。 クックパッドの中でレシピ検索はレシピをのせる人とさがす人をつなぐ大事な仕組みです。 今回はレシピ検索を運用改善していく上での工夫のうち、他の検索システムでも役立ちそうな内容を紹介させていただきます。 改善ポイントを発見しやすくする 工夫1. 検索語をモニタリングする search monitorという社内ツールを作りました。前日の検索傾向を表示できます。 このツールは以下の作業をサポートします。 検索語をUU(ニーズ)が多かった順に知る キーワードごとに何人に使われたのかを知る ユーザーが実際に目にする検索結果を素早く確認する レシピが1品も見つけられなかったキーワードを知る 他にも「キーワードごとにどのようなキーワードと組み合わされやすいか」、「その検索語のCTRはどの程度か」、「その検索語は何時頃あるいは何曜日によ

    レシピ検索を改善する工夫 - クックパッド開発者ブログ
    pcod
    pcod 2014/10/30
    ブログ書いた
  • 多腕バンディットによる表示コンテンツの最適化 - クックパッド開発者ブログ

    こんにちは。技術部検索グループの原島です。 上の画像は、スマートフォン(ブラウザ版)で見たクックパッドの検索結果ページです。レシピだけでなく、ニュースも表示されていますね。献立や掲示板のスレッドなどが表示されることもあります。 クックパッドでは、検索結果ページに表示するコンテンツをクエリなどに応じて最適化しています。最適化は、膨大なログデータと最新の機械学習を用いることで、実現しています。このエントリでは、クックパッドにおけるコンテンツ最適化の裏側を紹介します。 最適化の背景 スマートフォンの普及に伴って、ユーザが利用するプラットフォームは PC からモバイルにシフトしつつあります。クックパッドにおけるモバイル利用者の割合も、ここ 2 年で 10% 以上増加しました。最近では、60% 以上のユーザがモバイルからアクセスしています。 ユーザの利用形態が変化すれば、検索結果ページもその変化に対

    多腕バンディットによる表示コンテンツの最適化 - クックパッド開発者ブログ
    pcod
    pcod 2014/10/29
  • クックパッドの検索の裏側 - クックパッド開発者ブログ

    初めまして、インフラストラクチャー部の加藤 (@EugeneK) です。 クックパッドでは現在178万ものレシピが公開されていますが、目的のレシピを探すために検索機能を提供しています。 今回は検索機能の裏側の仕組みについて、インフラストラクチャーの観点からお話ししようと思います。 全ての検索機能を支えるSolrと周辺のアーキテクチャ クックパッドにはレシピの検索だけでなく様々な検索機能がありますが、その全てはSolrを活用して実装されています。 以前はMySQL Tritonnによる全文検索機能を使用していましたが、2011年頃からSolrに切り替わりました。 クックパッドではSolrをマスタ - スレーブ構成にすることで冗長性と負荷分散を実現しています。以下の構成図をご覧ください。 マスタとスレーブの間には、リピータと呼ばれる検索インデックスを中継するためだけの役割のサーバがいます。この

    クックパッドの検索の裏側 - クックパッド開発者ブログ
    pcod
    pcod 2014/10/22
  • Android Studioに追加されたGoogle App Engineテンプレートを試そう 導入編 - クックパッド開発者ブログ

    モバイルファースト室の@sys1yagiです。 Android Studio使ってますか? Google I/O 2014の直前に3つのGoogle App EngineテンプレートがAndroid Studioに追加されました。追加されたテンプレートのうちのApp Engine Java Endpoints Moduleを用いたGoogle Cloud Endpointsの作成と利用について解説します。 MBaaSとCloud Endpoints Google Cloud EndpointsはGoogleが提供するGoogle Cloud Platformの機能の一つで、Google App Engineを使ってAPIのエンドポイントを定義する仕組みを提供します。 一般的なMBaaSではMBaaSが用意したクライアントライブラリを使ってバックエンドにアクセスします。アプリケーション開発者

    Android Studioに追加されたGoogle App Engineテンプレートを試そう 導入編 - クックパッド開発者ブログ
    pcod
    pcod 2014/10/20
  • Android Studioに追加されたGoogle App Engineテンプレートを試そう 実装編 - クックパッド開発者ブログ

    モバイルファースト室の@sys1yagiです。 Android Studioに追加されたGoogle App Engineテンプレートを試そう 導入編の続きです。今回はCloud Endpointsのテンプレートを使ってAndroid Studio上でTodoアプリを作る例を解説します。 Google App Engineテンプレートの利点 Androidアプリケーションの開発においてGoogle App Engine(以下、GAE)テンプレートの利用には以下の利点があると考えられます。 Android Studioでバックエンドも同時に開発できる GAE関連の依存性をGradleで管理できる バックエンドとフロントエンド間のインタフェースの実装が省略できる バックエンドのモデル変更がすぐにフロントエンドに反映されるので迅速なプロトタイピングができる バックエンドはGAEなのでそのまま運用

    Android Studioに追加されたGoogle App Engineテンプレートを試そう 実装編 - クックパッド開発者ブログ
    pcod
    pcod 2014/10/20
  • オリジナルフォントを使ったデザイン - クックパッド開発者ブログ

    こんにちは、ユーザファースト推進部デザイングループの元山です。 デザイナーの皆さんはWebやアプリなどをデザインする上でフォントを作った事があるでしょうか? ずいぶんと前から「これからはWebフォントの時代だ」なんて言われながらも、現実は中々使うのが難しいなぁと感じている方は多いかもしれません。 今回はクックパッドで実際に作ったオリジナルフォントを使ったWebやアプリのデザインについて事例を交えながら紹介してみたいと思います。 クックパッドでの事例 印象と機能を向上させるデザインのためのフォント ブラウザやアプリの標準のフォントではない特殊なフォントを使う理由として真っ先にあげられるのは、やはり文字の雰囲気や見た目でデザイン的な印象や見え方を向上することができる点だと思います。最近ではAppleのWebサイトもオリジナルのWebFontを使ったデザインに変わりましたね。 クックパッドでは特

    オリジナルフォントを使ったデザイン - クックパッド開発者ブログ
    pcod
    pcod 2014/10/14
  • アプリ開発の品質底上げ施策をWebhooksでBotが支援する世界 - クックパッド開発者ブログ

    こんにちは。技術部の松尾(@Kazu_cocoa)です。 主にモバイルアプリ開発において、数ヶ月前よりGitHubのWebhooksを使ったとある取り組みを始めました。HipChatやSlackなどをはじめとした様々なサービスとの連携サービスを提供しているGitHubですが、Webhooksの機能を使うことで、より自分たちの開発を支援する未来を創造できればと思います。以降では、実際の使用例、その実装よりな話しへと話しをすすめます。 クックパッドにおけるWebhooksの使用例 チェックリストによるセルフチェックをPR時に実施する モバイルアプリ開発はWebアプリ開発と異なる点が多々あります。例えば、開発対象の面では端末の多様性、端末システム側設定・通信状態の多様さなど、リリースの面ではデプロイに対する制限や更新がユーザ依存であることなど、です。そのため、当たり前品質の底上げのために不具合の

    アプリ開発の品質底上げ施策をWebhooksでBotが支援する世界 - クックパッド開発者ブログ
    pcod
    pcod 2014/10/07
  • クックパッドでのユーザ調査 - クックパッド開発者ブログ

    こんにちは、ユーザファースト推進部デザイングループの長野です。 今回は、クックパッドで定期的に行っているユーザ調査について、下記の流れでご紹介してみたいと思います。 なぜ調査するのか どのような調査をしているか 調査結果の記録と共有の方法 実際のサービスに活かされた事例 1. なぜ調査するのか クックパッドでのものづくりはすべて、「誰のどんな課題を解決するのか」を明確に定義することから始まります。そのためには、対象となる「人」への理解が不可欠であり、ユーザ調査はその手段です。 現在クックパッドでは、レシピ検索だけでなく生活全般へと事業領域が広がってきており、提供するサービスが対象とする「人」の生活や利用シーンの幅も、ますます多様化しています。それにともなって、様々なタイプの人の生活を理解することが必要とされてきており、ユーザ調査を活用する意味も、より強まってきていると感じています。 2.

    クックパッドでのユーザ調査 - クックパッド開発者ブログ
    pcod
    pcod 2014/10/06
  • 2014年も開発コンテスト24を開催します! - クックパッド開発者ブログ

    開発コンテスト24とは、午前9時にテーマが発表されてから24時間以内 という制限のもと コンセプトを決め デザインを定め 実装を完了する までをこなす、開発のトライアスロンとでも言うべきイベントです! 2010年から毎年開催されてきた開発コンテスト24ですが、今年は10月18日(土)の開催となります。 詳細はこちら (「第5回 開発コンテスト24」開催のお知らせ) をご覧ください。 今年のテーマはリンク先のページで10月18日 (土) の午前9時に発表されます。 作業スペースとしてクックパッドのラウンジを開放します! 10月18日 (土) 8時30分〜17時30分の間、クックパッド社 (渋谷区恵比寿) のラウンジを作業スペースとして開放します。 地図 当日はクックパッド社員が手作りランチでおもてなしします。ぜひともご利用ください! なおラウンジ利用の申し込みの期限は10/10 (金) 1

    2014年も開発コンテスト24を開催します! - クックパッド開発者ブログ
    pcod
    pcod 2014/10/03
  • 開発環境のデータをできるだけ本番に近づける - クックパッド開発者ブログ

    こんにちは。技術部の吉川です。 今回はクックパッドの開発環境構成、特に開発用データベースの構成についてご紹介します。 開発環境の構成 クックパッドのシステム環境は以下のようなフェイズに分かれています。 ※ これはcookpad.comの構成で、サブシステムや個別のサービスはその規模や特性に応じて構成が異なります。 development 開発者が実際に開発を行う環境です。クックパッドでは仮想環境は用いず、手元のマシンでRailsアプリケーションを動かして開発を行っています。 データベースはローカルではなく、開発者全体で共通の開発用データベースに接続しています。 test 手元でテストを実行する場合は、ローカルマシンのデータベースを利用します。CI(rrrspec)などの場合も同様で、テスト実行サーバーのデータベースが利用されます。 staging stagingといえば準番環境として、

    開発環境のデータをできるだけ本番に近づける - クックパッド開発者ブログ
    pcod
    pcod 2014/10/03
    めっちゃ便利
  • Rails 4 へのアップグレード時に遭遇した問題 - クックパッド開発者ブログ

    技術部の鈴木 (@eagletmt) です。 クックパッドでは8月に体アプリケーションや API サーバ等で使われている Rails のバージョンを 3.2 から 4.1 へ順次アップグレードを行いました。 アップグレードは主に松田さん (@amatsuda) と私で進めました。 この記事ではアップレードの際に遭遇した問題の一部を紹介します。 MySQL strict mode の有効化 MySQL を使っている場合、Rails 4.0 からデフォルトで @@SESSION.sql_mode = 'STRICT_ALL_TABLES' が最初に実行されるようになりました (Ruby on Rails 4.0 Release Notes) 。 これを無効化するために database.yml で strict: false という設定が用意されています。 しかし、同じく Rails 4.0

    Rails 4 へのアップグレード時に遭遇した問題 - クックパッド開発者ブログ
    pcod
    pcod 2014/09/30
  • 「関連する○○」機能を手軽に実現できる。そう、Elasticsearch ならね。 - クックパッド開発者ブログ

    セコン (id:secondlife, @hotchpotch) です。ウェブサービスにはよく「このエントリーに関連するブログ記事」や「このレシピに関連するレシピ」という機能が実現されてますよね。さて、この機能はどのように実現すれば良いでしょうか。例えば tf-idf で単語の類似度を求め…といった実装が必要になり、いささか面倒です。 しかしながら Elasticsearch や Solr *1を使うと手軽に実現できます。例えば、クックパッドニュースの記事では Solr を使い「この記事を読んだ人におすすめ」の機能に、最近クックパッドにジョインしたインドネシアの会社の DapurMasak では Elasticsearch を使い「Resep serupa(関連レシピ)」の機能で利用しています。 クックパッドニュースでのこの記事を読んだ人におすすめ DapurMasak での関連レシピ 使

    「関連する○○」機能を手軽に実現できる。そう、Elasticsearch ならね。 - クックパッド開発者ブログ
    pcod
    pcod 2014/09/24
  • PC版トップページリニューアルの狙いと成果 - クックパッド開発者ブログ

    メディア事業部の須藤です。 8/26より、PCクックパッドのトップページをリニューアルしました。 公開から約3週間が経過しましたが、お試し頂けましたでしょうか? この記事では、今回のリニューアルを通して解決したかった課題や、新しいチャレンジ、 また、それらを具現化する過程で考えた事を、実際の結果と合わせて書いてみたいと思います。 今回のリニューアルで伝えたかったこと 今回のリニューアルで強く意識したのは、「にまつわる全般を扱うポータルサイト」として、 クックパッドを再認識して頂けるトップページにすることでした。 クックパッドでは2年程前より、従来のレシピサービスとは別の価値を提供する、新規事業・サービスの開発に注力してきました。 例えば、ECサービスである「産地直送便」や、近所のスーパーの特売品が分かる「特売情報」、クックパッド認定の料理教室を展開する「料理教室」などがあり、 それぞれ

    PC版トップページリニューアルの狙いと成果 - クックパッド開発者ブログ
    pcod
    pcod 2014/09/12
  • クックパッドとマイクロサービス - クックパッド開発者ブログ

    技術部の高井です。 最近、日でもマイクロサービスという言葉が流行しつつあります。 今回は、なぜクックパッドがマイクロサービスを選択したのか、また実際にどのようなやり方をしているのかということを紹介します。 Conwayの法則 ここ数年の間、クックパッドレシピの投稿・検索サービスから「を中心とした生活のインフラ」として事業領域を拡大しつつあります。海外レシピサービスの買収による海外展開は、単なる金銭的な関係にとどまらず、人的・技術的な交流も含めて格化しつつあります。また、「モバイルファースト」を標語とするモバイルアプリケーションへの取り組みも加速してきました。 事業領域の拡大やグローバル展開、モバイルファーストといったビジネス要求の変化に応じて、会社の組織構造も変化しています。そして、Conwayの法則 として知られているように、組織構造とソフトウェアアーキテクチャには密接な関係があ

    クックパッドとマイクロサービス - クックパッド開発者ブログ
    pcod
    pcod 2014/09/08
    なおちゃんのエントリー勉強になる
  • クックパッドの新しいロゴに込めた思い - クックパッド開発者ブログ

    ユーザーファースト推進部デザインチームの上ノ郷谷 (かみのごうや) です。 9月1日よりクックパッドサイトのロゴが新しくなりました。もうみなさまご覧になっていただけたでしょうか。 ロゴを新しくしたのは、2014年から格的にはじまった世界展開に合わせて「毎日の料理を楽しみに」を世界へ。という思いをもっと知ってもらうため。そして世界中のみなさんに親しみを持ってもらいたいという思いからです。 ロゴの基的な構成、使われている色には変更はありませんが、さまざまな思いを込めた大きなマイナーチェンジになったと思います。ロゴデザインを担当したものとして、どのようなことを考えながら作ったのかを書いてみます。 これまでのロゴと新しいロゴ まずはクックパッドのシンボルでもあるコック帽のロゴマーク。このロゴマークをもっと強調させ、認知を高めるために茶色い枠を外しました。枠を外すことでキーカラーのオレンジの印象

    クックパッドの新しいロゴに込めた思い - クックパッド開発者ブログ
    pcod
    pcod 2014/09/05
  • クックパッドにおける最近のActiveRecord運用事情 - クックパッド開発者ブログ

    インフラストラクチャー部の成田(@mirakui)です。 Rails の OR マッパーである ActiveRecord ですが、みなさんどのように運用していますか? ActiveRecord を使うと、 SQL を直接扱うことなく、抽象化された表現で RDB にアクセスできるので、アプリケーションの開発効率という観点ではメリットが大きいです。 一方で、 ActiveRecord が駆使されているアプリケーションをサーバに配置してプロダクションとして運用する立場からすると、いくつかの問題に突き当たります。 まずはクックパッド体アプリケーションにおける、最新の rake stats をご覧ください。 +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC

    クックパッドにおける最近のActiveRecord運用事情 - クックパッド開発者ブログ
    pcod
    pcod 2014/08/28
  • Lunch.cookpad開始のおしらせ - クックパッド開発者ブログ

    こんにちは。クックパッド・イベント事務局です。 クックパッドではこの度、エンジニア同士がオフラインでカジュアルにお話する場を不定期で開催することにいたしました。これを Lunch.cookpad と名付け、エンジニアとして活躍する&これから活躍していきたいと思う皆さんにとって有意義な情報交換の場にしていきたいと思っています。 Lunch.cookpadは毎回1時間で、開催日は都度決定します。クックパッドから参加するエンジニアは1名で、毎回2名の方をお招きしてご希望のテーマに沿った話をする予定です。 早速ですが、第1回を8/19 (火) に開催いたします! 【第1回 Lunch.cookpad / 開催概要】 日時:8/19 (火) 12:00- 場所:クックパッド白金台オフィス 参加するエンジニア:村田賢太 (@mrkn) 北海道出身。CRuby のコミッタとして bigdecimal の

    Lunch.cookpad開始のおしらせ - クックパッド開発者ブログ
    pcod
    pcod 2014/08/07
    スペインで活躍するmrknさんと話せます!
  • Amazon Cognitoについて - AWSが提案するモバイル時代のアカウント管理 - クックパッド開発者ブログ

    モバイルファースト室の @rejasupotaro です。 AWS Summit 2014 でAWS Mobile Servicesのアップデートがありましたが、その中でも気になったAmazon Cognitoについて調べてみました。 Amazon Cognitoとは 今どきのモバイルアプリでは、単純に認証してAPIを叩くだけではなく、サービスにログインしていない状態でも一意なIDを持たせてデータを管理したり、ゲスト状態から会員登録をしたときにデータを引き継いだり、サービス間でシングルサインオンを提供したり、デバイス間で設定を共有できるようにするなど、ユーザーがどのデバイスからサービスにアクセスしてもストレスなく使えるようにするために様々な工夫を凝らす必要があります。 Introduction to Amazon Cognito これらの実装は複雑になりがちで、アプリを作っていると思ったら

    pcod
    pcod 2014/07/29
  • 料理動画を支える技術 - クックパッド開発者ブログ

    インフラストラクチャー部 星野(@con_mame)です。 少し前から、一部レシピページに料理動画を掲載していました。当初はYoutubeを使用していましたが、日から自社配信に切り替わりました。現在はまだ掲載数は少ないですが、今後掲載数を増やしていきたいと考えております。 そこで、今回は、動画配信プラットフォームの裏側がどうなっているかという点を簡単にですがご紹介したいと思います。 構成図 構成図を見ていただくのが一番わかり易いと思うので、最初に掲載します。 見て分かる通り、今回は全てAWSのサービスを使用して構築しています。 今回使用したサービスは エンコード: Elastic Transcoder データストア: DynamoDB + DynamicDynamoDB ストレージ・配信: S3 + CloudFront エンコード通知など: SNS 今回、構築までの期間とエンコードや動

    料理動画を支える技術 - クックパッド開発者ブログ
    pcod
    pcod 2014/06/17
  • OS X キーチェーンから環境変数をセットするツールを作りました - クックパッド開発者ブログ

    こんにちは、技術部の福森 (@sora_h) です。 最近は環境変数に API トークンや credential といった認証情報を入れる事が増えてきています。 たとえば、AWS を利用するツールでは AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY といった環境変数にだいたいの場合で対応しています。 そのため、~/.bashrc や ~/.zshrc などシェルの設定に export を書いておき常に使える状態にしている方も多いと思いますが、 それって実は危険ではないでしょうか? 例えば、下記のようなリスクが考えられます: 意図せず情報が利用されて意図しない副作用が発生してしまう危険性 番に変更を与えるつもりはなかったけれど事故を起こしてしまう等 悪意のあるスクリプトを実行した際に環境変数を送信などされてしまう危険性 事故や漏洩を防ぐためにも、筆者はかな

    OS X キーチェーンから環境変数をセットするツールを作りました - クックパッド開発者ブログ
    pcod
    pcod 2014/06/04