今すぐ ALB のアクセスログをクエリする

AWS の ALB の大量のアクセスログに対して Athena を使って柔軟にクエリできる環境を自動的に作っておくシステムについて紹介します。

iOSDC Japan 2021 に社員7名が登壇します

こんにちは、モバイル基盤部の茂呂(@slightair)です。 発表される前は何も考えていなかったのに、あたらしい iPad mini の紹介ページを見ていたらちょっと欲しくなってきてしまいました。う〜む。 さて、毎年Appleの新製品やらOSアップデートの一般公開やら…

Cookpad Summer Internship 2021 10 Day Techコースを開催しました!

クックパッドでは2021年8月に今年度のサマーインターンシップを開催しました。本記事ではその概要をお伝えします

AWSフル活用!クッキングLiveアプリ「cookpadLive」を支える技術

メディアプロダクト開発部の長田(@osadake212)です。 私の主な仕事は、CookpadTV 株式会社のサービス開発をすることです。CookpadTV ではたくさんのサービスを同時に開発しており、今回の記事ではそのたくさんのサービスの中の一つである cookpadLive とそれ…

レガシーとなった TLS 1.0/1.1 廃止までの道のり

クックパッドでは 2020 年 12 月に TLS 1.0 および TLS 1.1 を廃止しました。全サービスでの廃止にあたっては関わる人数や影響範囲も大きくなるため、丁寧に進める必要があります。本稿ではこの一連のプロセスについて振り返ります。

クックパッドマートにおける宣言的ラベル生成

クックパッドマート流通基盤アプリケーション開発グループのオサ(@s_osa_)です。 少し前にクックパッドマートのラベル生成の仕組みを刷新したので紹介します。 クックパッドマートにおけるラベル クックパッドマートは「美味しい食材を生産者や市場から直…

ECS インフラの変遷

技術部 SRE グループの鈴木 (id:eagletmt) です。 クックパッドでは Amazon ECS をオーケストレータとして Docker を利用しています。Docker 自体は2014年末から本番環境にも導入を始めていましたが当時はまだ ECS が GA になっておらず、別のしくみを作って…

大規模配信に耐える広告新商品「材料ジャック」の設計と開発

こんにちは! メディアプロダクト開発部の名渡山 ( @pndcat ) です。 業務では広告システム全般の新規開発・保守・運用を担当しています。 本稿では、クックパッドが企業向けに販売している広告商品の開発について紹介します。 クックパッドの広告プラットフ…

マイクロマネジメントは悪か?よりよい組織をつくるためのマネジメント形態についての考察

クックパッドでマネージャーをしている新井です。これまでの経験をもとに、今自分の中にあるマネジメントについての考え方を整理しました。「よい組織」を定義し、それを目指すためのマネジメント形態についてまとめています。

コード生成を用いたiOSアプリマルチモジュール化のための依存解決

こんにちは、モバイル基盤部の@giginetです。 iOS版のクックパッドアプリでは、2019年頃より、大規模なアプリを複数のモジュールに分割するマルチモジュールの導入を進めてきました。 今回はクックパッドアプリのマルチモジュール化の戦略について、主に依存…

データ分析 SQL とその実行結果を共有・検索できるアプリ Bdash Server を作りました

こんにちは。クックパッドでエンジニアをしている @morishin です。Bdash Server というデータ分析 SQL を共有するアプリケーションを作って社内で使い始めたのでその紹介をします。 クックパッドのサービス開発は「仮説を立てる」→「作ってリリース」→「効…

全国のスーパーに置かれる storeTV 端末の情報の取得にかかる時間を15分から10秒にした話

こんにちは。 メディアプロダクト開発部の柴原です。 普段は CookpadTV のサービスである storeTV や storeLive の Android アプリを開発を担当しています。 storeTV では現在、サービスを高品質に継続開発・運用するための仕組みづくりをしており、この記事…

音声インターフェースに最適なビジュアルインタラクションを実現するための APL テクニック

こんにちは、 CTO 室の 山田 (@y_am_a_da) です。今回は、 Amazon Presentation Language (APL) という、Amazon Alexa 向けのアプリケーション (以下、スキルと記述します) 上で主にビジュアルの表現や、音声や液晶操作によるユーザーとのインタラクションを…

アプリリニューアルを楽しくやりきる話

こんにちは。レシピ事業開発部 クロスファンクショナルグループの @kaa です。 クックパッドAndroidアプリは昨年秋にフルリニューアルを実施しました。 リニューアル内容としては半年ほど先にiosでリニューアルを実施したものを導入になります。 弊社はこの…

emruby: ブラウザで動くMRI

こんにちは、フルタイムRubyコミッタの遠藤です。 Ruby 3.0が出てもう4ヶ月経ってしまいました。最近のTypeProfの開発ですが、vscode拡張として使えるようにするために、一生懸命Language Server Protocolをいじって遊んでるところです。 今日の成果です。RB…

