タグ

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

  • 現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ

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

    現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ
    digitalglm
    digitalglm 2015/12/11
    現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ: 2015 - 12 - 11 現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ…
  • たかがレシピサイトに何故こんな技術力が必要なのか - クックパッド開発者ブログ

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

    たかがレシピサイトに何故こんな技術力が必要なのか - クックパッド開発者ブログ
    digitalglm
    digitalglm 2015/11/27
    たかがレシピサイトに何故こんな技術力が必要なのか - クックパッド開発者ブログ: 2015-11-27 たかがレシピサイトに何故こんな技術力が必要なのか こんにちは!クックパッド編集室メディア開発グループ長の @yoshiori
  • 複数のエンジニアと開発を円滑に進めるためのissueの立て方 - クックパッド開発者ブログ

    こんにちは。クックパッド特売情報ディレクターの田中です。 前回ヘルスケア事業部の濱田くんのエントリーでエンジニア以外のGitHubの利用について紹介されていましたが、今回は私がチーム開発で実践しているissueの立て方についてご紹介したいと思います。 チームが大きくなってきてヒズミが生じてきた 来、ディレクターが開発を伴わない価値検証を十分に行った上で仕様を考え、デザイナー・エンジニアに引き継ぐのが理想的だと思います。 私自身も当初はその開発の進め方を採用していましたが、チームが大きくなり、ディレクター1人で関わるエンジニアが増えてくると、状況は変わってきました。 マルチタスク的に仕様を考えていたために詰めが甘い部分が多く、手戻りが発生してしまったり、仕様の準備が追いつかず、エンジニアの手が空いてしまうことが増えてしまったのです。 当初は自分自身の頑張りが足りないからだと、徒に気合いと根

    digitalglm
    digitalglm 2015/11/05
    複数のエンジニアと開発を円滑に進めるためのissueの立て方 - クックパッド開発者ブログ: 2015-11-05 複数のエンジニアと開発を円滑に進めるためのissueの立て方…
  • 総合職で入社した新卒がクックパッドでエンジニアになるまで - クックパッド開発者ブログ

    はじめに こんにちは、技術部の土谷です。 現在、私は2015年4月に総合職の新卒社員として入社したのですが、自ら希望してエンジニアに転向するために6ヶ月間の技術教育(トレーニング)を受けています。 この記事では、私が受けているトレーニングの内容に関してご紹介したいと思います。 なぜやっているのか トレーニングのゴールは「クックパッドで一人前のエンジニアとして働ける技術力を身につける」ことです。 クックパッドでは、ディレクターや営業職であってもサービスに関わるスタッフは全て最低限の技術的な知識を持っているべきと考えられています。 そのため総合職の新入社員研修にも、クックパッドで働く上で最低限の技術的な知識を持つために技術研修が組み込まれています。 ただ、私自身、総合職で内定をもらったものの、「自分でものづくりがしたい」「それも、手を動かして納得のいくものをつくりたい」という思いを持っていて、

    総合職で入社した新卒がクックパッドでエンジニアになるまで - クックパッド開発者ブログ
    digitalglm
    digitalglm 2015/10/30
    総合職で入社した新卒がクックパッドでエンジニアになるまで - クックパッド開発者ブログ: 2015-10-30 総合職で入社した新卒がクックパッドでエンジニアになるまで はじめに こんにちは、技術部の土谷です。…
  • 検索結果の疑問を解消するための基礎知識 - クックパッド開発者ブログ

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

    検索結果の疑問を解消するための基礎知識 - クックパッド開発者ブログ
    digitalglm
    digitalglm 2015/10/27
    検索結果の疑問を解消するための基礎知識 - クックパッド開発者ブログ: 2015-10-27 検索結果の疑問を解消するための基礎知識 こんにちは、買物情報事業部の荒引 (@a_bicky) です。…
  • 施策の効果をみんなで納得して前に進むための「箱ひげ図」 - クックパッド開発者ブログ

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

    施策の効果をみんなで納得して前に進むための「箱ひげ図」 - クックパッド開発者ブログ
    digitalglm
    digitalglm 2015/10/22
    施策の効果をみんなで納得して前に進むための「箱ひげ図」 - クックパッド開発者ブログ: こんにちは、検索・編成部ディレクターの岡根谷です。…
  • iOS9 のリリースでクックパッドに起きたこと - クックパッド開発者ブログ

    こんにちは、技術部モバイル基盤グループの茂呂(@slightair)です。 モバイル基盤グループでは、クックパッドの iOS/Android アプリに関する様々な仕事をしています。 不具合を抑え、品質を保ちながら安定してリリースサイクルを回せる環境づくり アプリの開発者がサービス開発に専念できるように、コードリファクタリングやライブラリの整備 OSやライブラリ、開発ツールのバージョンアップに伴う調査・検証・対応 この記事にはiOS9がリリースされた結果、クックパッドのサービスに何が起き、どういう対応をしてきたかをまとめます。 Universal Links iOS9 で Universal Links という機能が入りました。これは、Safari で開いた Web ページ中のリンクに対応したアプリが端末にインストールされていれば、アプリでリンク先のコンテンツを表示できるというものです。 う

    iOS9 のリリースでクックパッドに起きたこと - クックパッド開発者ブログ
    digitalglm
    digitalglm 2015/10/21
    iOS9 のリリースでクックパッドに起きたこと - クックパッド開発者ブログ: 2015-10-21 iOS9 のリリースでクックパッドに起きたこと こんにちは、技術部モバイル基盤グループの茂呂(@slightair)です。…
  • 開発環境のパフォーマンスチューニング - クックパッド開発者ブログ

    こんにちは。技術部の吉川です。 クックパッドでは、ユーザーが快適にサービスを利用できるように番環境でのパフォーマンスを向上させるための様々な工夫がなされています。 ところでパフォーマンスを気にするのは番環境だけで良いのでしょうか? 開発環境に目を向けると、そこにもユーザーがいます。開発者です。開発環境のパフォーマンスが向上することで、開発者が快適にサービスを開発できるようになります。 今回はそういった開発環境でのパフォーマンス向上のための取り組みについてご紹介します。 ※ なお先日 Ruby2.2化されました が、今回紹介するものはそれ以前に実施されたため、Ruby2.2で同じ結果になるとは限りません。 状況 今回対象とするのはcookpad.comのアプリケーションです。 近年はMicroservices化を進めていますが、それでも体のレシピサービスのアプリケーションは依然として非

    開発環境のパフォーマンスチューニング - クックパッド開発者ブログ
    digitalglm
    digitalglm 2015/10/13
    開発環境のパフォーマンスチューニング - クックパッド開発者ブログ: 2015-10-13 開発環境のパフォーマンスチューニング こんにちは。技術部の吉川です。…
  • ディレクターの知見共有の仕組み - クックパッド開発者ブログ

    こんにちは、検索・編成部の五味と申します。 現在はディレクターとして、クックパッドiOS/Androidアプリを使いやすくするための施策を主に担当していますが、年初に異動して来るまでは、広告クリエイティブ制作というまったく異なる仕事をしていました。 サービス開発に関しては初心者状態だった私にとって、貴重な学習機会を与えてくれている、クックパッドのディレクター同士の情報共有の仕組みをご紹介します。 ディレクター同士の連携は難しい? まずはじめに、現在クックパッドでは事業部制が採用されており、ディレクターは複数の部署に数名ずつ分かれて働いています。 ところが、ディレクターは同職間での連携が難しい職種でもあります。通常1つの施策を複数名で担当することはないので、お互いの業務進捗を報告しあってもいまひとつ理解しきれませんし、担当する施策の内容もバラバラであることが多いため、業務フローに問題があって

    ディレクターの知見共有の仕組み - クックパッド開発者ブログ
    digitalglm
    digitalglm 2015/10/08
    ディレクターの知見共有の仕組み - クックパッド開発者ブログ: 2015-10-08 ディレクターの知見共有の仕組み こんにちは、検索・編成部の五味と申します。…
  • インフラエンジニアの責任範囲と評価 - クックパッド開発者ブログ

    インフラストラクチャー部の成田です。2015年10月現在、インフラストラクチャー部には私を含め7人のインフラエンジニアが所属しており、このメンバーでクックパッド体サービスをはじめ様々な新規事業やいくつかの子会社のサーバを運用しています。私自身もエンジニアではありますが部のマネージャも兼ねているため、立場上、社外の方からインフラエンジニアのマネジメントについて質問されることがよくあります。今回は、私自身の考え方とクックパッド社における事例を紹介したいと思います。 「インフラエンジニア」とは 「インフラエンジニア」という言葉の定義はあいまいで、しばしば議論の的になります。傍目からは明らかにインフラエンジニアであるように見えるにも関わらず「私はインフラエンジニアでは無い」と主張する人たちもいます。このような状況になっているのは、サーバ運用に関する業務分掌が会社ごとに異なるからであると私は考えて

    インフラエンジニアの責任範囲と評価 - クックパッド開発者ブログ
    digitalglm
    digitalglm 2015/10/07
    インフラエンジニアの責任範囲と評価 - クックパッド開発者ブログ: 2015-10-07 インフラエンジニアの責任範囲と評価…
  • 広告ブロッカーの検知と計測について - クックパッド開発者ブログ

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

    広告ブロッカーの検知と計測について - クックパッド開発者ブログ
    digitalglm
    digitalglm 2015/09/28
    広告ブロッカーの検知と計測について - クックパッド開発者ブログ: 2015-09-28 広告ブロッカーの検知と計測について こんにちは広告事業部の芳賀(@func09)です。 iOS9からの新機能である Content…
  • クックパッドの本番環境で使われている Ruby のバージョンが 2.2 になりました - クックパッド開発者ブログ

    技術部の鈴木 (@eagletmt) です。 先日、クックパッドで使われている Ruby のバージョンを 2.0.0 から 2.2 にアップグレードしました。 アップグレードは主に @sorah と私で進めました。 今回はアップグレードまでの過程やアップグレード当日の流れ、そして今のところ見られているアップグレードによる効果などについて紹介します。 アップグレードまでの準備 テストを通す Ruby 2.1 がリリースされたときから 2.1 にアップグレードできないか検証環境でテストを回していました。 しかし、当時はクックパッドの全テストを実行すると必ず途中で Ruby がクラッシュする現象に悩まされていました。 Ruby の GC のバグ、拡張ライブラリのバグを疑いながら色々やってみたものの結局解決できず、Ruby 2.2 がリリースされてからもこの状況は改善されませんでした。 しかしある

    クックパッドの本番環境で使われている Ruby のバージョンが 2.2 になりました - クックパッド開発者ブログ
    digitalglm
    digitalglm 2015/09/19
    クックパッドの本番環境で使われている Ruby のバージョンが 2.2 になりました - クックパッド開発者ブログ: 2015-09-19 クックパッドの本番環境で使われている Ruby のバージョンが 2.2 になりました…
  • 安全なリリースのために心がけていること - クックパッド開発者ブログ

    こんにちは。会員事業部の高田です。今回は安全にリリースをするために、アプリケーションエンジニアとして心がけていることについて書きます。 クックパッドではなるべく早くユーザーに価値を届けることを大切にしているため、1 日に何度も安全にリリースできるしくみや、リリース後に発生したエラーにすぐに気付けるしくみがあります。しかし、アプリケーションレイヤーの問題はアプリケーションエンジニアが気をつけなければいけません。私個人としては、少し気をつければ防げた問題を起こしてユーザーや会社に迷惑をかけてしまった経験があるため、注意深くなっています。 プロジェクトの大きさや目的はさまざまあり、早くリリースして検証したい施策などもあると思います。今回は慎重にリリースしたいプロジェクトの例として、有料会員の解約の前に特定のユーザーにのみクーポンを配布するという架空のプロジェクトを元にお話します。 1. 準備 リ

    安全なリリースのために心がけていること - クックパッド開発者ブログ
    digitalglm
    digitalglm 2015/09/09
    安全なリリースのために心がけていること - クックパッド開発者ブログ: 2015-09-09 安全なリリースのために心がけていること…
  • 夏の技術職インターンシップ講義資料公開 - クックパッド開発者ブログ

    こんにちは!クックパッド編集室メディア開発グループ長の @yoshiori です。 このまえ夏の技術職インターンシップの前半の開発講義・課題部分が終わったのでさっそく公開しちゃいます! ちなみにこのインターンの対象者はプログラミングはわかるし自分で(授業とかではなく)コード書いている人なので超初心者向けでは無く、少なくともひとつ以上の言語でプログラミングが出来る人向けです。 一日目 TDD + git 編(@yoshiori) 講義初日なのでまずは簡単に肩慣らし & 開発の基礎の部分として TDD と git で始めました。 git については軽く説明し TDD は基のテストファーストで進めて行きました。 ちゃんと何かをするたびにテストを実行し、メッセージを見れば次にすることが分かるというのを体験してもらい、GREEN が良くて RED が悪いのではなく、GREEN を想定しているのに

    夏の技術職インターンシップ講義資料公開 - クックパッド開発者ブログ
    digitalglm
    digitalglm 2015/09/08
    夏の技術職インターンシップ講義資料公開 - クックパッド開発者ブログ: 2015-09-08 夏の技術職インターンシップ講義資料公開 こんにちは!クックパッド編集室メディア開発グループ長の @yoshiori です。…
  • Cookpad × CyberAgent × DeNA の15卒エンジニア交流会を開催しました - クックパッド開発者ブログ

    こんにちは、新規広告開発部エンジニアの @cnosuke です。 少し前の話になってしまいますが、8月14日(金)に CyberAgent さん、 DeNA さん、そして弊社の15卒エンジニアの交流会をCookpad キッチン&ラウンジで開催しました。 3社の15卒エンジニアに絞ったのはなぜか Web領域では毎日のようにエンジニアのイベントが開催されていますが、今年入社したばかりのエンジニアはあまり参加したことが無い人も多く、また、何度か参加したけど常にボッチで行くモチベーションが無くなってしまったという人もいました。そこで、年齢が近く心理的障壁が少ない同年代の友人を先ずは増やすことで、他のイベントに行った時に知っているひとがいる状態になって参加しやすい、また、興味があるイベントにお互いに誘って参加するということも出来るようになるかなと思い、同年代のWebエンジニアでまずは交流会をしようと

    Cookpad × CyberAgent × DeNA の15卒エンジニア交流会を開催しました - クックパッド開発者ブログ
    digitalglm
    digitalglm 2015/08/26
    Cookpad × CyberAgent × DeNA の15卒エンジニア交流会を開催しました - クックパッド開発者ブログ: 2015-08-26 Cookpad × CyberAgent × DeNAの…