読者です 読者をやめる 読者になる 読者になる

開発コストを最小限にして施策を進める

投稿推進部・ディレクターの中山です。 普段ディレクターはエンジニアとペアを組んでサービス開発をすることが多いですが、エンジニアが別の開発に集中したい時は、ディレクターだけで施策を進めることもあります。エンジニアがいないと動くものができない……

インフラ新卒研修と社内ISUCONのはなし

5月下旬におこなったインフラ新卒研修とその後の社内ISUCONについてご紹介します。

API クライアントを書きつつ Swift らしいコードを考える

こんにちは、技術部モバイル基盤グループの茂呂(@slightair)です。 クックパッドは Garage という RESTful Web API 開発を楽にする Rails のためのライブラリを作り、内部通信やモバイルアプリケーションのためのAPIサーバの開発に利用しています。 過去の G…

クックパッド 2016 サマーインターンシップ開催します!

こんにちは! 人事部長兼エンジニアの @yoshiori です。 クックパッドでは、今年も夏に 2 つのインターンシップを開催します!!!! Cookpad Tech Internship - Summer 2016 - 「この夏、クックパッドで腕試しをしませんか。」ということで Cookpad Tech In…

エンジニアが0からのサービス開発で学んだこと

こんにちは、買物情報事業部の三浦です。 私たちのチームでは1つのプロダクトの開発が佳境を迎えています。 私は普段エンジニアとしてチームに所属していますが、今回はプロダクトオーナーとして開発に携わっています。そこで単に実装者としてだけでなく、…

6/18(土) Think User First - Cookpad × Fablic 第4回を開催します!

こんにちは。Holiday の多田です。 このたび、フリマアプリ「フリル」でおなじみの Fablic さんと共同で行っているデザイナー向けイベントの第4回を開催します! 今回は Fablic 流の サービスの立ち上げ や ユーザーインタビュー手法 を体感することができる…

複数サービス間の整合性の取り組みについて

