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

  • 最新のログもすぐクエリできる速くて容量無限の最強ログ基盤をRedshift Spectrumで作る - クックパッド開発者ブログ

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

    最新のログもすぐクエリできる速くて容量無限の最強ログ基盤をRedshift Spectrumで作る - クックパッド開発者ブログ
    yfnt
    yfnt 2018/11/21
  • AWS Elemental MediaLive を使用したライブ動画配信アプリの基盤開発 - クックパッド開発者ブログ

    技術部開発基盤グループの @ganmacs です。 クッキング LIVE アプリ cookpadTV のライブ動画配信基盤(以下配信基盤)を AWS Elemental MediaLive を使用して開発した話を紹介します。 cookpadTV 上のライブ動画配信基盤の役割と機能 cookpadTV では配信基盤を使ってライブ動画機能を実現しています。 cookpadTV とは料理家や料理上手な有名人による料理番組のライブ配信を視聴できるアプリです。 Cookpad Tech Kitchen #15 や、すでにクックパッド開発者ブログに書かれた記事 1, 2 を見るとどのようなアプリかをイメージがしやすいと思うのであわせてご覧ください。 配信基盤は cookpadTV 用というよりも様々なサービスで使える共通基盤になっています。 cookpadTV と配信基盤との関係は以下の図のようになっ

    AWS Elemental MediaLive を使用したライブ動画配信アプリの基盤開発 - クックパッド開発者ブログ
    yfnt
    yfnt 2018/05/10
  • cookpadTV ライブ配信サービスの”突貫” Auto Scaling 環境構築 - クックパッド開発者ブログ

    インフラや基盤周りの技術が好きなエンジニアの渡辺です。 今回は私が開発に関わっている cookpadTV の Auto Scaling 環境を突貫工事した事例をご紹介します。 同じチームのメンバがコメント配信回りについても書いていますので興味があれば合わせて読んでみてください。 クッキングLIVEアプリcookpadTVのコメント配信技術 エントリは Amazon EC2 Container Service(以降 ECS) をある程度知っている方向けとなっています。 細かいところの説明をしているとものすごく長文になってしまう為、ご了承頂ければ幸いです。 Auto Scaling について 一般的に Auto Scaling は CPU やメモリ利用量によって増減させるのが一般的です。*1 私が属している部署で開発保守している広告配信サーバも、夕方のピークに向けて CPUUtilizati

    cookpadTV ライブ配信サービスの”突貫” Auto Scaling 環境構築 - クックパッド開発者ブログ
    yfnt
    yfnt 2018/04/27
  • ストレスフリーなGitHubのIssue生活 - クックパッド開発者ブログ

    こんにちは。サービス開発部の丸山@h13i32maruです。 今日はGitHub/GHE(GitHub Enterprise)で快適なIssue生活をおくるために作ったJasperというツールと、それを実際にどうやって使っているかを紹介させていただきます。 ストレス GitHub/GHEを日々の業務の中心として使っていると、すごくたくさんのIssueやPull Request(以下PR)が流れてきます。 これらのIssueを処理する方法としては主に「メール」と「通知ページ(github.com/notifications)」の2つだと思います。 僕もこれらの方法を使っていたのですが、以下の点ですごく困っていました。 多すぎてメンションされたものやコメントしたものを見逃してしまう あとで見ようと思って、忘れる ブラウザのタブを大量に開いた状態になる 知らないところのIssueで議論が進んでい

    ストレスフリーなGitHubのIssue生活 - クックパッド開発者ブログ
    yfnt
    yfnt 2017/03/15
  • Swift 3 マイグレーション - クックパッド開発者ブログ

    技術部モバイル基盤グループの ヴァンサン です。 西山が 以前紹介したように 、クックパッドでは 2014 年から Swift を使っています。長い間、海外向けのアプリや みんなのお弁当 だけに使われていましたが、去年の5月から、 クックパッド iOS アプリ の開発にも Swift を使うようになりました。歴史のある iOS アプリなので Objective-C でのコードの方がまだ多いのですが、いまは既存の画面の変更を除いて新しいコードが Swift で書かれています。既存の画面を Swift で書き直すこともあります。 Xcode 8.0 がリリースされてから数ヶ月 Swift 2 を使っていましたが、去年の12月のリリース直後に Swift 3 へのマイグレーションをしてから、開発で Swift 3 を使っています。2017年2月1日にリリースされた 17.1.1.0 が Swif

    Swift 3 マイグレーション - クックパッド開発者ブログ
    yfnt
    yfnt 2017/02/03
  • 分析SQLのコーディングスタイル - クックパッド開発者ブログ

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

    分析SQLのコーディングスタイル - クックパッド開発者ブログ
    yfnt
    yfnt 2016/11/09
  • サービス開発におけるアプリデザイナーの役割について - クックパッド開発者ブログ

    投稿開発部デザイナーの辻(@cooktsuji)です。 去る10月26日、「Cookpad Tech Kitchen#3 サービス開発におけるアプリデザイナーの役割」と題して、デザイナー向けのイベントを行いました このイベントでは、「クックパッド」「トクバイ」のiOS/Androidアプリサービス開発において、デザイナーの役割や大切にしていることをテーマに、4名のデザイナーが発表をしました。 この記事では、その様子についてお伝えします。 尚、今回のイベントでの発表資料は公開を予定しておりません。 登壇者発表 デザイナーの組織の話について まず、VP of Product Design 兼 投稿開発部長の池田(id:tikeda)から、クックパッドのデザイナー組織について発表しました。 ここでは、 クックパッドには、多種多様なデザイナーがいること 横串と縦串を意識したデザイナーの組織編成 デ

    サービス開発におけるアプリデザイナーの役割について - クックパッド開発者ブログ
    yfnt
    yfnt 2016/11/03
  • クックパッド サマーインターンシップ2016の資料を公開します - クックパッド開発者ブログ

    技術部開発基盤グループの @moro です。 クックパッドでは、昨年に引き続き今年も、夏の技術職インターンシップを実施しました。 クックパッドのインターンシップは前後半に分けた構成になっていました。まず前半はWebサービス開発に必要な技術の中から6つの分野に関する講義や実習を行いました。さらに後半は、前半の座学に合格した方を対象に、メンターとなる社員と一緒に実際の開発現場に入り、具体的な問題解決に取り組んでもらいました。 その中で、前半の講義に使った資料を公開します。 1日目 Git (@moro) 昨年に引き続き、講義初日はGit, TDD, Railsを1営業日で一巡りするという、忙しい構成でした。 Git編では、すでにGitを使っているエンジニアも多いだろうと想定して各コマンドの紹介などは最小限に済ませました。代わりに、Gitの内部構造を説明し「コミットを覚えておけばなんとかなる」感

    クックパッド サマーインターンシップ2016の資料を公開します - クックパッド開発者ブログ
    yfnt
    yfnt 2016/09/07
  • 新規アプリのデザインで心がけたい5つのこと - クックパッド開発者ブログ

    こんにちは、株式会社トクバイ出向中のデザイナー 吉井です。 まだあまりご存知ない方も多いと思いますが、株式会社トクバイは2013年にクックパッドの新規事業としてスタートした「クックパッド特売情報」を分社化し、今年7月に設立されました。 それに伴いサービス名も「トクバイ」と改め、この夏Android / iOSの両アプリをリリース致しました。 ※9月5日現在、iOSアプリはAppStoreのおすすめにフィーチャーされています! トクバイは日々の特売品やチラシ、タイムセール情報など、リアルタイムで自分の近くのお店の買物情報を閲覧できるサービスです。 私はクックパッド特売情報の頃からデザイナーとして一連のサービス開発に携わっていますが、今日はその「トクバイ」も含め新規アプリをデザインする際、私が心がけている大きなポイントを5つご紹介します。 ユーザーをしっかりと理解する まず基中の基ですが、

    新規アプリのデザインで心がけたい5つのこと - クックパッド開発者ブログ
    yfnt
    yfnt 2016/09/06
  • アプリのユーザーテストをGoogle Play ベータテストで行う - クックパッド開発者ブログ

    こんにちは。検索事業部 ディレクターの五味です。クックパッドレシピを探しに来るユーザーの体験向上を使命に、レシピ検索に纏わる技術UIの改善、プラットフォームをまたいだサービス全体の編成に関わる仕事をしています。 プロダクトのリリースや改善にあたり、ユーザーテストによる仮説検証は不可欠です。今回は、先日クックパッドAndroidアプリで初めて、Google Playのベータテスト機能を使ってユーザーテストを行った話をご紹介します。 ベータテストに踏み切った背景 クックパッドアプリでのユーザーテストはこれまでも実施してきましたが、すべて通常版アプリにテストを内包する手法をとってきました。 しかしあるプロジェクトで、これまでのユーザー導線を根底から変える規模の改変を含んだプロダクトのテストを行う必要が生じました。アプリ全体の体験から大きく異なるテストプロダクトを通常版アプリに統合することはコ

    アプリのユーザーテストをGoogle Play ベータテストで行う - クックパッド開発者ブログ
    yfnt
    yfnt 2016/08/07
  • アプリのアップデートに依存せずにアプリの画面を改善し続ける仕組み - クックパッド開発者ブログ

    検索事業部の日高(@kaa)です。 検索事業部では作りたいレシピが見つかることをひとつの目標に、レシピを探す行動を助けることに挑戦しています。 その中で、レシピ検索した際の結果画面でのコンテンツを改善していくための仕組みについて紹介します。 作りたいレシピが見つかるためへの色々なアイデア レシピ検索結果画面でレシピを一覧で見せるだけでなく、作りたいレシピがより見つかるために考えられることはたくさんあります。 例えば もし、入力ミスと思われる検索ワードだったら 正しいと思われる検索ワードを提案、または正しいと思われるワードで検索し、元のワードも表示(Google検索のように) あいまいな検索ワードだったら より具体的に検索できるよう検索ワードを提案。「さっぱり」だったら「冷しゃぶ」「さっぱり 麺」など。 (具体的なワードで検索するとレシピが決まりやすい傾向があります) さらに小分類をもつワー

    アプリのアップデートに依存せずにアプリの画面を改善し続ける仕組み - クックパッド開発者ブログ
    yfnt
    yfnt 2016/08/01
  • API クライアントを書きつつ Swift らしいコードを考える - クックパッド開発者ブログ

    こんにちは、技術部モバイル基盤グループの茂呂(@slightair)です。 クックパッドは Garage という RESTful Web API 開発を楽にする Rails のためのライブラリを作り、内部通信やモバイルアプリケーションのためのAPIサーバの開発に利用しています。 過去の Garage の紹介記事はこちらです。 RESTful Web API 開発をささえる Garage - http://techlife.cookpad.com/entry/2014/11/06/100000 RESTful Web API 開発をささえる Garage (client 編) - http://techlife.cookpad.com/entry/2014/12/26/193802 この Garage を使って実装された Web API を iOS アプリから気軽に呼べるように、 Swift

    API クライアントを書きつつ Swift らしいコードを考える - クックパッド開発者ブログ
    yfnt
    yfnt 2016/06/14
  • 日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか - クックパッド開発者ブログ

    こんにちは、買物情報事業部の荒引 (@a_bicky) です。 前回、「検索結果の疑問を解消するための検索の基礎」で単語単位でインデキシングする前提で説明しましたが、今回は文などを単語単位で分割するために使う技術である形態素解析について触れます。 形態素解析器には色々ありますが、中でもメジャーと思われる MeCab の仕組みについて説明します。 MeCab の解析精度を上げるために辞書に単語を追加したことのある方もいると思いますが、動作原理を理解することで単語を追加する際に適切な生起コストを設定できるようになったり、学習の際に適切なパラメータを設定できるようになったりするはずです。 なお、MeCab は汎用テキスト変換ツールとしても使用できます が、簡単のため MeCab + IPA 辞書のデフォルト設定前提で説明します。 アジェンダ 形態素解析とは MeCab における最適な解析結果の推

    日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか - クックパッド開発者ブログ
    yfnt
    yfnt 2016/05/12
  • どのようにして高速に iOS アプリの UI を作り上げるか:動作モックの活用と実装時の UI 作りこみ - クックパッド開発者ブログ

    Holiday デザイナーの多田です。 皆さんは Web アプリやモバイルアプリを開発する時、モックアップ作成にどれだけ時間を割いているでしょうか?もしくはモックアップを作成せずにすぐに実装に入るでしょうか?私はこれまで Web アプリ開発ではいきなり実装に入ることが多かったのですが、Holiday iOS アプリ の開発では Web アプリの時のように上手くいかないことに気づき、やり方を考え直しました。iOS アプリ開発の過程で、モックアップ作成や実装をどのように捉えるか、具体的にどう行うか、ということが自分なりに見えてきたので、それらについてご紹介します。 目的は、価値のあるプロダクトを速くユーザの手に届けること Web アプリやモバイルアプリの開発過程においてモックアップなどを作る目的は、あくまでも ユーザに届く プロダクトの価値を高めてそれを速くリリースすることです。適切な前準備は

    どのようにして高速に iOS アプリの UI を作り上げるか:動作モックの活用と実装時の UI 作りこみ - クックパッド開発者ブログ
    yfnt
    yfnt 2016/04/21
  • 開発の見積もりとスケジュール管理 - クックパッド開発者ブログ

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

    開発の見積もりとスケジュール管理 - クックパッド開発者ブログ
    yfnt
    yfnt 2016/04/07
  • ブラウザから使える O/R マッパ、 js-data を使ってみる - クックパッド開発者ブログ

    ヘルスケア事業部の濱田です。花粉がつらい時期ですが、みなさん楽しく開発してますか? おいしい健康では、JavaScript(以下 JS)で非同期にサーバ側のリソース操作を行う際に、js-data というライブラリを使っています。Rails ユーザにとってはとっつきやすい便利なライブラリですが、日語での情報がほとんど見当たらなかったため、簡単にご紹介したいと思います。 js-data とは JS 製のデータ管理用ライブラリです。RESTful API などを通じて取得できるデータ(リソース)を抽象化して、CRUD 操作を統一したインターフェースで行えるようにしてくれます。 リソースごとにオブジェクト(モデル)を定義したり、find でデータを取ってくるなど、ActiveRecord などの O/R マッパのような使い勝手が特徴。設計等には Ember data の影響を受けています。 以下

    ブラウザから使える O/R マッパ、 js-data を使ってみる - クックパッド開発者ブログ
    yfnt
    yfnt 2016/03/25
  • 現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ

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

    現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ
    yfnt
    yfnt 2015/12/12
  • iOS アプリの UI でこれだけはおさえたい、読み込み中の体験を向上させる基本 UI パターン3つ - クックパッド開発者ブログ

    ホリデー株式会社 *1 の多田です。Holiday ( https://haveagood.holiday/ ) というサービスの開発を行っています。 アプリを通してユーザに価値を届けるためには、アプリの細部のインタラクションを軽視することはできません。細かい部分に気を配り使い心地を良くしてこそ、サービスで当に実現したい価値をユーザにまっすぐ届けることができるためです。 iOS アプリの使い心地を良くするための基的なインタラクションを以前当ブログで投稿した記事でいくつか紹介しましたが、今回は前回紹介しなかったインタラクションのうち、「読み込み中」の UI の基パターンについて取り上げようとおもいます。 はじめに:なぜ読み込み中の UI を考えなくてはいけないのか Holiday iOS アプリでは、基的にデータはクライアント側で持たずサーバと通信して表示するデータを受け取っており、

    iOS アプリの UI でこれだけはおさえたい、読み込み中の体験を向上させる基本 UI パターン3つ - クックパッド開発者ブログ
    yfnt
    yfnt 2015/12/05
  • 管理画面を開発する際に気をつけたこと - クックパッド開発者ブログ

    クックパッド編集室の加々美です。 現在、や暮らしのトレンドを発信するメディアであるクックパッドニュースの開発に携わっています。 「総合職で入社した新卒がクックパッドエンジニアになるまで」 というエントリを投稿した2015新卒の土谷と同様に、2014年に新卒として入社後、総合職から研修を経てエンジニアへと転向しました。 今回は、クックパッドニュースの管理機能の改善を行う際に注意した点についてお話します。 自分がその管理ツールを使う人になる 事業体制の変化もあり、現状のクックパッドニュースの管理画面に関して、いくつかの運用上の問題点が指摘されており、その改善を行いました。 管理画面改善の進め方としては 「現状の業務フローの把握」「問題点の把握」「理想の管理画面の設計」 という基的な手順で取り組みました。 現状把握と問題点洗い出しの方法としてまず思いつくのはヒアリング中心で進めていく方法で

    管理画面を開発する際に気をつけたこと - クックパッド開発者ブログ
    yfnt
    yfnt 2015/12/01
  • たかがレシピサイトに何故こんな技術力が必要なのか - クックパッド開発者ブログ

    こんにちは!クックパッド編集室メディア開発グループ長の @yoshiori です。 たまにネットやイベントなどで「たかがレシピサイトになんでこんな技術力が必要なのか」と言われることがあるので今日はそれに真正面から答えてみようと思います。 例えばどういうところで技術使ってるか 他の人の話はこのブログの他のエントリを見てもらえればわかると思うので、僕の所属しているクックパッド編集室での取り組みの中から今回は料理動画を例に説明します。 Adaptive bitrate streaming での配信 クックパッドで配信している動画は基的に「料理動画を支える技術」でも触れられている配信プラットフォームを利用しています。 ここでは裏で動画を「低画質」「普通」「高画質」の 3 パターンでエンコードして、回線状況に応じて最適な画質の動画を HTTP Live Streaming (HLS) で配信してい

    たかがレシピサイトに何故こんな技術力が必要なのか - クックパッド開発者ブログ
    yfnt
    yfnt 2015/11/28