技術部開発基盤グループの大石です。 先日、弊社主催のイベント CookpadTechKitchen#8 〜舞台裏を支える黒衣たち〜 にて、「Kuroko2の近況とクックパッドのバッチ周りの概況」というテーマで発表させて頂きました。今回はこの発表内容の中でも Kuroko2 についてピックアップして紹介したいと思います (今回の記事ではクックパッドのバッチの概況については特に触れませんが下記資料を参照ください)。 Kuroko2 とは Kuroko2とは、Ruby製のWebベースのジョブスケジューラーです。2014年にクックパッド社内で開発され、2016年の秋にオープンソースとして公開しました。 詳細については、当ブログのクックパッドのジョブ管理システム Kuroko2 の紹介 や Kuroko2 リポジトリのドキュメント をご覧ください。 また、Kuroko2 のオリジナル作者である弊社

技術部の笹田です。今日で退職するので、バタバタと返却などの準備をしています。本記事では、Rubyの並行並列処理の改善についての私の取り組みについて、おもにRubyKaigi2022 と2023 で発表した内容をもとにご紹介します。 並行と並列はよく似た言葉ですが、本記事では次のような意味で使います。 並行処理(concurrent processing)は、「複数の独立した実行単位が、待っていればいつか終わる(もしくは、処理が進む)」という論理的な概念で、古典的にはタイムシェアリングシステムなどが挙げられます。 並列処理(parallel processing)は、「複数の独立した実行単位のうちのいくつかが、あるタイミングで同時に動いている」という物理的な概念で、古典的には複数のCPU上で同時に実行させる、というものです。最近では、1つのCPU上で複数コアが同時に動いている、という

技術部の外村(@hokaccha)です。今回はクックパッドのウェブサイトのフロントエンドをNext.js などを使って作り直している話を書きます。 この記事で紹介する新システムは、スマートフォン向けのレシピページで確認することができます。もし興味があるかたはレシピページをスマートフォンのユーザーエージェントで開いて DevTools などで確認してみてください。Next.js とGraphQL で動いているのがわかると思います。 ご存じの方も多いかもしれませんが、クックパッドのウェブサイトはモノリシックなRails で作られていて、10年以上Rails で開発を続けてきました。10 年以上同じシステムで開発を重ねれば当然レガシーな部分が大量に生まれてきますが、特にフロントエンドはその影響が顕著でした。 どこから使われているかわからないCSS が大量にある、JS のコードは昔なが
技術部の牧本です。 今日はモンキーパッチの話をします。 モンキーパッチとは何か そもそもモンキーパッチ (monkey patch) とは何でしょうか? 端的に言えば、言語の組み込みクラスやライブラリ、その他外部ライブラリの挙動を、動的に拡張する仕組みをモンキーパッチと呼びます。 *1 例えば、Ruby のモンキーパッチのすごく単純な例として以下のようなものがあります。 module NilClassExtension defempty? true end end NilClass.prepend(NilClassExtension) インスタンスが空であるかどうかを判定するメソッドとしての #empty? は String や Array など様々なクラスに存在しますが、 nil を唯一のインスタンスとする NilClass には本来は存在しません。 このモンキーパッチを導入することで
技術部の笹田(ko1)と遠藤(mame)です。クックパッドでRuby (MRI: MatzRuby Implementation、いわゆるruby コマンド) の開発をしています。お金をもらってRuby を開発しているのでプロのRuby コミッタです。 去年の記事「プロと読み解くRuby 2.6 NEWS ファイル」に続き、今年も本日 12/25 リリース予定のRuby 2.7 の NEWS ファイルの解説をしてみようと思います。NEWS ファイルとは何か、というのは去年の記事を見て下さい。 実は最近、NEWS ファイルを読みやすくしよう、と例を入れたりしていて、以前のものに比べて読みやすくはなっています(英語だけど)。記事中のコードも、NEWS ファイルから引用しているものがあります。本記事では、変更の解説に加え、執筆者らが開発に携わっているということを活かして、「なぜ変更
技術部の笹田です。遠藤さんと同じくRuby のフルタイムコミッタとして、Ruby インタプリタの開発だけをしています。 先日、アメリカのフェニックスで開催された ISMM 2019 という会議で発表してきたのと、同時開催の PLDI 2019 という会議についでに参加してきたので、簡単にご報告します。 カンファレンス会場 ISMM 2019 ISMM は、International Symposium on Memory Management の略で、メモリ管理を専門にした、世界最高の学術会議です。というと凄いカッコイイんですが、メモリ管理専門って凄くニッチすぎて、他にないってだけですね。多分。ACM(アメリカのコンピュータ関係の学会。すごい大きい)SIGPLAN(プログラミングに関する分科会。Special Interest Group)のシンポジウムになります。 発表するためには、他