こんにちは。技術部 開発基盤グループの大石です。 本日は開発基盤グループが社内の各サービスに提供している共通基盤サービスの1つである共通決済基盤を例にサービス間の整合性を維持するための取り組みを紹介したいと思います。(共通決済基盤については以…

「現在時刻」を外部入力とする設計と、その実装のこと

こんにちは。技術部 開発基盤グループの諸橋です。 クックパッドでは昨今の多くのWeb企業と同じように、GitHub EnterpriseのPull Requestを使ったコードレビューを広範に実施しています。わたしたちのコードレビューでは、ソースコードの字面にとどまらず、…

システム障害で消耗してるあなたに:失敗から学ぶための取り組み「Failure teaches Success」

根本原因分析、そして再発防止は大事な作業ですが、とても難しい作業です。クックパッドでは、これらを少しでもやりやすくするために、ルールと仕組みをまとめています。この仕組みを「Failure Teaches Success」(略してFtS)と名づけています。直訳すると…

Spotlight 検索に iOS アプリのコンテンツを表示させる

こんにちは。検索・編成部の中村です。いよいよ来月は WWDC 2016 が開催されますね。どんな発表があるか今から楽しみです。本エントリでは、Core Spotlight APIs を使用してアプリ内のコンテンツを Spotlight 検索に表示させる方法について解説していきます…

ImageMagickのピクセルキャッシュとリソース制限

こんにちは、成田(@mirakui)です。今日はみんな大好き ImageMagick チューニングのお話です。 2016/5/13 に公開された、いわゆる ImageTragick と呼ばれる脆弱性では、 policy.xml というファイルを更新するという workaround が紹介されていたのは記憶に…

Androidアプリのリソースを整理して開発効率を改善した話

開発効率を下げる要因 themeが整備されていない styleによるデザインの再利用ができていない 文字の色、サイズ、書体などが整理されていない エンジニアとデザイナの間に共通言語がない 開発効率を上げるための工夫 未使用のリソースを削除する themeの定義 …

日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか

こんにちは、買物情報事業部の荒引 (@a_bicky) です。 前回、「検索結果の疑問を解消するための検索の基礎」で単語単位でインデキシングする前提で説明しましたが、今回は文などを単語単位で分割するために使う技術である形態素解析について触れます。 形態…

iOSアプリケーションの国際化と地域化

海外事業向けのiOSアプリケーション開発を担当している西山(@yuseinishiyama)です。クックパッドは現在、海外複数カ国に向けてサービスを展開しています。 海外事業向けのiOSアプリケーションは、英語、スペイン語、インドネシア語、タイ語、ベトナム語、ア…

オープンソースライセンスの管理を楽にする -Android アプリ編

こんにちは、投稿推進部の吉田です。 オープンソースライセンスの管理はアプリ開発における悩み事の一つですよね。今回はこの煩雑な作業をgradleプラグインを使って自動化する話をします。

どのようにして高速に iOS アプリの UI を作り上げるか:動作モックの活用と実装時の UI 作りこみ

Holiday デザイナーの多田です。 皆さんは Web アプリやモバイルアプリを開発する時、モックアップ作成にどれだけ時間を割いているでしょうか?もしくはモックアップを作成せずにすぐに実装に入るでしょうか?私はこれまで Web アプリ開発ではいきなり実装に…

オープンソースソフトウェアポリシーをつくろう

みんなのウェディングやクックパッドといったインターネットサービス企業では、オープンソースソフトウェアは欠かすことのできない存在です。今回は、クックパッドがどのようにオープンソースソフトウェアポリシーをつくったか、その背景も含めてをご紹介い…

株主優待を迷わずご利用いただくために気をつけたこと

こんにちは。会員事業部の高田です。 クックパッドでは、昨年に続き今年も株主優待としてプレミアムサービス1年分クーポンを配布しました。 株主の方々は、普段クックパッドを使っているユーザー層より年齢層が高く、インターネットに慣れていない方も多いと…

Try! Swiftで感じた将来

こんにちは。広告事業部のモバイルエンジニアパヴェウ @RusinPaw です。 先日、3月に東京で開催されたtry! Swiftカンファレンスに行ってきました。開催者のおかげで世界中の様々な優秀なスピーカーが発表してくれました。発表内容はSwiftに留まらずiOSフレ…

開発の見積もりとスケジュール管理

こんにちは。会員事業部の丸山です。 エンジニアが開発を開始する時にはタスクの見積もりとスケジュールを作成行って、実装を進めていくと思います。 しかし1ヶ月を超えるような規模の開発をする場合、なかなか予定通りの期日に終わらなかったりすると思いま…

開発チームと営業チームとのコミュニケーションで気を付けていること

こんにちは。クックパッド特売情報ディレクターの田中です。 本日は、開発チームと営業チームのつなぎ役として働くディレクターとして、コミュニケーションにおいて意識していることをご紹介したいと思います。 特売情報のビジネスモデル 私が担当しているク…

安心してRailsアップグレードを行うための工夫

こんにちは。技術部の国分 (@k0kubun) です。 3/28にクラウドワークスさんで行なわれたRails Upgrade Casual Talksで、Railsアップグレードの際にクックパッドが行なっている工夫について紹介しました。 影響範囲の予測が難しいRailsのアップグレードを安全…

社内共用カメラのすゝめ

舘野 (id:secondlife / @hotchpotch) です。 クックパッドでは会社の中心にキッチンがあり、社員同士でランチやお菓子を作ったり、イベントを開いたりと社内のコミュニケーション用途で広く使われています。そんなキッチンで作られている様々な料理や、楽し…

ブラウザから使える O/R マッパ、 js-data を使ってみる

ブラウザから ActiveRecord のような使い勝手で RESTful API を操作できるライブラリ、js-data を紹介。実際に CRUD 処理を行うまでのガイド、使い方の情報の集め方など、js-data の最初の一歩について簡単にまとめます。

Elasticsearch の Percolator を使った地理属性判別システムの構築

こんにちは、ホリデー株式会社の内藤です。Holiday ( https://haveagood.holiday/ ) というサービスの開発を行っています。 先日開催した Cookpad TechConf 2016 では、『おでかけスポット検索のむずかしさ - Holiday を支える検索技術』という題で発表を行…

クックパッドにおける最近のMicroservices事例

こんにちは。技術部の吉川です。 最近ではMicroservicesという言葉もかなり浸透し、そのテクニックも体系化されつつあります。 一方でMicroservicesについての話は概論や抽象的な話が多く、具体像が見えないという方もいらっしゃるのではないでしょうか。 当…

デザイン品質を高めるための仕組みづくり

安定したデザイン品質のモバイルアプリをユーザーさんに届けるために取り組んだ、デザインリリースマネージャの概要と成果について

クックパッドxMESH「未来のクッキングを描くアイデアソン」を開催します!

こんにちは。クックパッドCTO室の住 朋享(すみ ともみち)です。 皆様にあまり馴染みのない部署名かと思いますが、IoTなどを中心に未来の技術を考えながらクックパッドの未来を思い描く・・・といったお仕事をしております。 今回、クックパッドとIoTでどの…

CSVからモデルオブジェクトを生成する際に気をつけたこと

こんにちは、クックパッド編集室の加々美です。 現在、食や暮らしのトレンドを発信するメディアであるクックパッドニュースの開発に携わっています。 クックパッドニュースは、1週間に100本以上の記事を配信しています。 このように比較的多くの記事コンテン…

年間100冊以上本を読むための読書術とおすすめ書籍

こんにちは。会員事業部の小久保です。 有料会員のプロモーション、及び他社企業とのアライアンスを担当しており、直近ではユーザーの入退会の傾向に関するデータ分析をしています。 ちょうど1年前くらいからディレクターとして働くことになったのですが、当…

テストを使いサービス開発を駆動していくために取り組んでいること

技術部の松尾(@Kazu_cocoa)です。 最近、 @moroや私を中心に、テストから開発を駆動するという方向で、とある活動を始めました。その活動の中では、 @t_wadaさん を 技術顧問 として巻き込んで活動を進めています。そんな取り組みを少しここにまとめます。 …

たべみるを研究者に向けて公開します

こんにちは、研究開発チームの伊尾木です。 クックパッドには「たべみる」というレシピの検索データを分析できるサービスがあります。 例えば、「唐揚げと豚の角煮はどっちが検索されるの?(ちなみに唐揚げです)」とか「冷やし中華と鍋焼きうどんはどっち…

アプリの動作確認をする時に心がけていること

こんにちは。投稿推進部ディレクターの新里です。 私はディレクターとして、動作確認に積極的に関わるようにしています。その理由は、担当したサービスをより多くのユーザーに快適にご利用いただきたいという思いからです。 せっかくサービスを使おうと思っ…

成熟期にあるWebサービスの新たな価値を求めて - サービス開発はじめの一歩

会員事業部の小椋(@littlestarling)です。 会員事業部では会員向けサービス全般、中でもプレミアムサービスの価値向上を継続すべく、日々サービス開発を行っています。 クックパッドのプレミアムサービスの柱のひとつは人気順検索機能です。 今年、私はその…

品質アップの時間を確保するデザインの進め方について

こんにちは。ユーザーファースト推進室、デザイナーの坂本です。 私は、クックパッドのレシピを主に生活習慣病の方に向けて管理栄養士が健康的にアレンジした「おいしい健康」というサービスのデザインを担当しています。 「おいしい健康」は2月22日に、アカ…

Cookpad TechConf 2016 開催報告

こんにちは、Cookpad TechConf 2016 実行委員長*1の小川です。 先週の土曜日の2016/01/23、クックパッド初となる技術系カンファレンスCookpad TechConf 2016を開催しました。staffblogの方でも報告させていただきましたが、開発者ブログの方では発表内容の紹…

サービス分割時の複雑性に対処する: テスト戦略の話

技術部の taiki45 です。 現在のクックパッドでは、cookpad.com 内のデータを利用するようなプロダクトでも、cookpad.com を提供しているアプリケーション(本体アプリケーション)とは別に新規のアプリケーションとして設計・実装しています。また、すでに本…

エンジニアが人事部に入ってやったこと

人事部 エンジニア人事企画リーダー*1の小川(@conceal_rs)です。 前回はサービス開発に関するお話をしたのですが、今回はエンジニアが人事に入ってやったことについてお話したいと思います。 人事部との兼務のきっかけ そもそも去年から中途エンジニア採用…

ESDoc - The Good Documentation For JavaScript

こんにちは。会員事業部の丸山@h13i32maruです*1。 ソフトウェアのドキュメント(マニュアル)を書くには色々なツールや方法があります。 JavaScriptの場合はJSDocというドキュメンテーションツールがデファクトスタンダードです。 ですが、JavaScriptの最新仕…

モバイルアプリのスレッドプールサイズの最適化(画像読み込み編)

クックパッドの海外向けのAndroidアプリを開発している @rejasupotaro です。海外チームでは英語圏だけでなく、スペイン語圏やアラビア語圏や、その他いろいろな地域・ユーザーの環境に合わせてサービスをローカライズしながら展開しています。 東南アジアや…

サービスの改善を、最も小さく、最も高速に行うために

買物情報事業部の根岸です。寒いですか。僕は今名前がわからない簡易暖房みたいなものの前にいるのであったかいです。今日は、僕がサービス開発エンジニアとして行っているサービス改善プロセスの一部についてお話させて下さい。 サービスの価値を高めるため…

ウィンドウ関数で作るデータプロダクト

検索編成部の兼山(@PENGUINANA_)です。 クックパッドではウィンドウ関数をデータプロダクトの開発に活用しています。 ウィンドウ関数を利用すると、行動ログを利用したプロダクトの開発や評価が簡単に始められます。 今回は「関連キーワード」を例にとりウィ…

モダンJavaScript開発環境 on Rails

投稿推進部の外村(@hokaccha)です。 クックパッドブログの開発でRails上にECMAScript6などのモダンなJavaScript開発環境を導入した経験を元にノウハウを紹介したいと思います。 RailsはSprocketsというgemでJavaScriptやCSSをコンパイルする仕組みが提供さ…

ディレクションの役割を持つスタッフの活躍を広げる取り組みについて

クックパッド検索・編成部の五十嵐啓人です。本業はレシピなどの料理検索を中心とした、主に「さがすユーザー」のサービス責任と、ユーザー数の拡大に責任を負っています。本日は部門を超えて取り組んでいる、ディレクションの役割を持つスタッフの活躍を広…

現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ

会員事業部の有賀(id:chezou)です。 今年一年、社内では勝手に"Jupyterの伝道師"を標榜してJupyter notebookの普及活動を展開してきました。 先日、社内でハンズオンも行ったおかげもあり、かなり社内のマシンにPython環境が構築されてきました :) Jupyter n…

もう失敗しない!プロジェクト書きなおして、最高の開発環境を手に入れる

ちくしょう、プロジェクトまるごと書き直したい 自分で作り始めたプロジェクトであっても、途中から相乗りしたプロジェクトであっても、誰もが一度は体験する気持ちではないでしょうか。 私が携わっている「おいしい健康」も例外ではありません。 プロジェク…

gdbを使ったrubyのデバッグ

技術部の国分 (@k0kubun) です。 先日byebugの高速化を行っていた最中、変更を加えたbyebugを使っていると一定の確率でrubyがSEGVするバグを発見しました。 私はC言語のコードのデバッグの経験はなかったのですが、デバッガの使い方を調べながらSEGVの原因調…

クックパッドのジョブ管理システム kuroko2 の紹介

こんにちは。技術部 開発基盤グループの大石です。 今回はクックパッドで利用されているRuby製のジョブ管理ツールkuroko2について紹介したいと思います。 kuroko2 とは クックパッドでは2011年頃より、kurokoというジョブ管理ツールがありました。 そして現…

Smart Lock for Passwordsを利用したAndroidアプリログインフロー改善への取り組み

技術部モバイル基盤グループの児山です。 モバイル基盤グループでは、クックパッドのiOS/Androidアプリの開発だけでなく、アプリのユーザー体験を向上させるために新しい仕組みの調査や実装も行っています。 本稿ではAndroidアプリにおけるログインフロー改…

日々の気づきをクックパッドのサービスとして形にするための取り組み

こんにちは、検索・編成部ディレクターの原田です。検索・編成部では検索サービスをはじめとして、主にクックパッドでレシピを探す方に向けたサービス開発をしています。 さあ、しっかり企画を立てよう!の落とし穴 突然ですが、例えば 思いつきで施策をスタ…

/* */ @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;*/ /*}*/