えにしテック15周年記念カンファレンスの発表資料です。 https://enishi-tech-15th-anniv-conf.peatix.com/ 資料中で参照しているURLは以下です: https://github.com/rails/rails/milestone/87 https:…
GitHubは200万行規模のRailsアプリケーションであり、毎週RailsとRubyを最新版にアップデートし続けている 4月10日でサービス開始からちょうど15周年を迎えたGitHubは、当初からRuby on Railsを用いたモノリシックなアプリケーションとして作られてきました。現在では200万行近い規模のコードになっているそうです。 今年1月にはGtHubを利用しているデベロッパーが1億人に到達したことも発表しました。GitHubはまさに世界最大級のRailsアプリケーションだと言っていいでしょう。 そのGitHubは5年前の2018年、Railsのバージョンを3.2から5.2に上げる作業に1年半を費やし。そして二度とこのようなことにならないよう、より頻繁にアップデートを行うべき、などの教訓を得たとしていました。 そして現在、GitHubは毎週月曜日にRailsのアップデート作業
dots. Conference Spring 2016 ゲーム開発の裏側 http://eventdots.jp/event/580344
技術部の鈴木 (@eagletmt) です。 先日、クックパッドで使われている Ruby のバージョンを 2.0.0 から 2.2 にアップグレードしました。 アップグレードは主に @sorah と私で進めました。 今回はアップグレードまでの過程やアップグレード当日の流れ、そして今のところ見られているアップグレードによる効果などについて紹介します。 アップグレードまでの準備 テストを通す Ruby 2.1 がリリースされたときから 2.1 にアップグレードできないか検証環境でテストを回していました。 しかし、当時はクックパッドの全テストを実行すると必ず途中で Ruby がクラッシュする現象に悩まされていました。 Ruby の GC のバグ、拡張ライブラリのバグを疑いながら色々やってみたものの結局解決できず、Ruby 2.2 がリリースされてからもこの状況は改善されませんでした。 しかしある
BUNDLED WITH って何? bundler 1.10.0 以降で作成された Gemfile.lock では、BUNDLED WITH というセクションがあって、使用された bundler のバージョンがトラックされるようになっている [3485] 。 例えば bundler 1.9.0 で作成された Gemfile.lock のあるプロジェクト上で、 最新の bundler 1.10.3 を使用して bundle install --path vendor/bundle すると、 Gemfile.lock には以下の差分ができる。 これをもう一度 1.9.0 で bundle install すると、上の文字はきれいさっぱり消える。 BUNDLED WITH の何が困るか 多人数で開発するときには、この変更は微妙に邪魔で、意図しない Gemfile.lock 変更が出てしまうことで
過去9年わたりWebアプリケーションを開発してきたNiket氏( @nexneo )は、2013年からGoを使って作業をするようになりました。この講演では、彼がどのようにRubyのモノリシックアプリケーションを分解しつつ、Goで記述されたマイクロサービスへと至ったかについて説明しています。講演のスライドは、 speakerdeck.com/nexneo/joy-of-single-purpose-services-in-go で閲覧可能です。 Single purpose servicesというのは、単一の問題を解決するサービスのことです。 一般的に マイクロサービス としても知られています。 Niket氏は、学校側が親御さんたちと連絡したり成績表や出席を管理したりするための人気オンラインプラットフォーム、 Beehively の開発者です。BeehivelyはRubyベースのアプリケーシ
『銀の弾などない— ソフトウェアエンジニアリングの本質と偶有的事項』 を書いたFred Brooksはその論文の中で、 偶有的な複雑性と本質的な複雑性 について重要な区別をしています。 本質的な複雑性 とは、問題特有の領域から生じる複雑性のことを指します。例えば、SMTPクライアントを作成しているディベロッパは、 RFC 5321 の核心の細かいところ全てに取り組む必要がありますが、これはSMTPクライアントの作業をする上で避けては通れないものです。これに対して 偶有的な複雑性 とは、私たちが自ら作り上げた問題から生じる複雑性のことを指します。 技術者としては、自らの選択で生じる偶有的な複雑性によって、余計な負担が増えないようにとても注意しなければなりませんよね。その意味では、言語の選択は偶有的な複雑性を軽減できる完璧な例と言えます。Webアプリケーションを書くのにアセンブリ言語を選びます
1年くらいchefを使ってサーバ構築をしていたのですが、最近ansibleに乗り換えたので紹介記事を書いてみます 1. サーバ側に何もインストールする必要がない chefは管理対象ノードにchef-clientをインストールする必要がありますが、ansibleはPython 2.4が入っていて、sshでログインできればOKです。 chefもパッケージや,knife bootstrapコマンド等があるので始めやすいですが、何もする必要がないansibleの方が敷居が低いのかなと思ってます。 例えばsshでログインできれば、以下のコマンドを打てば10.0.10.1~10.0.10.3サーバの情報をとってくれます(カーネルバージョン,CPU,メモリ,ディスクサイズ,ディストリビューション等)。 この機能はchefで使われているohai相当のことをしてくれます。 echo 10.0.10.1 >
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
技術部・開発基盤グループの村田です。 クックパッドは本日から、本番環境を Ruby 2.0.0-p0 に移行しました。Ruby 2.0.0-p0 は 2013年2月24日にリリースされた Ruby の最新バージョンです。新しい Ruby を使って気持ち良く開発するために、できるだけ早く Ruby をバージョンアップしようと尽力してきた結果が実りました。 Ruby のバージョンアップでレスポンスが高速になった クックパッドが Ruby 2.0.0 に対応したことで、ユーザと開発者の両者にとって、これまでよりも快適になっています。 Ruby のバージョン移行は、Ruby Enterprise Edition から Ruby 1.9.3-p392 を経由して Ruby 2.0.0-p0 へと段階的に実施しました。Ruby を Enterprise Edition から 1.9.3、そして 2.0
# set: キーに対して値を設定する (Mina の設定用) set :user, 'username' p user # => "username" (set したデータはメソッドとして呼び出せる) # desc: task の前に書いてタスクに説明を付ける desc "タスクの説明" # task: タスクを定義する task :mytask => [:subtask] do # subtask を前提タスクとして mytask を定義 # queue: リモートで "touch hoge.txt" を実行するコマンドを実行キューに追加 queue 'touch hoge.txt' # queue!: --verbose モードでコマンドが出力される以外は queue と同じ queue! 'rm -f hoge.txt' # invoke: タスク another を実行 invo
もう1カ月前のことですが、2012年2月23日、24日と2日間にわたって福岡市・博多区を訪問し、「フクオカRubyフォーラム 2012」の第4回Ruby大賞の発表・授賞式を取材しました。24日には、パネルディスカッションが行われ、私(@IT編集部の西村賢)はモデレーターを務めさせていただきました。パネルディスカッションには、 Rubyの生みの親で、Herokuチーフアーキテクトのまつもとゆきひろ氏 Ruby PaaSを提供する米Engine YardCEOのJohn Dillon氏 米VMwareで「Cloud Foundry」をピュアRubyで書いたDerek Collison氏 Ruby PaaS「Mogok」を準備中のIIJの立久井正和氏 の4名が登壇しました。テーマは「Rubyとクラウド」でした。パネルディスカッションも含め、意見交換をしていて、改めてRubyについて気付くところが
VM にサーバを構築して必要なミドルウェアやソフトウェアをインストールするというのが、たまに発生する。 # 「たまに」というのがポイント VM のイメージを起動してサーバをたてるのは割と簡単に出来るんだけど、毎回毎回いちいち yum install とかするのがめんどくさい。 こういう場合は Chef や Puppet を使うのが王道なんだろうけど、前述の通りたまに発生するだけなので、Chef とかは大げさすぎる。 というような事を呟いたら [twitter:@gosukenator] さんに sunzi というのを教えて頂いた。ありがとうございます! Github の Readme を読んだ限り自分のやりたい事がそのまま実現されてた。 sunzi がデプロイ先サーバの $HOME/sunzi っていうディレクトリを自動で作り、そこにシェルスクリプトを転送し、そのシェルスクリプトをリモート
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
2月16日、17日の2日間、東京・目黒でDevelopers Summit 2012(通称デブサミ)が開催されました。2日目の午前中に、IIJが現在クローズドβとして開発中のPaaS「MOGOK」の発表がありました。IIJの藤原秀一氏(プラットフォームサービス部 プラットフォーム開発課 課長/Rubyアソシエーション)によるサービス紹介です。 MOGOK自体は、すでに昨年9月に概要が発表されていて、@ITでも報じています。今回の講演で少しサービスの輪郭が具体的に見えてきました。箇条書きでまとめると以下の通りです。 現在クローズドβ版は50人ほどに使ってもらっている 2012年の1Qか2Q辺りにオープンβ、年内に有償サービス提供 オンラインサインアップ(SDKをダウンロード可能) GitリポジトリをIIJ側に用意(1アプリあたり100MB) Gitリポジトリから実行環境への自動デプロイ機能
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く