タグ

cookpadに関するmoroのブックマーク (52)

  • クックパッドマートの配送ルートを自動生成している仕組み - クックパッド開発者ブログ

    こんにちは、クックパッドマート流通基盤アプリケーション開発グループのオサ(@s_osa_)です。 生鮮品の EC サービスであるクックパッドマートでは、「1品から送料無料」をはじめとするサービスの特徴を実現するために、商品の流通網を自分たちでつくっています。 このエントリでは、商品をユーザーに届けるための配送ルートを自動生成している仕組みについて紹介します。 解決したい問題 配送ルートとは クックパッドマートにはいくつかの流通方法がありますが、ここでは「ステーション便」と呼ばれるものについて解説します。他の流通方法などを含む全体像が気になる方は以下のエントリがオススメです。 クックパッド生鮮 EC お届けの裏側 2022 年版 - クックパッド開発者ブログ ステーション便では、ハブと呼ばれる流通拠点からユーザーが商品を受け取りに行く場所であるステーションへと商品を運びます。東京都、神奈川

    クックパッドマートの配送ルートを自動生成している仕組み - クックパッド開発者ブログ
    moro
    moro 2022/04/21
    いやー、これは面白いけど大変そうだけど面白い
  • RubyKaigi 2019 Cookpad Daily Ruby Puzzles の正解と解説 - クックパッド開発者ブログ

    Ruby 開発チームの遠藤です。RubyKaigi 2019 が無事に終わりました。すばらしい会議に関わったすべてのみなさんに感謝します。 開催前に記事を書いたとおり、クックパッドからはのべ 7 件くらいの発表を行い、一部メンバは会議運営にもオーガナイザとして貢献しました。クックパッドブースでは、様々な展示に加え、エンジニアリングマネージャとトークをする権利の配布やクックパッドからの発表者と質疑をする "Ask the speaker" など、いろいろな企画をやりました。 クックパッドブースの企画の 1 つとして、今年は、"Cookpad Daily Ruby Puzzles" というのをやってみました。Ruby で書かれた不完全な Hello world プログラムを 1 日 3 つ(合計 9 問)配布するので、なるべく少ない文字を追加して完成させてください、というものでした。作問担当は

    moro
    moro 2019/04/25
    いやー、面白かった。ありがとうございました。毎日一問だけ正解にたどり着けてたけどまだまだだな。。。 / 2-2 @youchan にめっちゃ煽られて悩んだけどまさかの勝者。おめでとうございます!!
  • 【RubyKaigi 2019 参加者に捧ぐ】福岡で起業した男が本気で書いた福岡グルメまとめ - クックパッド開発者ブログ

    CEO室で新規事業立ち上げをやりつつ、昨年子会社になりましたウミーベ株式会社の代表取締役をやっているカズワタベ(@kazzwatabe)です。 さて、来月には待ちに待った RubyKaigi 2019 が開催されるんですが、クックパッドRuby Committers' Sponsorとして関わっていたり、たくさんのエンジニアが現地参加するようです。 そんな RubyKaigi 2019 、今年の会場はウミーベが拠点とする福岡! そして福岡と言えば飯が美味い。これは他県から訪れる社内外のみなさんにグルメ情報を提供せねばという思いから、非エンジニアにも関わらず開発者ブログに登場する運びとなりました。 RubyKaigi 2019 に限らず、福岡を訪れる機会があったらぜひ行って欲しいお店ばかりなのでよかったら参考になさってください。 目次 目次 海鮮 サバ(きはる、独酌しずく) イカ(河太郎、

    【RubyKaigi 2019 参加者に捧ぐ】福岡で起業した男が本気で書いた福岡グルメまとめ - クックパッド開発者ブログ
    moro
    moro 2019/03/20
    よい... 参考になる。餃子についての言及がないけど、それはcookpad ニュースとかに来たら面白い
  • 最新のログもすぐクエリできる速くて容量無限の最強ログ基盤をRedshift Spectrumで作る - クックパッド開発者ブログ

    こんにちは。去年の今頃は Rust を書いていました。 インフラストラクチャー部データ基盤グループの id:koba789 です。 背景 クックパッドではデータ基盤の DBMS として Amazon Redshift を利用しています。 既存のデータ基盤について詳しいことは クックパッドのデータ活用基盤 - クックパッド開発者ブログ を参照してください。 今まで、ログは数時間に1度、定期実行ジョブで Redshift 内のテーブルにロードしていました。 ロードジョブの実行間隔が "数時間" と長めなのは、Redshift のトランザクションのコミットが遅いためです。 クックパッドでは数百ものログテーブルがあるため、仮に1分おきにすべてを取り込もうとすると秒間数回以上のコミットを行わなければなりません。 このような頻繁なコミットは Redshift 全体のパフォーマンスを悪化させてしまいます

    最新のログもすぐクエリできる速くて容量無限の最強ログ基盤をRedshift Spectrumで作る - クックパッド開発者ブログ
    moro
    moro 2018/11/21
    “それ自体の理解はもちろんのこと、自分たちの課題をじっと見つめ、ひとつひとつ丁寧にトレードオフを選択していくことで強力な武器となります。” 仕組みもスタンスも超よい!/ DELAYEDのデータはMERGEされない?
  • インタプリタ開発者によるRubyの挙動解析への道 - クックパッド開発者ブログ

    Ruby インタプリタを開発している笹田です。今年のクリスマスにリリース予定の Ruby 2.6、楽しみですね(無事、出るといいな)。 この記事では、私がRubyの挙動を調べるために頑張った記録を書いておきます。 基的に、単純作業の積み重ねなので、難しい内容はありません。お気楽にお読みいただければ幸いです。 大雑把にまとめると、こんな内容が書いてあります。 デバッグカウンタの導入によるRubyの詳細な挙動調査の紹介 (私には)簡単な話で、Rubyをいろいろいじって、Rubyの細かい挙動、しかもほとんどの人が気にしない挙動を調べられるようにした話です。 多くの人が興味ないだろう、Rubyに仕込まれている統計情報をとる仕組みを紹介します。 クックパッドアプリを手元で調査できるようにした話 (私には)難しい話で、Ruby 開発版で弊社アプリを手元で動かすために四苦八苦した記録です。 Ruby

    インタプリタ開発者によるRubyの挙動解析への道 - クックパッド開発者ブログ
    moro
    moro 2018/10/26
    終始笹田さんの声で再生された。おもしろい。| 『ちょっと考えた結果、少し弄って、(略) typical な例では 30% 高速化しています。』!!!
  • Railsアプリケーションでフォームをオブジェクトにして育てる - クックパッド開発者ブログ

    ユーザーエンゲージメント部の諸橋 id:moro です。 わたしはずっと、ユーザー登録やログイン周りという、サービス的には基盤的なところ、技術スタック的にはアプリケーション寄りのところに取り組んできました。関連する話を何度かこの開発者ブログにも書いています。 ユーザー基盤を作り直しながらRailsでのサービス層に向き合う 巨大なWEBアプリケーションに巨大な変更を取り入れるためにやったこと この記事で触れている「電話番号による登録」について、チームメンバーが別の側面を紹介してくれています。 今日はそのあたりの開発を通じて考えた、Railsアプリケーションでのフォームオブジェクトやサービス層といったものが何であるか、という問いに対する、現在の自分のスタンスを紹介します。 サービス層、サービスオブジェクト、フォームオブジェクト もともと Railsは Web 画面から DB 構造までをあえて密

    Railsアプリケーションでフォームをオブジェクトにして育てる - クックパッド開発者ブログ
    moro
    moro 2018/05/30
    最近のアプリケーションを育てながら設計を改善する過程の知見を書いてみました。仙台への道行きでご笑覧くださいませ!!
  • Web アプリケーションを把握するためのコンソール - クックパッド開発者ブログ

    技術部開発基盤グループの鈴木 (id:eagletmt) です。 クックパッドではほとんどの Web アプリケーションが Amazon ECS 上で動く状態となり、またマイクロサービス化や新規サービスのリリースにより Web アプリケーションの数も増えていきました。 個々のアプリケーションでは Docker イメージを Jenkins でビルドして Amazon ECR にプッシュし、Rundeck から hako を用いて ECS にデプロイし、またその Web アプリケーションからは Amazon RDS、Amazon ElastiCache 等のマネージドサービスを活用しています。 このように多くの Web アプリケーションが存在し、また各アプリが別のアプリや AWS の様々なマネージドサービスを利用している状況では、どのアプリが何を使っているのかを把握することが困難になっていきます

    Web アプリケーションを把握するためのコンソール - クックパッド開発者ブログ
    moro
    moro 2018/04/02
    一連のhakoシリーズ、とても「いい感じ」に育っていってて好き
  • ハッシュ値の使い方について - クックパッド開発者ブログ

    モバイル基盤グループのヴァンサン(@vincentisambart)です。 先日以下のツイートを拝見しました。 Swift's stdlib moves to randomly seeded hashing: https://t.co/2T5oRYtD8B— ericasadun (@ericasadun) 2018年3月10日 この変更はSwift 4.1にはまだ入りませんが、4.2か5.0に入るはずです。コードレビューでこの変更が問題を起こそうなコードを指摘したことあるので、ハッシュ値のおさらいをする良いタイミングではないでしょうか。 Swiftのことを考えて書いていますが、多くのプログラミング言語にも当てはまります。ハッシュ値はSwiftではhashValueというプロパティが返しますが、多くの言語では単にhashというメソッド・関数が返します。 ハッシュマップ ハッシュ値はハッシュ

    ハッシュ値の使い方について - クックパッド開発者ブログ
    moro
    moro 2018/03/22
    アッこれ Rubyのしくみ https://tatsu-zine.com/books/ruby-under-a-microscope-ja でみたやつだ! 勉強になる。そういや昔、この脆弱性でRailsアプデートした思い出も蘇ってきた
  • Google Play アプリ内定期購入を実装する - クックパッド開発者ブログ

    技術部モバイル基盤グループの宇津(@uzzu)です。 今年3月、クックパッドAndroidアプリはこれまでサポートしていたクレジットカード、キャリア決済に加えて、Google Playアプリ内定期購入によるプレミアムサービス登録機能を追加しました。 Google Playのアプリ内定期購入機能は個人的に気に入っているので早速乗り換えました。 良い機会なので、この記事ではIn-app Billing version 3(以下IABv3)以降のアプリ内課金の実装を振り返りつつ、Google Play Billing Libraryの紹介も交えながら開発TIPSを紹介します。 TIPS1. Google Play Billing Libraryの採用 IABv3以降のアプリ内課金を実施するためには(ざっくりですが)以下のフローを実装する必要がありました。 ServiceConnection を

    Google Play アプリ内定期購入を実装する - クックパッド開発者ブログ
    moro
    moro 2018/03/14
    “決済系の格言として「まずは保存」というのがあります。 ”
  • Cookpad の新規事業と Firebase - クックパッド開発者ブログ

    国内事業開発部 iOS エンジニアの三浦です。私は17年新卒で入社したのですが、それ以来複数の新規事業の開発に携わってきました。 現在開発中のアプリでは、バックエンドに Firebase を用いた開発を進めています。 この記事ではなぜ Firebase を使っているのかと、そこで得られた知見についてまとめようと思います。 なぜ Firebase みなさんご存知かと思いますが、Cookpad のレシピサービスでは主にバックエンドに AWSRuby on Rails が使われています。 なぜ新規事業ではその構成ではなく Firebase を使うのかということですが、以下のような理由があります。 基盤サービスが豊富 Firebase には RealtimeDatabaseFireStore といった Database を始めとして、CloudMessaging(Push通知基盤)、Aut

    Cookpad の新規事業と Firebase - クックパッド開発者ブログ
    moro
    moro 2018/02/09
    新しい革袋に入った新しい酒、とてもおいしそう...🍷
  • 料理教室のデザインリニューアルを支えた技術 - クックパッド開発者ブログ

    料理教室事業部の長(@s_osa_)です。最近読んで面白かった漫画は『ランウェイで笑って』です。 クックパッド料理教室では今年10月にデザインの全面リニューアルを行ないました。 Before After ユーザー向けページの HTML, CSS, JavaScript を約1ヶ月でまるっと書き換えるプロジェクトでした。 今回はそんなデザインリニューアルを支えた仕組みについて書きたいと思います。 全面リニューアルの大変さ 「全面リニューアル」 聞いただけで大変さがにじみ出る言葉ですが、具体的に何が大変なのか少し考えてみます。 主な大変さは2つあると考えています。 スコープが大きい デザインの全面リニューアルという性質上、全ページが対象になります。 クックパッド料理教室のコードはそれほど大きくない Rails ですが、それでも対象の view ファイルは約200ほどあります。 もちろん、これら

    料理教室のデザインリニューアルを支えた技術 - クックパッド開発者ブログ
    moro
    moro 2017/12/19
    テンプレート切り替えで色々やれるのはなかなか感じがいい感じがする。gem リリースはよ
  • Cookpad TechConf 2018

    参加する 参加申込は締め切りました (開催をお楽しみに!) キャンセルが必要な場合はイベントサイトから Googleマップで会場位置を確認 ただいま開催中! たくさんのご来場ありがとうございました。 スライド・動画は後日公開いたします たくさんのご来場ありがとうございました。 当日の発表資料・動画 こちらからご覧いただけます About 私たちクックパッドは「毎日の料理を楽しみにする」というミッションを掲げ、世界中の料理テクノロジーで楽しみにするべく、ユーザの課題解決に日々取り組んでいます。 Cookpad TechConf では、そんなクックパッドエンジニアやデザイナーがどのようにサービス開発に取り組んでいるのか、またその過程で得た技術的知見について公開します。 12:30 - 13:00 開場 13:00 - 13:10 開会のご挨拶 13:10 - 13:30 橋 健太 毎日の

    Cookpad TechConf 2018
    moro
    moro 2017/12/11
    今年(というか来年)もやります!
  • Slack 上のエンジニア同士の会話を増やした一つの工夫 + ちょっとした OSS の紹介 - クックパッド開発者ブログ

    こんにちは、技術部開発基盤グループの小室 (id:hogelog) です。 最近エンジニアが全員集まる Slack のチャンネルからデプロイ通知等の機械的な通知を排除したらエンジニア同士のコミュニケーションがほぼ毎日発生するようになり満足しています。自分のような無名なペーペーエンジニアも業界に名を馳せる著名エンジニアもフラットに属しているチャンネルが通知で埋まっていて人間の会話がまったく発生しないなんてもったいないですからね。Slack のチャンネルをどう運用するか会社によって文化の違いがあると思いますが、良い運用は参考にしたいので各社どんどん発信してほしいのでよろしくおねがいします。 さてそんな話で終わっても良いのですが、ここは開発者ブログだしせっかくなので最近開発した Slack 関連のアプリケーションを紹介します。 tokite で GitHub から Slack への通知をカスタマ

    Slack 上のエンジニア同士の会話を増やした一つの工夫 + ちょっとした OSS の紹介 - クックパッド開発者ブログ
    moro
    moro 2017/07/19
    思いもよらぬところの通知が飛んできて便利だった。Gmailで「論理削除」ラベル付与フィルタ作るより捗る
  • Kuroko2の近況 - クックパッド開発者ブログ

    技術部開発基盤グループの大石です。 先日、弊社主催のイベント CookpadTechKitchen#8 〜舞台裏を支える黒衣たち〜 にて、「Kuroko2の近況とクックパッドのバッチ周りの概況」というテーマで発表させて頂きました。今回はこの発表内容の中でも Kuroko2 についてピックアップして紹介したいと思います (今回の記事ではクックパッドのバッチの概況については特に触れませんが下記資料を参照ください)。 Kuroko2 とは Kuroko2とは、Ruby製のWebベースのジョブスケジューラーです。2014年にクックパッド社内で開発され、2016年の秋にオープンソースとして公開しました。 詳細については、当ブログの クックパッドのジョブ管理システム Kuroko2 の紹介 や Kuroko2 リポジトリのドキュメント をご覧ください。 また、Kuroko2 のオリジナル作者である弊社

    Kuroko2の近況 - クックパッド開発者ブログ
    moro
    moro 2017/06/14
    利用者の声を拾って開発されていて良いのだった
  • ユーザー基盤を作り直しながらRailsでのサービス層に向き合う - クックパッド開発者ブログ

    こんにちは。パートナーアライアンス部の諸橋 (@moro) です。 突然ですが、わたしはいまクックパッドの「ユーザー基盤」を再構築しようとしています。 一口に「ユーザー基盤の再構築」といっても、そのゴールが何を指すかは(わたし自身にとってもまだ)漠然としており、固定されたゴールは見いだせていません。しかし後述するように、いくつかの問題は明確な形を取っています。言い換えると、それら明確な問題と向き合いながら『柔軟でいい感じのユーザー基盤を目指す』というのがこの再構築プロジェクトの目的です。 その第一歩目として、ユーザー登録部分を現状のクックパッド体とは別の小さなRailsアプリケーションとして実装を進め、つい先日、一部の限定された利用者の方に向けて公開することができました。 今後も様子を見ながら公開範囲を拡大していく予定です。 再構築の背景 ではその「明確な問題」とはなんでしょうか。 最大

    ユーザー基盤を作り直しながらRailsでのサービス層に向き合う - クックパッド開発者ブログ
    moro
    moro 2017/04/06
    『ユーザー基盤』という何かのソフトウェアを継続的に育てていくために小さく作ったよ、という話を書きました。サービス層まだふんわりしているので今後も考えていきたい。
  • 分析SQLのコーディングスタイル - クックパッド開発者ブログ

    SQL、書いてますか? こと大規模データ処理の分野においてはSQLはもはや標準インターフェイスであり、 分析やらバッチやらに関わっている皆様は日々大量のSQLクエリーを生産していることと思います。 そこでちょっと気になるのが、 SQLのコーディングスタイルってどうするのが一般的なんだっけ……? という点です。 イマドキはSQLなんてO/R mapperに吐かせることが多いからなのか、 それともコードを広い範囲で共有することがそもそもないからか、 SQLのコーディングスタイルについて見聞きすることは他のプログラミング言語に比べるとだいぶ少なく、 いまいち決定版と言えるスタイルがないなと感じています。 そんなわけで日は、SQLのコーディングスタイルについての意識を活発化させるべく、 クックパッドでわたし(青木)が使っているコーディングスタイルから特徴的な点を紹介したいと思います。 特に、分析

    分析SQLのコーディングスタイル - クックパッド開発者ブログ
    moro
    moro 2016/11/09
    キーワードは大文字派だったけ青木さんと松田さんと話してだいたい改宗した。
  • MySQLを1〜2時間でスケールアウトする - クックパッド開発者ブログ

    最近、Elastic BeanstalkやECSと戦っているSREチームの菅原です。 P5をやりたいのにPS3もPS4も持っていないので指をくわえて羨ましがっている毎日です。 この記事では、突然のアクセス増に備えるために、MySQLのスレーブを1〜2時間でスケールアウトできるようにした話を書きます。 MySQL on EC2 クックパッドは周知の通りAWSを利用していますが、主要なデーターベースについてはAmazon RDSではなくMySQL on EC2を使っています。 これは以下のような理由によるものです。 歴史的な経緯: AWS移行当時、RDSが無かった。また、移行後もしばらくはTritonnを使っていたため、RDSを使うことができなかった オンラインメンテナンスの実現: VPCルートテーブルを使った仮想IPとMHA for MySQLを使ってダウンタイムゼロのマスタDBの切り替えを

    MySQLを1〜2時間でスケールアウトする - クックパッド開発者ブログ
    moro
    moro 2016/10/06
    “「長い時間かかって手持ちぶさたな割に目を離すことができないから他の作業がしにくい時間」って、ほんと嫌ですよね… 今後もそんな作業があればさっさと自動化して、QoLの向上を図っていきたいものです。 ”
  • Cookpad TechConf 2017

    たくさんのご来場ありがとうございました。 当日の発表資料・動画 こちらからご覧いただけます ABOUT Cookpad TechConf について 私たちクックパッドは「毎日の料理を楽しみにする」というミッションを掲げ、世界中の料理テクノロジーで楽しみにするべく、ユーザの課題解決に日々取り組んでいます。 Cookpad TechConf では、そんなクックパッドエンジニアやデザイナーがどのようにサービス開発に取り組んでいるのか、またその過程で得た技術的知見について公開します。

    Cookpad TechConf 2017
    moro
    moro 2016/10/04
    来春も開催決定です。もうすぐ募集開始しますので、ぜひお越しくださいませ!!
  • 仮説検証とサンプルサイズの基礎 - クックパッド開発者ブログ

    パートナーアライアンス部 森田です。有料会員の獲得施策や、それに関わるサービス内動線の最適化を担当しています。 記事の対象 仮説検証を通じて何かを改善をしたいと思っている人 仮説検証の際に「どれくらいのデータを集めたら良いか」分からない人 はじめに 仮説検証とは「仮説を立て、それを証明するためのデータを集め、真偽を確かめること」です。今回は仮説検証を行う際の手順と、その検証に必要なサンプルサイズの考え方を説明します。サンプルサイズの話のみ関心があるかたは、前半を飛ばし「サンプルサイズの決め方」を読んでください。 目次 記事の対象 はじめに 目次 仮説検証のつくりかた 1. 仮説をたてる 2. 施策/KPIを考える 3. 仮説検証後のアクションを決める 4. 対象を決める 5. サンプルサイズを計算する サンプルサイズの決め方 答えを先に サンプルサイズを決める二つの要素 「二つの平均値」と

  • インターンシップ「サービス開発演習」の舞台裏 - クックパッド開発者ブログ

    こんにちは、投稿開発部副部長の勝間(@ryo_katsuma)です。 普段はクックパッドレシピ投稿周辺のサービス開発を行う部署のマネジメントやエンジニアリングを担当しています。 さて、クックパッドでは、8月10日から先日9月2日まで技術インターンシップを開催していました。 講義全体のまとめについては、先日公開されましたこちらの記事を参照ください。 クックパッド サマーインターンシップ2016の資料を公開します Service Development at Cookpad 2016 summer internship 今回は、私が担当した4日目の講義「サービス開発」について、どのような狙いを持って設計したか、また参加学生の皆さんがどのような反応だったかなど、舞台裏についてご紹介いたします。 昨年の振り返りと課題 技術インターンシップにおいて、サービス開発の講義は昨年度も私が担当しました。

    インターンシップ「サービス開発演習」の舞台裏 - クックパッド開発者ブログ
    moro
    moro 2016/09/07
    異色の『コードを一行も書かない研修』の設計意図。おもしろい