Lambda@Edge で画像のリアルタイム変換を試してみた

AWS

技術部の久須 (@hkusu_) です。クックパッドではモバイル基盤グループにて Android 版クックパッドアプリの開発・メンテナンスに携わっています。 今回は普段の業務とは少し異なるのですが、個人的に興味があった AWS の Lambda@Edge でリアルタイムに画像を…

iOSアプリのサブミット自動化と証明書管理の効率化

こんにちは。技術部モバイル基盤グループの @giginet です。 fastlaneのCore Contributorを務めており、 社内ではプロのコードサイン解決者 *1 としての職務経験を積んでいます。 今回はクックパッドでのfastlaneを使ったiOSアプリのサブミット自動化と、証…

Androidアプリ の minSdkVersion を21にした話

技術部モバイル基盤グループの こやまカニ大好き( id:nein37 ) です。今回はクックパッドにおける Android アプリの minSdkVersion を 21 にした話を紹介します。 クックパッドのモバイルアプリではユーザーが5%存在するプラットフォームではサービスを維持…

AWS Elemental MediaLive を使用したライブ動画配信アプリの基盤開発

技術部開発基盤グループの @ganmacs です。 クッキング LIVE アプリ cookpadTV のライブ動画配信基盤(以下配信基盤)を AWS Elemental MediaLive を使用して開発した話を紹介します。 cookpadTV 上のライブ動画配信基盤の役割と機能 cookpadTV では配信基盤を…

総合職・デザイナー向け技術基礎研修 2018

こんにちは、技術部の長(@s_osa_)です。 先日、新卒の総合職・デザイナー向けに技術基礎研修を行ないました。 そこで研修をするにあたってどのようなことを考えて何をしたか、担当者の視点から書いてみようと思います。 なぜやるのか 研修を担当することに…

Service Mesh and Cookpad

こんにちは、開発基盤の Taiki です。今回は、マイクロサービスで必須のコンポーネントとなりつつあるサービスメッシュについて、クックパッドで構築・運用して得られた知見についてご紹介できればと思います。 サービスメッシュそのものについては以下の記…

Cookpad Spring 1day Internship 2018 を開催しました

技術広報を担当している外村です。 今年クックパッドでは、2月から3月にかけて、一日で最新の技術を学ぶインターンシップを以下の4コース開催しました。 サービス開発コース インフラストラクチャーコース Rustプログラミングコース 超絶技巧プログラミング…

S3に保存したログファイルをストリーム処理するサーバーレスアプリケーションの紹介

インフラストラクチャー部セキュリティグループの水谷(@m_mizutani)です。 クックパッドでは現在セキュリティ監視の高度化に取り組んでおり、その一環としてセキュリティ関連のログ収集およびその分析に力を入れています。ログ収集の部分では可用性などの観…

cookpadTV ライブ配信サービスの”突貫” Auto Scaling 環境構築

インフラや基盤周りの技術が好きなエンジニアの渡辺です。 今回は私が開発に関わっている cookpadTV の Auto Scaling 環境を突貫工事した事例をご紹介します。 同じチームのメンバがコメント配信回りについても書いていますので興味があれば合わせて読んでみ…

【開催レポ】Cookpad Tech Kitchen #15 〜料理動画・広告のBtoB領域の開発事情〜

こんにちは!人事部の冨永です。 2018年3月28日に「Cookpad Tech Kitchen #15 〜料理動画・広告のBtoB領域の開発事情〜」を開催しました。クックパッドではこのイベントを通して、技術やサービス開発に関する知見を定期的に発信しています! 第15回の今回は…

料理をつくる人はどんな課題を抱えているのか? 〜ユーザーの課題を施策につなげるインタビューの取り組み〜

私たちは「レシピを投稿するユーザー」にとって最適なアプリを追求するために、「クックパッド MYキッチン」アプリをリリースしました。これからそこで、ユーザーにどのような体験や機能を提供していくべきか。ユーザーの課題を起点に次の施策を発想していく…

「クックパッド MYキッチン」のアプリアイコンができるまで