技術部の笹田(ko1)と遠藤(mame)です。クックパッドでRuby (MRI: MatzRuby Interpreter、いわゆるruby コマンド) の開発をしています。お金をもらってRuby を開発しているのでプロのRuby コミッタです。 もうすぐRuby 2.6 がリリースされますね! Ruby 2.6 の新機能は何だろう、と調べるためには、ソースコードの diff を見ればいいのですが、膨大な変更があるので、一つ一つ見ていくのは大変です。 $ git diff --compact-summary origin/ruby_2_5 ... 6404 files changed, 228441 insertions(+), 97984 deletions(-) そこで、NEWS ファイルという、主要な変更点をまとめたファイルが用意されています。これを見るだけで、Ruby
Ruby インタプリタを開発している笹田です。今年のクリスマスにリリース予定のRuby 2.6、楽しみですね(無事、出るといいな)。 この記事では、私がRubyの挙動を調べるために頑張った記録を書いておきます。 基本的に、単純作業の積み重ねなので、難しい内容はありません。お気楽にお読みいただければ幸いです。 大雑把にまとめると、こんな内容が書いてあります。 デバッグカウンタの導入によるRubyの詳細な挙動調査の紹介 (私には)簡単な話で、Rubyをいろいろいじって、Rubyの細かい挙動、しかもほとんどの人が気にしない挙動を調べられるようにした話です。 多くの人が興味ないだろう、Rubyに仕込まれている統計情報をとる仕組みを紹介します。クックパッドアプリを手元で調査できるようにした話 (私には)難しい話で、Ruby 開発版で弊社アプリを手元で動かすために四苦八苦した記録です。Ruby
技術部の遠藤(@mametter)です。Rubyの開発やってます。クックパッドでは、Hackaradeという社内ハッカソンを定期的に開催しています。第1回はRubyインタプリタのハック(MRI Internal Challenge)、第2回は機械学習の体験(Machine Learning Challenge)、第3回はISUCON風の社内コンテストを行いました。 4回目となる今回は、遠藤が講師となり、「言語処理系を自作する」というテーマで開催しました。その概要と成果の一部をご紹介します。 概要 Cookpad Hackarade #04:Create Your Own Interpreter from mametter 言語処理系の作り方の基本を一日で習得することを目標として、「RubyインタプリタをRubyで書くこと」を具体的な課題としました。 言語処理系は通常、プログラムテキスト

Rubyのなかを覗いてみよう!池澤あやかが「CookpadRuby Hack Challenge」に参加してみた みなさんこんにちは、池澤あやかです。 今回はクックパッド社内で開かれたイベント「CookpadRuby Hack Challenge」に潜入してきました。果たして、無事に帰ってこれるのでしょうか! 「CookpadRuby Hack Challenge」とは 「CookpadRuby Hack Challenge」は、Rubyというプログラミング言語がコンピューターの上でどう動いているのかを知り、ハックしてみるイベントです。8月30日から31日にかけて2日間、クックパッドのオフィスにて開催されました。 このイベントは「Rubyのインタプリタをハックする」という超ディープな内容なのですが、なんと10人の募集枠に約100人もの応募があったのだそう。すごい。今回の参加者は、す

技術部開発基盤グループのシム(@shia)です。 最近は cookpad のメインレポジトリを開発しやすい環境に改善するために様々な試みをしています。 この記事ではその試みの一つとして不要な gem を検出し、削除した方法を紹介したいと思います。 背景 cookpad は10年以上にわたって運用されている巨大なウェブアプリケーションです。 巨大かつ古いアプリケーションには昔は使っていたが、現在は使われてない依存性などが技術負債として溜まっています。 事業的観点から技術的負債を完全返却するのはコストとのバランスが悪いことも多いです。 これは20万行を超えるプロジェクトを幾つも抱えている cookpad のメインレポジトリも例外ではなく、その規模から使ってないと思われる依存性を探しだすのも大変な状況でした。 どうするか 人が頑張るより機械に頑張らせたほうが楽ができるし、何より確実です。 ですの
2018年4月25日をもちまして、 『CodeIQ』のプログラミング腕試しサービス、年収確約スカウトサービスは、ITエンジニアのための年収確約スカウトサービス『moffers by CodeIQ』https://moffers.jp/ へ一本化いたしました。 これまで多くのITエンジニアの方に『CodeIQ』をご利用いただきまして、 改めて心より深く御礼申し上げます。 また、エンジニアのためのWebマガジン「CodeIQ MAGAZINE」は、 リクナビNEXTジャーナル( https://next.rikunabi.com/journal/ )に一部の記事の移行を予定しております。 今後は『moffers by CodeIQ』にて、ITエンジニアの皆様のより良い転職をサポートするために、より一層努めてまいりますので、 引き続きご愛顧のほど何卒よろしくお願い申し上げます。 また、Cod

インタビュー:Rubyコミッターの笹田氏がクックパッドへの入社を決めた理由。オープンソースのコミッタはどのような思いで転職するのか?Rubyのコアコミッターである笹田耕一氏が、レシピ共有サービスなどを展開しているクックパッドへ入社することは、1月21日付の記事「[速報]Rubyのコアコミッター笹田耕一氏、クックパッドへ」で紹介しました。本記事ではあらためて、笹田氏がクックパッドへの入社を決めた理由や、クックパッドが笹田氏に声を掛けた背景、そして笹田氏にとっての転職の意味などについて、笹田耕一氏と、クックパッドの執行役CTO成田一生氏に聞きました。クックパッドへの転職に大きな可能性を感じた ──── あらためてクックパッドが笹田さんに声をかけた背景を教えてください。 成田氏 クックパッドでは長年、Rubyを用いたサービス開発を行ってきました。Rubyはシンプルな記述で高度な処理を表現

1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く