紙一重の積み重ね

アラフォーのエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

ruby

【レポート】Ruby World Conference 2020にはじめて参加してきました

はじめに 2020年12月17日に開催された、Ruby World Conference 2020にはじめて参加しました。今回は、新型コロナウイルスの影響により、オンライン開催でした。 2020年のうちにセミナーレポートを投稿します。 視聴URL www.youtube.com 開会 実行委員長のMat…

2歳児を育てながらRuby技術者認定試験 Goldに合格しました

はじめに Ruby アソシエーションが行なっている Ruby技術者認定試験 Gold に合格しました。 受験スコア 78点でした。75点以上で合格なのでギリギリのラインでした。 学習期間 2020年1月7日から学習を本格的に開始して、2月中旬に合格しました。学習期間とし…

【Rails】Shoryukenを使った非同期処理で Error while trying to deserialize arguments: Couldn't find エラーが発生したときの対処法

はじめに Shoryuken を使った非同期処理にハマっているのでメモ。 やりたいこと Shoryukenを使ってメール処理を非同期で送信したい ActiveJobのキュー保存先はAWS SQS github.com 発生したエラー 2020-01-23T06:44:31Z 9395 TID-goxzcpc3k ActiveJob/ActionM…

【Rubyもくもく会】Saitama.rb#25 に参加して Shoryuken gemやActiveJobについて学びました

はじめに 1月18日に開催された Saitama.rb#25 に参加してきました。 Saitama.rb とは 埼玉に住んでいるRubyistのコミュニティです。詳細は以下をご覧ください。 saitamarb.connpass.com 参加した感想 自分以外の人がいる状態のもくもく会は非常に集中できる…

2020年はポモドーロテクニックで勉強することにしました

はじめに 2020年はまずは Ruby 認定資格ゴールド取得を目指します。スキマ時間を使って効率的に学習を進めるために、ポモドーロテクニックを使うことにしました。 ポモドーロテクニックとは 25分集中して5分休むことを1サイクルとする時間管理のテクニックの…

【初登壇】Ruby Business Users Conference 2019で登壇して学んだことを振り返る #RBUC #Qiita

はじめに この記事は、Ruby Advent Calendar 2019の17日目の記事です。 qiita.com 2019年12月13日に開催された Ruby Business users Conference 2019で登壇してきました。初めての社外登壇だったため非常に勉強になりました。カンファレンス申し込みから、発…

【参加レポート】Ruby Business Users Conference 2019で登壇してきました

はじめに 2019日12月13日に開催された Ruby Business Users Conference2019に参加してきました。 初めて外部イベントで登壇しましたが、とても楽しかったです。はじめての登壇で得た気付きや学びは、別記事で書きます。 以下、講演のメモです。走り書きの部…

Ruby Business Users Conference 2019で登壇します

はじめに 前回、Ruby Business Users Conference 2019の発表者に申し込んだという記事を書きました。11月1日発表と思っていたのですが、なんと本日、Ruby アソシエーションの事務局の方から採用のご連絡をいただきました。まさか自分が採用されるとは思って…

Ruby Business Users Conference 2019 の発表者に応募しました

はじめに タイトルの通り、Ruby Business Users Conference 2019 に発表者として申し込んでみました。 www.ruby.or.jp 応募しようと思ったきっかけ 社外で発表してみたいと思ったからです。また、Saitama.rb を主催されている株式会社タケユーウェブの竹内さ…

【参加レポート】Saitama.rb#21 に参加してきました

はじめに 9月21日に開催された Saitama.rb #21に参加してきました。 saitamarb.connpass.com 参加の目的 Rubyを書いている社外のエンジニアの人たちとつながるためです。 私の職場ではRubyを書く人が極端に少ないため、社内だけだと視野が非常に狭くなってし…

【AtCoder ABC027 A問題】selectとfindメソッドの動きの違いについて

はじめに AtCoderの過去問をA問題から穴埋め中です。 普通に解いてACだった問題を、もっと短くコード書けないかと思い、select使ったらWAだったのでメモします。 解いた問題 atcoder.jp 最初に書いたコード(AC) これでACだったんですが、モッサリしてるコー…

【Rubyイベントレポート】Saitama.rb #20 に参加してきました

はじめに Saitama.rb #20 に参加してきました。 先月に続き2回めの参加になります。 イベントの内容 saitamarb.connpass.com 参加する目的 社外でRubyをやっている人たちとつながるためです。 Rails6について語ろう Railsコミッターの @y_yagi さんから、Rai…

【RSpec】Everyday Rails学習ログ①~RSpecのインストールからモデルスペックまで~

はじめに 8/17に参加した Saitama.rb #20で実施した、RSpecのもくもく学習ログです。 なぜRSpecを学ぶのか 私が関わっているRailsプロダクトの品質を安定させ、継続的に開発を進めていくためです。 現在私が携わっているRailsプロダクトは5.2系で動いていま…

【レポート】Rubyビジネスセミナーに参加して、MatzさんやRubyに出会えて幸せだと思った話

はじめに 7月31日に東京で開催された Ruby アソシエーション主催のRuby ビジネスセミナーに参加してきました。セミナーの講演内容はどれも素晴らしく、まつもとゆきひろさん(以下、Matzさん)と直接お話する機会があり、大変有意義な一日でした。 【続き】…

【Rubyイベントレポート】Saitama.rb #19にはじめて参加してきました

はじめに さいたま市の大宮で開催されたSaitama.rb #19に参加してきました。 saitamarb.connpass.com 参加した理由と目的 社外でRubyを書いている人と繋がるためです。今の会社ではRubyを書くエンジニアが少数であるため、社内だけではなかなかRubyに対する…

