How ActiveRecord::Migration converts create_table DSL into SQL statements
こんにちは。 今年の年始からジョインした遠藤です。 さて、入社したところ会社支給のMacBook ProがM1チップのものでした。 はい、現状は開発環境で苦労するとか色々噂を聞くやつです。 実際に試したのですが、 現状の開発環境構築スクリプト、手順書が一切使えない VitualBox, Vagrantは利用不可 Dockerは利用可能ではあるが、一部イメージが対応されてない 古いパッケージは動かす手段がない などなど、通常ではぶつからない問題にぶつかります。 食べチョクでは、 Ruby Node.js MySQL Redis ElasticSearch Kibana を利用しています。 この辺りをメインに話つつ、Intel版とこんな風に違うのかっていう辺りの雰囲気を感じ取っていただければと思います。 どこに開発環境を構築するか まず、どこで開発環境を構築するかを考えてみたいと思います。 ロ
パッチ会や地域 Ruby コミュニティなどで集めた知見を元に、勤務先の永和システムマネジメントなんかで度々話している表題についてテキスト化しておく。 TL;DR Ruby 2.8.0 の開発が始まっているが、それは 2020 年のどこかで Ruby 3.0 になるらしい Ruby 3.0 ではキーワード引数 (以下 kwargs) の分離という破壊的変更があり、Ruby 2.7 系は事実上の移行パスバージョン的な位置付けになるだろう 2020年1月8日の現時点では、Ruby 2.7 の kwargs の分離警告について対応された安定版の Rails はなく、周辺 Gem も WIP なので OSS エコシステムに参加していくと良い 2.8.0 (tentative; to be 3.0.0) development has started 2019年の ruby/ruby での matz
Post author:sider Post category:Uncategorized Reading time:4 mins read Post published:2018-02-26 もし過去のOSに断絶があったら、Rubyが絶命していた可能性はかなり高い。25年のRuby開発の歴史を振り返りつつ、そんな意外な見方を示したのはRubyの生みの親として知られる、まつもとゆきひろ氏だ。 日本生まれのプログラミング言語「Ruby」(ルビー)が25歳の誕生日を迎えた。Rubyが生まれたのは1993年2月24日のこと。それからちょうど25年目となる2018年2月24日に、Ruby25周年記念イベント「Ruby25(ルビー・トゥエンティーファイブ)」が、Rubyアソシエーションおよび日本Rubyの会の後援で東京の品川インターシティーで開催された。 基調講演を行ったまつもと氏は、25年を振り返
はじめに Rubyは毎年12月25日にアップデートされます。 今年はまだpreview版がリリースされていませんが(2017年10月10日時点)、今年もそろそろリリースの日が近づいてきました。 Ruby 2.5については2017年10月10日にpreview1がリリースされました。 Ruby 2.5.0-preview1 Released そこでこの記事ではこの2.5.0-preview1を参考にして、おそらくこんな感じでリリースされるであろうRuby 2.5の新機能や変更点をまとめてみました。 2017.12.25追記: Part 2もあります! この記事を公開したあとにも多数新機能が追加されました。この記事に追記すると長くなってしまうので、Part 2として公開しています。こちらもあわせてご覧ください。 サンプルコードでわかる!Ruby 2.5の主な新機能と変更点 Part 2 - Q
こんにちは。技術部 開発基盤グループの諸橋です。 クックパッドでは昨今の多くのWeb企業と同じように、GitHub EnterpriseのPull Requestを使ったコードレビューを広範に実施しています。わたしたちのコードレビューでは、ソースコードの字面にとどまらず、サービスの機能として魅力的かどうかや、保守性を含めた設計が適切かといった議論に発展することも良くあります。 きょうはそんななかで話題に上がった「現在時刻」の扱いかたに関する設計の話を書きます。 背景 サービスを開発・運営している我々には、時間帯によって出し分けたり、特定の期間のみに表示したいコンテンツがたくさんあります。 そのたびにデプロイし直すというのはつらいので(特に24:00に出なくなるコンテンツなど)なんとかしたくなりますが、一方で時限式のコンテンツはその時になるまでちゃんと動いているか確証が取れないので怖いです。
161227: 内容が古くなったので、書き直しました。 はじめに# Ruby 開発環境を整えようとおもったが, 普段よく使っている Eclipse を出すにはスクリプト言語は大げさだ. スクリプト言語はコンソール端末で書くに限る. というわけで, Emacs 使いなあたしとしては, Emacs での Ruby 環境を整えようとおもった. いろんなサイトを参考にしつつ, 導入したものを列挙していく. 準備# elip 取得に必要な package.el や el-get.el, git や wget などのツールはインストール済みのこと. 環境# Emacs 24.3.1 Ruby 2.1.0 優れた IDE の条件# 優れた IDE が備えるべき機能は以下 シンタックスハイライト/ インデント ruby-mode 検索・置換 iedit, multiple-cursors, helm-ag
#!/usr/bin/env ruby # -*- coding: utf-8 -*- class Hoge # setterは公開されていない attr_reader :fuga def initialize @fuga = 'fuga' # getter/setter共に公開されていない @hige = 'hige' end end hoge = Hoge.new p hoge.fuga # => "fuga" # インスタンス変数の名前を文字列で指定して # 外から強制的に書き換える name = "@fuga" hoge.instance_variable_set(name, 'fugafuga') if hoge.instance_variable_defined?(name) p hoge.fuga # => "fugafuga" # シンボルでも指定できる hoge.inst
プログラムは、なるべく何もしなくても良い感じに動いてくれるのが理想的だけど、実際には何らかのかたちでユーザの設定を必要とすることがある。 Rails を使うときは config/application.rb でタイムゾーンを指定したり、DB へ接続するための情報を config/database.yml に指定する。 Bundler の挙動を変えたければ bundle config で設定を変更する。 Gem をインストールするときに毎回指定したいオプションがあれば、~/.gemrc に追記する。 もし自分の関わるプロダクトに「設定」のAPIが必要になったとき、何を判断の基準にして設計すればいいだろう。 ちょっと近所を見渡すだけでも、「設定」のやり方には色々ありそうだ。 設定という視点から、Rubyist にとって身近なプロダクトたちを資料として眺めてみた。 (NOTE: ちょっと悩みなが
■1 (株)永和システムマネジメントのフェローに就任していました TL;DR 1月末日付でesmincの「正社員」ではなくなりましたが、esm.co.jpのメールアドレスは生きております。引き続きよろしくお願いいたします。 current status のまとめ: 一般社団法人日本Rubyの会 理事 株式会社永和システムマネジメント フェロー Asakusa.rb幹部(自称); 最近欠席ぎみ 個人事業主(ソフトウェアをつくり、とどけることにまつわる様々なこと) こんな気分: 保険証を会社に返した途端に家族の体調が崩壊して戦々恐々です……社会は厳しい。 さしあたっては、まだ引き継げてないギョームをどうにかしつつ——先に個別にご連絡を差し上げるべき方々につきまして、ご挨拶が遅れておりますことを、この場を借りてお詫び申しあげます——、組織の運営からはちょっと距離を置いて、主に東京支社のメンバーと
Posted by zzak on 17 Dec 2013 Translated by makimoto 2014年6月まで 1.8.7 と 1.9.2 に対するセキュリティパッチのサポートが行なわれることになりました。 Terence Lee (@hone02) と Zachary Scott (@_zzak) がメンテナとなります。 6ヶ月のメンテナンス期間のあと、さらに6ヶ月の延長のためにコミッタを割り当てる可能性があります。 このメンテナンスの延長が実現したのは Heroku によるものです。 詳細については次のブログ記事を参照ください。 A Patch in Time: Securing Ruby (英語) 問題報告の方法 延長されたメンテナンス期間は、1.8.7 と 1.9.2 のソースコードリポジトリに対し、 我々はセキュリティパッチ のみ を適用します。 我々はセキュリティ
はじめに: 遠回りせずに「近道」を探す RubyやRailsを始めたばかりの人は、もっと短く書く方法や便利な標準ライブラリの存在を知らずに遠回りした書き方をしてしまいがちです。 そこで、RubyやRails初心者の人によく見かける「遠回り(または車輪の再発明)」と、それを回避する「近道」をいろいろ集めてみました。 2013.11.06 追記 この投稿を書くに至った経緯などを自分のブログに書きました。 こちらも合わせてどうぞ! 昨日Qiitaに投稿した記事は普段のコードレビューの副産物 - give IT a try Ruby編 以下はRubyの標準機能を使ったイディオムやメソッドです。 Railsプロジェクトでもそれ以外でも使えます。(Ruby 1.9以上を想定) 後置ifで行数を減らす
this_day = Date.today this_monday = this_day - (this_day.wday - 1) # 今週の月曜日 last_monday = (this_day - (this_day.wday - 1)) - 7 # 先週の月曜日 [1] pry(main)> this_day = Date.today => Thu, 10 Jan 2013 [2] pry(main)> this_monday = this_day - (this_day.wday - 1) => Mon, 07 Jan 2013 [3] pry(main)> last_monday = (this_day - (this_day.wday - 1)) - 7 => Mon, 31 Dec 2012
技術部・開発基盤グループの中村です。 この度、クックパッドが開発し、オープンソースとして公開しているRuby on Rails向けプロトタイプ開発用のプラグイン「Chanko」を再設計し、Ruby 2.0.0 への移行に引き続き Chanko 2.0.0 をリリースしました。Chanko 2.0.0 では、これまでのバージョンと互換性を保ちながら、主に実行速度やコードの可読性について改善が加えられています。 http://cookpad.github.io/chanko/ Chankoとは Chankoは、素早く安全に新機能のプロトタイプを行うためのフレームワークです。クックパッドでは今現在でも、Chankoを使って多くの機能を独立して開発し、対象範囲を限定して公開することで新機能の検証サイクルを回しています。Chankoを利用して拡張した機能でエラーが起きた場合、拡張前の機能に自動的に切
RVM で Ruby 2.0 をインストールしたときのメモ Ubuntu 12.10 に Ruby 2.0 を RVM でインストールしたときのメモ。 少し使ってみた感じでは rake とか gem とかが速くなったように感じるけど、 http://jp.rubyist.net/magazine/?0041-200Special-require かな。 Ruby 2.0 のインストール まず、RVM を更新する。 rvm get head インストールは rvm install ruby-2.0.0-head で行い rvm use ruby-2.0.0-head で使用することができる。 使用していた gem をインストールする ruby-1.9.3-head で使用していた gem をさきほどインストールした ruby-2.0.0-head にインストールしたい。 rvm use ru
「Rubyのcase」を一瞥し「あー要は〇〇(言語名)のswitchね」などと早合点し、その後もその真の価値を知ることなく一生を終えるプログラマが近年跡を絶たない。加えて、「今更条件分岐?RubyはOOPなんだからポリモフィズムじゃね?」とか「HashにProc突っ込んでcallするのがオレ流。」とかうそぶく人たちもまた増加の一途を辿っている。 そんな世の中にあって、ぼくは一言、できればガツンと一言申し上げたい。生まれも育ちもRubyなぼくから、是非ともそんな人たちに「Rubyのcase」について一言申し上げておきたい。 ─ 問題1 ─ 名前name、レベルlevel、ポイントpointの各属性を持った複数のCharacterオブジェクトcharlie, liz, benがある。 class Character < Struct.new(:name, :level, :point) def
Mashup Award 8 の作品を作っていたら、ちょうどタイミングよく Amazon Elastic Beanstalk が Ruby 対応を始めたので、こりゃ勉強がてらちょうどいいやということでやってみました。 Elastic Beanstalk (以下EBT) とは? 一言でいえば PaaS です。 heroku や dotcloud や google appengine が近いですね。 ロードバランサー1つと micro instance 1つで動かす分には無料枠に収まります。 サービスが成長したら、micro を medium や large にしたり、インスタンス増やしたりもできます。 また Amazon RDS や S3 などの AWS の別サービスを普通に利用できる(別料金)ので、幅広いアプリケーションに対応できます。 heroku とかと何が違うの? 少なくとも私が触っ
こんにちは、営業部という部名を変えたくて他の名前を考えているものの横文字はチャラいなぁという古風の考えを持っているため雲解決部にしようとしている羽柴です。 今日は名曲「部屋と◯シャツと私」に似たような題名できめてみました。 3つのPaaSを比較してみる 早速ですが、AWS Elastic BeanstalkがRubyをサポートしましたね。社内にはRuby on Railsが好きなエンジニアもいますので、PaaS(Platform as a Service)として選択肢が増えたことは嬉しいかぎりです。 そんな中、こんなTweetを見ました。 私たちの会社ではCloudworksなどのサービス提供のインフラとしてHerokuを使っているものの、最近 Engine Yard も熱いなぁと思っていたところで Elastic Beanstalkが Rubyサポートをしたことを受けて、とても目移りして
AWS Week in Review – New Open-Source Updates for Snapchange, Cedar, and Jupyter Community Contributions – May 15, 2023 A new week has begun. Last week, there was a lot of news related to AWS. I have compiled a few announcements you need to know. Let’s get started right away! Last Week’s Launches Let’s take a look at some launches from the last week that I want to remind you of: New Amazon EC2 […]
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く