タグ

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

  • クックパッド開発者ブログ

    こんにちは。機械学習グループの深澤(@fukkaa1225)です。 先日、Amazon Bedrock が一般利用できるよう(GA)になりました 。記事ではこちらを用いて RAG(Retrieval-augmented generation) アプリケーションを作成してみた様子と、他 LLM モデルとの比較結果についてご紹介します。 Amazon Bedrock とは aws.amazon.com 公式サイトより文言を引用します。 Amazon Bedrock は、Amazon や主要な AI スタートアップ企業が提供する基盤モデル (FM) を API を通じて利用できるようにする完全マネージド型サービスです。そのため、さまざまな FM から選択して、ユースケースに最も適したモデルを見つけることができます。Amazon Bedrock のサーバーレスエクスペリエンスにより、すぐに FM

    クックパッド開発者ブログ
  • iOS クックパッドアプリのプッシュ通知まわりを改善している話 - クックパッド開発者ブログ

    こんにちは。検索・編成部の中村 (@_nkmrh) です。エントリでは、iOS クックパッドアプリ(以下アプリ)に対して行った、プッシュ通知(以下通知)の改善策を紹介します。 はじめに アプリで通知を送る目的はなんでしょうか。様々な目的があると思いますが、大きくは次のようなものではないでしょうか。 アプリをインストール後、ほとんど利用しないユーザーに対してサービスを利用してもらう機会を提供したい サービスをより身近なものとして利用してもらい、新しいファンを増やしたい アプリの問題点 アプリは、「特売情報」「今日のおすすめレシピ」「届いたつくれぽ」などの通知が受け取れ、通知の種類によって ON / OFF が選択ができます。 そこまではいいのですが、1つ問題がありました。それは、(※1)iPhone 側の通知設定は OFF、(※2)アプリ側の通知設定が ON の場合、通知が届かない状態が発

    iOS クックパッドアプリのプッシュ通知まわりを改善している話 - クックパッド開発者ブログ
    FunnyBunnyDizzy
    FunnyBunnyDizzy 2015/10/26
    最近どこのアプリも、通知許可ダイアログの前にワンクッションメリットの説明を挟んでくるね。これはけっこう凝ってる。
  • 夏のインターン講義「1営業日で書くJavaScriptコンパイラ」の設計と実装 - クックパッド開発者ブログ

    今年、クックパッドでは夏のインターンと題して20名弱のインターンを受け入れました。 このインターンは前半と後半に大きく分かれており、 後半が社員に混じって業務をするいわゆる普通のインターンで、 前半は7日間にわたってプログラミング関連の講義を受けるという仕組みです。 わたし(青木)はその前半の過程において、「プログラミングパラダイム」という 1 日の講義を担当し、 JavaScriptの処理系を書くという、ツッコミどころの多い課題を実施しました。 稿では、その講義を開発する際に考慮したこと、特に難易度調整についてお話しします。 また講義のために開発したJavaScript処理系「JetSpider」についても軽くふれます。 ▼講義資料 Cookpad Summer Intern 2015 - Programming Paradigm from Minero Aoki JetSpiderコ

    夏のインターン講義「1営業日で書くJavaScriptコンパイラ」の設計と実装 - クックパッド開発者ブログ
    FunnyBunnyDizzy
    FunnyBunnyDizzy 2015/10/21
    フルメタルパッド『クソプログラマーども!返事は「サー!イエッサー!」だ!いいな!!』までもうちょい
  • 朝Lint活動で細かな技術的負債を返済する - クックパッド開発者ブログ

    買物情報事業部の八木です。クックパッド特売情報のAndroid部分を担当しています。普段はクックパッドAndroid版(以後、体アプリとします)の開発プロセスの中で特売情報の機能を開発しています。 エントリでは細かな技術的負債を解消する為に体アプリの開発チームが行っている朝Lint活動を紹介します。 2年近く経つ体アプリのコードベース 私が買物情報事業部に所属する前は体アプリを1から書き直すチームで働いていました。書き直し始めたのは2013年10月からなのでそろそろ2年が経とうとしています。2年前に設計された体アプリは現在ではおよそ17万行を越え、日々どんどん変更が加えられています。 それらの変更の中には残念ながら悪いコードが含まれている場合があります。テストしづらいコードやテストがないコード、レビューに対する場当たりな対応や緊急のbug fixのために追加された汚いコード、

    朝Lint活動で細かな技術的負債を返済する - クックパッド開発者ブログ
    FunnyBunnyDizzy
    FunnyBunnyDizzy 2015/09/16
    iOSでやるなら朝StaticAnalyzer、、朝解?
  • 開発者テストの失敗を追跡しやすくすることで大人数での Web サービス開発を加速する - クックパッド開発者ブログ

    会員事業部サービス開発グループ長の村田です。 私は2015年1月から会員事業部でサービス開発エンジニアをやっていますが、2014年4月までは技術部開発基盤グループで Web サービス開発を加速させる様々な取り組みを実施していました。稿では、開発基盤グループ時代に私が取り組んだ開発者テストの失敗を追跡しやすくする取り組みについて説明します。 クックパッドの Web サービス開発と CI クックパッドのサービス開発は、大きくても5名くらいの小さなチームが一つの機能を担当します。しかし、多数のチームが1つの大きな Rails アプリケーションを同時に変更するのが特徴です *1。 Web サービス開発を加速する工夫には様々な方向性が考えられますが、ここでは、クックパッドのようなスタイルでの Web サービス開発を加速するために開発者テストを何如に円滑にするかを考えます。 図: オムキンス クック

    開発者テストの失敗を追跡しやすくすることで大人数での Web サービス開発を加速する - クックパッド開発者ブログ
  • クックパッドのサーバプロビジョニング事情 - クックパッド開発者ブログ

    インフラ部の荒井(@ryot_a_rai)です。この記事ではクックパッドで利用しているプロビジョニングツール "Itamae" の紹介と細々した Tips を紹介します。 式年遷宮とプロビジョニングツール 現在、弊社ではインフラの式年遷宮*1を進めています。式年遷宮以前、弊社では Puppet を利用してサーバをセットアップしていましたが、式年遷宮に際して既存のプロビジョニングに関するコードは捨てることになるため、プロビジョニングツールの再検討を行うことになりました。 Puppet, Chef, Ansible, SaltStack を検討した結果、 言語特性の観点では、Ruby DSL な Chef が良い アーキテクチャ・エコシステムの観点では、シンプルな Ansible が良い といった点から、どれも決め手に欠ける状況で、Ruby DSL で記述できるシンプルなプロビジョニングツール

  • 新米Android開発者が見落としがちな3つのポイント - クックパッド開発者ブログ

    こんにちは、投稿推進部の吉田(@101kaz)です。Androidアプリの投稿周りの開発を担当しています。 去年クックパッドに入社したことをきっかけに、格的にAndroid開発をするようになりました。 今回は私のような開発をはじめて日が浅い人が見落としがちな「非同期処理時のNPE(NullPointerException)」と「Activity破棄に関する問題」と「ProGuardの設定忘れ」について実際の遭遇した事例をベースに紹介します。 非同期処理コールバック時のNPE ある時Fragmentから非同期処理を行い、コールバック内でFragmentの内のviewにアクセスするコードを書きました。 @Override public void onActivityCreated(Bundle savedInstanceState) { ApiClient.getRecipes(new Ap

    新米Android開発者が見落としがちな3つのポイント - クックパッド開発者ブログ
  • 雑な発想を活かすチーム作り - クックパッド開発者ブログ

    インフラストラクチャー部の成田(@mirakui)です。インフラストラクチャー部は、クックパッドで扱っている全サービスのサーバを設計・構築し、運用しているチームです。2015年3月現在、6人のメンバーで運用をしています。 さて、この運用というのは外から見ていると保守的な仕事に思えるかもしれませんが、その実、とてもクリエイティブな仕事です。クックパッドのサービスは一日平均で10回以上デプロイされており、アクセスも日々増え続け、状況は刻一刻と変化しています。今日動いているサーバ構成が、一年後に通用するとは限らないわけです。そんな変化に追従するためには、サーバを常に改善していかなければなりませんし、チームにも柔軟な発想が求められます。 「さあブレストしよう」→アイデア出ない問題 さあ業務を改善しよう、と意気込んでブレインストーミングを開いても、なかなか十分なアイデアが出きらないのはよくある話です

    雑な発想を活かすチーム作り - クックパッド開発者ブログ
    FunnyBunnyDizzy
    FunnyBunnyDizzy 2015/03/26
    こういうのがきちんと理解されるのは本当にうらやましい。。こういう風にハードルを下げ切って無くすのが超重要なのに、そんなん10分かけて体裁整えたらええだけやんってなる
  • iOS アプリの UI でこれだけはおさえたい細部のインタラクション3つ - クックパッド開発者ブログ

    Holiday 事業室の多田です。先日 Elasticsearch の記事を書いた内藤と共に Holiday ( https://haveagood.holiday ) の開発を行っています。 Holiday は、去年9月に Web 版をリリースしましたが、よりおでかけを楽しくするために今年3月に iPhone アプリをリリースしました(ダウンロードはこちら)。 アプリの開発過程ではコンセプトや仮説を立て、その検証や実現のために作っては壊すことを何度も繰り返し行いますが、実現したい価値を提供するためには、出来上がったプロダクトの細部のインタラクションも重要になってきます。細かい部分に気を配り使い心地を良くしてこそ、当に提供したい価値をまっすぐに届けることができるためです。逆に言えば、最後の最後で細かい部分がちゃんとしていないばかりにそれまでの過程が無駄になったらもったいないですよね。 今

    iOS アプリの UI でこれだけはおさえたい細部のインタラクション3つ - クックパッド開発者ブログ
    FunnyBunnyDizzy
    FunnyBunnyDizzy 2015/03/19
    だいたい全部やってて良かった/3番目のやつ、エラーの時はToastで告知してるけどバウンスはしてない、やった方が良いなぁ。
  • サービス開発エンジニアからマネージャになった話 - クックパッド開発者ブログ

    はじめに こんにちは、レシピ投稿推進室の勝間(@ryo_katsuma)です。 techlifeでの執筆は5年ぶり(!)になります。 さて、そんな私も今年2014年の5月にエンジニアからサービス開発の部署のマネージャに転身しました。 そこで今回のtechlifeブログは、いつもの技術ネタとは少し異なるテーマとして、「クックパッドにおいて、エンジニアからマネージャに転身する」ことが、どういうことなのかを自分自身で振り返り、まとめたいと思います。 エンジニアが自身のキャリアを考える上で、少しでも参考になれば幸いです。 現状 私は、2009年5月に中途入社し、今年で6年目になります。この年数は、エンジニア全体はもちろん、社内全体で見ても古い方になります。 これまで、技術部、HappyAuthor部(現在、私が所属している前身になった部)、新規事業部、プレミアム会員事業部...など、いろんな部署で

    サービス開発エンジニアからマネージャになった話 - クックパッド開発者ブログ
    FunnyBunnyDizzy
    FunnyBunnyDizzy 2014/11/26
    前向きだなぁ。。
  • KPTで粘り強く品質改善に取り組んだ話 - クックパッド開発者ブログ

    はじめに こんにちは、モバイルファースト室の@y_310です。 部署名からもお分かりの通りクックパッドでは今年からスマートフォンアプリの開発に特に力を入れて取り組んできました。 実際に昨年と比べて開発体制が大きく変化しています。以前はアプリ開発専門のエンジニアのみで開発していたものを、サーバサイドエンジニアもアプリ開発を学び、自分が所属する部署に必要な機能をアプリに実装するようになりました。 そのため、以前は2、3人のチームでの開発だったものが、現在は多い時には複数の部署にまたがって10人ほどのエンジニアが1つのアプリにコミットする状況になりました。 そのような環境の変化によりアプリの品質維持が大きな課題となり、この半年間継続的に品質改善に取り組んできました。今回はその改善プロセスについてご紹介したいと思います。 課題 取り組みを始める前は、様々な部分で課題がありました。 具体例を上げると

    KPTで粘り強く品質改善に取り組んだ話 - クックパッド開発者ブログ
    FunnyBunnyDizzy
    FunnyBunnyDizzy 2014/10/31
    だいたい最初のうちはPばっかり大量に出るので、Pをグルーピングして、グルーピングしたPに対してTを設定するとちょっとうまくいきます。
  • クックパッドでのユーザ調査 - クックパッド開発者ブログ

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

    クックパッドでのユーザ調査 - クックパッド開発者ブログ
  • OSSライセンス表記の自動生成機能をCocoaPods Pluginで改善した話 - クックパッド開発者ブログ

    モバイルファースト室の@y_310です。 iOSアプリでオープンソースなライブラリを使う場合、サーバサイドアプリケーション以上にソフトウェアライセンスを意識する必要があります。 多くのライブラリはMITライセンスや修正BSDライセンスで提供されていますが、それらのライブラリを使う場合、再配布時に元のライセンス条文を配布物のどこかに含めることが要求されています。 とは言え、アプリケーションに含めたライブラリのライセンスを確認して確実に配布物に含めていく作業というのはどうしても漏れがちで手間なものです。 そこでiOSで標準的に使われているパッケージ管理ツールであるCocoaPodsでは、ライブラリのインストール時に自動的に各ライブラリのライセンス表記を集約し1つのplistファイルにまとめてくれる機能を持っています。 あとはこのファイルをSettings.bundleの中に移動すれば設定アプリ

    OSSライセンス表記の自動生成機能をCocoaPods Pluginで改善した話 - クックパッド開発者ブログ
  • 分散テスト実行システムRRRSpecをリリースしました - クックパッド開発者ブログ

    技術部アルバイトの鈴木(@draftcode)です。 クックパッドが内部向けに開発・運用を行ってきた、分散テスト実行システムRRRSpecをオープンソースとして公開しました。RRRSpecは時間のかかる自動テストを分散処理することで、全体のテスト時間の短縮を狙うアプリケーションです。現在クックパッドでは17000を超えるテスト項目があり、マシン一台でテストを実行すると完了まで数時間かかります。このテストを60並列程度の分散処理で行うことで、平均8分から9分程度で完了できるようになりました。また、Amazon EC2のスポットインスタンスを利用することにより、大幅なコスト削減も同時に達成しました。 https://github.com/cookpad/rrrspec 分散テスト実行とは アプリケーションが大きくなるにつれて、自動テストの数も大きくなっていきます。クックパッドでは、非常に多くの

    分散テスト実行システムRRRSpecをリリースしました - クックパッド開発者ブログ
    FunnyBunnyDizzy
    FunnyBunnyDizzy 2014/03/24
    すげえ!
  • プロトタイプ開発用のRailsプラグイン「Chanko」を2.0.0にアップデートしました - クックパッド開発者ブログ

    技術部・開発基盤グループの中村です。 この度、クックパッドが開発し、オープンソースとして公開しているRuby on Rails向けプロトタイプ開発用のプラグイン「Chanko」を再設計し、Ruby 2.0.0 への移行に引き続き Chanko 2.0.0 をリリースしました。Chanko 2.0.0 では、これまでのバージョンと互換性を保ちながら、主に実行速度やコードの可読性について改善が加えられています。 http://cookpad.github.io/chanko/ Chankoとは Chankoは、素早く安全に新機能のプロトタイプを行うためのフレームワークです。クックパッドでは今現在でも、Chankoを使って多くの機能を独立して開発し、対象範囲を限定して公開することで新機能の検証サイクルを回しています。Chankoを利用して拡張した機能でエラーが起きた場合、拡張前の機能に自動的に切

  • 1