こんにちは投稿開発部の佐野大河です。React Native 新アプリシリーズ連載4日目はReact Native のお話はしません。今日はその新アプリ「クックパッド MYキッチン」のアプリアイコンの制作過程について書こうと思います。 連載初日の記事でもありましたように…

ReactNativeプロジェクトのAndroid環境を整備する

投稿開発部の吉田です。React Native 新アプリシリーズ連載3日目はAndroid担当の私からReactNative(以下RN)のAndroidプロジェクトを出来る限り健康な状態にするために行ったことを紹介します。 React Nativeで作った新アプリについて(5日間連載) - クックパ…

React Native アプリの開発基盤構築

こんにちは、投稿開発部の @morishin127 です。React Native 新アプリシリーズ連載2日目ということで、この記事では React Native アプリの開発基盤の構築について書こうと思います。「クックパッド MYキッチン」というアプリは React Native 製で、iOS/Andr…

React Nativeで作った新アプリについて(5日間連載)

こんにちは投稿開発部の丸山@h13i32maruです。 今日から5日間、本ブログに投稿開発部メンバーで連載記事を書かせていただきます! いきなり「投稿開発部で連載記事」と言われても何のことかわからないと思うので、まず投稿開発部について簡単に紹介させても…

クッキングLIVEアプリcookpadTVのコメント配信技術

こんにちは。メディアプロダクト開発部の長田です。 この記事では、クッキングLIVEアプリcookpadTVのLIVE中のコメント配信について工夫したことを紹介したいと思います。 2018/3/28 (水)に開催されたCookpad Tech Kitchen #15の資料も合わせてご覧いただける…

ディープラーニングによるホットドッグ検出器のレシピ

研究開発部の画像解析担当のレシェックです。techlife を書くのは初めてです。よろしくお願いいたします。 最先端の機械学習を使うためには、常に自分のスキルアップが必要です。そのために、毎日論文を読んだり、新しいオープンソースのコードを試してみた…

Ruby の lazy loading の仕組みを利用して未使用の gem を探す

技術部開発基盤グループのシム(@shia)です。 最近は cookpad のメインレポジトリを開発しやすい環境に改善するために様々な試みをしています。 この記事ではその試みの一つとして不要な gem を検出し、削除した方法を紹介したいと思います。 背景 cookpad は…

Web アプリケーションを把握するためのコンソール

技術部開発基盤グループの鈴木 (id:eagletmt) です。 クックパッドではほとんどの Web アプリケーションが Amazon ECS 上で動く状態となり、またマイクロサービス化や新規サービスのリリースにより Web アプリケーションの数も増えていきました。 個々のアプ…

MR による料理サポートのための取り組み

研究開発部アルバイトの山谷 @kei_bility です。リモートアルバイトとして IoT やモバイル、VR, MR の領域で新規サービス開発に取り組んでいます。 その中で HoloLens を活用した MR (Mixed Reality) による料理サポートのための取り組みを少しだけ紹介した…

人工知能学会のトップカンファレンス派遣レポータとして NIPS2017 に参加しました

研究開発部の菊田(@yohei_kikuta)です。機械学習を活用した新規サービスの研究開発(主として画像分析系)に取り組んでいます。 最近読んだ論文で面白かったものを3つ挙げろと言われたら以下を挙げます。 Approximation and Convergence Properties of Ge…

ハッシュ値の使い方について

モバイル基盤グループのヴァンサン(@vincentisambart)です。 先日以下のツイートを拝見しました。 Swift's stdlib moves to randomly seeded hashing: https://t.co/2T5oRYtD8B— ericasadun (@ericasadun) 2018年3月10日 この変更はSwift 4.1にはまだ入りま…

TLS証明書の発行・デプロイについて

こんにちは、インフラストラクチャー部セキュリティグループの三戸 (@mittyorz) です。 クックパッドでは全てのサービスをHTTPSにて提供しています。 今回はHTTPSの使用にあたって必要となるTLS証明書について、申請や発行、管理やサーバへのデプロイなどの…

巨大なWEBアプリケーションに巨大な変更を取り入れるためにやったこと

会員事業部ユーザー基盤チームエンジニアの井口(@iguchi1124)です。 ユーザー基盤チームでは、クックパッドのサービス開発者のあらゆる要望に答え続けられるような『柔軟でいい感じのユーザー基盤』を目指し、サービス開発者およびユーザーさんの課題と向き…