【Rubocop】Use the return of the conditional for variable assignment and comparison.エラーの対処法

はじめに Rubocopで見慣れない指摘を受けたのでメモ。 バージョン rubocop 0.49.1 エラー内容 変数の比較と代入は、条件式の戻り値を使うべし。 Use the return of the conditional for variable assignment and comparison. ダメなコード例 私はJavaで育っ…

【Ruby2.6.0】find_spec_for_exe: can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException) エラーの解決方法

はじめに 新年早々ハマったのでメモ。 今年の1月から同様の事象が発生しているように見受けられます。 stackoverflow.com 結論 Ruby2.6.0を使えば解決します。 やりたいこと まっさらなEC2にRubyを入れて、Unicornをインストールしたい 実行環境 $ ruby --ve…

末尾にイコールがついているメソッドは代入構文として使える #Ruby

はじめに たまにメソッドにイコールがついているものを見かけるのでメモ。 実装例 def user_params=(user) id = user.id self.created_user ||= id self.updated_user = id end メリット 代入構文のように使用できる Rubyでは、()を省略できる。また、イコー…

Rubyをバージョンアップした時に bundle: command not found エラーが発生したときの対処法

やったこと Ruby2.4.1 を入れた直後に、2.5.1にバージョンアップした 発生したエラー $ bundle rbenv: bundle: command not found The bundle command exists in these Ruby versions: 2.4.1 原因 bundleがいないため 2.5.1 ~/.rbenv/versions/2.5.1/bin$ ll…

【Rails5 + Slim】ブラウザのメニューバーやツールバーなどを表示せずに、リンクを新しいウインドウで開く方法

やりたいこと リンクを別のウインドウで表示したい 別のウインドウには、ブラウザのツールバーやメニューを表示したくない 別ウインドウの大きさは手動で調整できるようにしたい やりたいことのイメージ 楽天銀行のログイン画面のこういうやつ www.rakuten-b…

binding.pryでデバッグ中に、意図的に例外を発生させてrescueでキャッチする方法 #Rails5

やりたいこと binding.pryでデバッグ中に、rescueで実装した例外処理を確認したい。 実現方法 raiseを使う。 実装例 def update @hoge ||= hoge ApplicationRecord.transaction do binding.pry # 例外発生 raise ActiveRecord::RecordInvalid.new(@hoge) @ho…

【N+1問題対策】Ransackとincludesメソッドを使ってActiveRecordの多段の関連を検索する方法 #Rails5

はじめに N+1問題を解消するために、複数の関連を持つModelをincludesメソッドで解消する方法をメモ。 実行環境 Rails5.2.0 Ransack Slim Model定義 Userに持っている名称と、Corporationに持っている名称を取得したい。 class User < ApplicationRecord has…

【Ruby】多重配列の中身を1行ずつ改行して表示したい

はじめに AtCoderの問題をいろいろやっている中で、多重配列について迷ったのでメモ。 やりたいこと 多重配列の中身を1行ずつ改行して表示したい。 実現方法 joinメソッドを使う。 docs.ruby-lang.org 実装例 $ irb 2.4.0 :001 > H,W=3,4 => [3, 4] 2.4.0 :0…

【エンジニア勉強会】「サービスを Ruby / Rails で成長させるためにやったこと」に参加してきました

はじめに 先週、みんなのウエディングさんと、メドピアさん主催で行われたエンジニア勉強会に参加してきました。 感想 MobaSifという存在を初めて知った モバゲータウンのFrameworkだったんですね 新卒社員の方がLTしてて偉い 自社のサービスの開発手法は、…

【ドットインストール】RSpec学習まとめ【lesson7】

要点 describeキーワードは、テスト対象を指定するもの。 describeは入れ子にすることができる。 トップレベルではdescribeの前に、RSpec.をつけることが推奨される。下位レベルでは不要。 describeは、contextと書いても同じ意味になる。 テスト対象がモノ=…

【RSpec入門】はじめてRSpecのテストコードを作成して実行するまでのまとめ

ドットインストールの学習を元に、はじめてRSpecを動かしてみます。 動作環境 Ruby 2.3.0 RSpec 3.4.4 Cloud9 失敗するクラスを書く サンプルのテストコードを作成する。 RSpec.describe "A calc" do # itで囲まれた範囲がexample # 期待される振る舞いのこ…

【Ruby】ドットインストールRuby入門(全26回)を完走しました

ドットインストールの学習状況です。 学習中のレッスン Ruby入門 (全26回) 現在の進捗状況 全26回完了。 所要時間 5日間。 − なんだかんだで5〜6時間くらい。 作成したプログラム github.comにて管理しています。 やってみた感想 基礎の基礎から学べるので非…

【Ruby】ドットインストール学習中

ドットインストールの学習状況です。 学習中のレッスン Ruby入門 (全26回) 現在の進捗状況 20章まで完了。 残り6章。 作成したプログラム github.comにて管理しています。 学習の効率化のために ドットインストールの有料オプションに申し込みました。 無料…

【Rails5】Rubyの文字列リテラルはダブルクォーテーションが基本だと思う

開発中のアプリケーション仕様 viewのテンプレートはslimを使用 多言語対応のため、日本語はja.ymlに定義 今日の失敗 Rubyの式展開が文字列としてそのまま展開されてしまった。 = smart_article name: t('title.#{@class_name}_index') view側では、title.#{…

【Rails5】includedをincludeと記載して30分ハマった件について

開発時に猛烈にはまってしまったので自戒のために残します。 発生したエラー ArgumentError (wrong number of arguments (given 0, expected 1+)): 原因 コーディングミス。 includedと記述するべき箇所を、includeと書いてしまっているため。 デバッグ bind…