Cookpad Summer Internship 2021 (10 day Tech コース)を開催します!

研究開発部の深澤 (@fukkaa1225) です。今年になってエンジニアの立場から新卒採用を担当しています。 クックパッドでは、毎年恒例のサマーインターンシップを今年も開催します!本記事では、エンジニアコースについてご紹介いたします。 以下のインターンシ…

KomercoとFirebaseの話【後編】 - Firebase運用の仕組化

Komercoの高橋です。 昨日は前編でFirestoreの設計パターンについてお話しましたが、後編はFirebase運用の仕組化についてです。 前の記事でも述べたように、昨年はWeb版のリリースや送料無料イベントもあり、ユーザ数がさらに増加してきています。 サービス…

KomercoとFirebaseの話【前編】 - Firestoreの設計パターン

こんにちは。Komercoの高橋です。 Komercoがリリースされてからもうすぐ3年が経とうとしています。 クックパッドの新規事業「Komerco」ではバックエンドのほぼ全てをFirebaseで運用してします。 新規事業のためエンジニアの数はまだ少ないものの、Firebaseの…

クックパッドマートの生鮮食品を SORACOM の IoT デバイスで遠隔温度監視している話

この記事では、クックパッドマートの物流の一部で SORACOM のサービスを活用して生鮮食品の遠隔温度監視を行っている話について、主にサーバーサイドの取り組みを紹介します。

JSON Schema をクックパッドマートの商品登録画面に導入した話

主にバックエンドのエンジニアとしてクックパッドマートの開発に携わっている塩出( @solt9029 )です。 美味しい食材をユーザにお届けするサービスであるクックパッドマートでは、日々街の販売店や地域の生産者が商品の登録を行っています。 商品を登録する…

Cookpad Online Spring Internship 2021 と Hackarade を合同開催しました

ユーザー・決済基盤部の三吉(@sankichi92)です。 昨年よりエンジニアの立場から新卒採用を担当しています。 2月の記事で告知したスプリングインターンシップを 3/22〜26 の日程で開催しました。 また、同時に社内でも Hackrade Remote #2 を開催し、社員も…

GraphQL Code Generator で TypeScript の型を自動生成する

GraphQL Code Generator を使って GraphQL のスキーマやクエリから TypeScript の型定義を自動生成する仕組みについて紹介します。

レシピサービスのフロントエンドに CSS in JS を採用した話

こんにちは。技術部クックパッドサービス基盤グループのkaorun343です。我々のチームでは レシピサービスのフロントエンドを Next.js と GraphQL のシステムに置き換えている話 にて紹介したとおり、レシピサービスを Next.js ベースの新システムへと移行し…

Xcode12時代のCarthageで起こった問題とXCFrameworkへの移行

iOS

モバイル基盤部のhiragramです。こんにちは。 私たちは、iOS版クックパッドアプリの開発において、CocoaPodsとCarthageを併用して依存ライブラリを管理しています。しかし、Xcode12の時代がやってきて、Carthageによる依存ライブラリのビルドに問題が生じま…

Google Apps Script の拡張サービスの TypeScript 用型定義ファイルの自動生成

こんにちは、メディアプロダクト開発部の後藤(id:mtgto)です。 今回は Google Apps Script の28個の拡張サービスについて、 TypeScript 用の型定義ファイル (@types/google-apps-script) を、Web エディタのオートコンプリートマクロ用のデータから自動生成…

形態素解析を行うだけのバッチをつくる

研究開発部の原島です。今日は表題の渋いバッチをつくった話をします。 あっちでも形態素解析、こっちでも形態素解析 みなさん、形態素解析してますか?してますよね?クックパッドでもさまざまなプロジェクトで形態素解析をしています。 いや、むしろ、しす…

Rails に Babel と Rollup を組み込んで CoffeeScript を JavaScript に段階的に移行した話

こんにちは。技術部クックパッドサービス基盤グループの青沼です。当グループではクックパッドのレシピサービスを支える web アプリケーションの改善を進めています。今回はフロントエンドの改善の一環として、 Babel と Rollup を Rails のアセットパイプラ…

Cookpad Online Spring Internship 2021 を開催します!

ユーザー・決済基盤部の三吉(@sankichi92)です。昨年よりエンジニアの立場から新卒採用を担当しています。 この記事では、3月下旬に開催するスプリングインターンシップについて紹介します。 インターンシップの実施要項や応募フォームは下記のページより…

SwiftUI を活用した「レシピ」×「買い物」の新機能開発

クックパッド iOS アプリでは「買い物機能」を SwiftUI で実装し、2020年から本番でリリースしています。その技術選定の背景や得られた知見についてご紹介します。

Generating custom SF Symbols from existing SVG files

iOS

Recently, Apple has been putting a lot of energy into SF Symbols, symbols to use on your app's screens. SF Symbols allows you to not only use symbols created by Apple, but also custom ones you made yourself. To create custom symbols, follo…

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('https://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('https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/