Google Play アプリ内定期購入を実装する

技術部モバイル基盤グループの宇津(@uzzu)です。今年3月、クックパッドのAndroidアプリはこれまでサポートしていたクレジットカード、キャリア決済に加えて、Google Playアプリ内定期購入によるプレミアムサービス登録機能を追加しました。In-app Billing ve…

firebase.yebisu #2 の開催報告

こんにちは。事業開発部で新規事業に取り組んでいる高田です。 Cookpad の新規事業と Firebase でもご紹介したとおりクックパッドでは Firebase を活用しはじめています。そのような流れもあり2018年2月20日に Firebase.yebisu #2 を開催しましたのでご報告…

Swift.Decodable + Int64 / iOS 10 = 要注意

モバイル基盤グループのヴァンサン(@vincentisambart)です。 Swift 4 で JSON を読み込むための仕組みとして Swift.Decodable が追加されました。 iOS クックパッドアプリでは、 Swift での JSON の読込は以前 Himotoki が使われていましたが、新規コードで…

Cookpad Tech Kitchen #14 〜海外で働く〜 開催報告

Cookpad UKに出向中の西山(@yuseinishiyama)です。 去る2月16日、弊社で定期開催しているCookpad Tech Kitchenの一環として、海外事業をテーマとしたイベント『海外で働く』を開催しました。私も一時帰国して登壇しましたので、その内容をここで紹介させてく…

Nginxへの変更に伴うリバースプロキシのテストの改善

Nginxへの変更に伴うリバースプロキシのテストの改善 SREグループの菅原です。 クックパッドではブラウザ用Webサイトのリバースプロキシ用のWebサーバとして長らくApacheを使っていたのですが、最近、Nginxへと変更しました。 Nginxへの変更に当たって、構成…

良い感じにログを収集するライブラリ、Puree-Swiftをリリースしました

こんにちは。技術部モバイル基盤グループの三木(@giginet)です。 クックパッドでは、Pureeと呼ばれるiOS/Android/ReactNative向けのログ収集ライブラリを公開しています。 モバイルアプリのログ収集ライブラリ「Puree」をリリースしました - クックパッド開…

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527163350.png'); background-repeat: repeat-x; background-color:transparent; background-attachment: scroll; background-position: left top;} /* */ body{ border-top: 3px solid orange; color: #3c3c3c; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; line-height: 1.8; font-size: 16px; } a { text-decoration: underline; color: #693e1c; } a:hover { color: #80400e; text-decoration: underline; } .entry-title a{ color: rgb(176, 108, 28); cursor: auto; display: inline; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; font-size: 30px; font-weight: bold; height: auto; line-height: 40.5px; text-decoration: underline solid rgb(176, 108, 28); width: auto; line-height: 1.35; } .date a { color: #9b8b6c; font-size: 14px; text-decoration: none; font-weight: normal; } .urllist-title-link { font-size: 14px; } /* Recent Entries */ .recent-entries a{ color: #693e1c; } .recent-entries a:visited { color: #4d2200; text-decoration: none; } .hatena-module-recent-entries li { padding-bottom: 8px; border-bottom-width: 0px; } /*Widget*/ .hatena-module-body li { list-style-type: circle; } .hatena-module-body a{ text-decoration: none; } .hatena-module-body a:hover{ text-decoration: underline; } /* Widget name */ .hatena-module-title, .hatena-module-title a{ color: #b06c1c; margin-top: 20px; margin-bottom: 7px; } /* work frame*/ #container { width: 970px; text-align: center; margin: 0 auto; background: transparent; padding: 0 30px; } #wrapper { float: left; overflow: hidden; width: 660px; } #box2 { width: 240px; float: right; font-size: 14px; word-wrap: break-word; } /*#blog-title-inner{*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-position: left 0px;*/ /*}*/ /*.header-image-only #blog-title-inner {*/ /*background-repeat: no-repeat;*/ /*position: relative;*/ /*height: 200px;*/ /*display: none;*/ /*}*/ /*#blog-title {*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/