とりあえずコード書けよ

技術的なことの備忘録。

Dry::AutoInjectでinitializeをオーバーライドした時にArgumentError: wrong number of arguments (given 1, expected 0)になる

結論 Dry::AutoInjectでincludeしているクラスにネストしたクラスが別ファイルで存在しているとダメだった とりあえずネストしたクラスの構成を変える or includeしているクラスの中にクラスを書く 状況 クラスFooServiceでDry::AutoInjectを使って、Contain…

tomcatの名前の由来

learning.oreilly.com 上記の本の「1. Getting Start with Tomcat」内の「Where Did Tomcat Come From ?」でTomcatの製作者の言葉が書かれている。 O'Reilly books have animals on the covers. So what animal would I want on the cover of the O'Reilly b…

dockerのtomcatでスタートページとかWebアプリケーションマネージャが404になる場合

結論 webapps.distをwebappsにリネーム $ mv webapps webapps2 $ mv webapps.dist webapps 環境 dockerイメージ tomcat:9.0.70-jdk17-corretto-al2 詳細 1.コンテナを起動する $ docker run -d -p 8080:8080 --name tomcat9 tomcat:9.0.70-jdk17-corretto-al…

macのsedで"extra characters after \ at the end of a command"やら"command i expects \ followed by text"で出る時の対応

結論 MacのsedはBSD版で、LinuxのGNU版sedと仕様が違う brew install gnu-sedでGNU版のsedを入れる PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"でPATHを通すと、sedコマンドを置換できる 内容 シェルスクリプトで先頭の行に文字列の挿入をしたかっ…

Minitest::Mock#expectで ArgumentError: mocked method :method_name expects 1 arguments, got [] が出た件

結論 minitest5.16.0からキーワード引数の指定方法が変わった 第三引数以降にkey, valueのキーワード引数を書いたらOK 概要 minitestで下記のエラーが出るようになった ArgumentError: mocked method :method_name expects 1 arguments, got [] 理由 元々、m…

RailsでFATAL: Ident authentication failed for user "hoge"が出る

結論 pg_hba.confを変更する必要がある 手順 psqlを起動 show hba_file;を実行 sudo vi /var/lib/pgsql/12/data/pg_hba.conf IPv4 local connections の部分をidentからtrustに変更 postgresqlを再起動 変更箇所について # "local" is for Unix domain socke…

EC2にswap領域を作る

サーバーのメモリが貧弱だと、webpackのコンパイルとかが厳しい。 この場合、スワップ領域を割り当ててメモリ領域の拡張などの対応をする必要がある。 以下、EC2に反映する際の備忘録 とはいえ、基本これに書いてある通りにやるだけ aws.amazon.com 手順 1 …

cocoonで動的に要素を増やす場合のテスト

結論 cocoonで動的に要素を増やす場合はクラスで対応する。 # view slim&simple_form .nested-fields = f.input :upload_file, as: :file, accept: 'image/jpeg,image/png', input_html: { class: 'upload-images' } # test click_link '画像を追加' # link_…

pumaのproduction用設定

config/puma.rb # Puma can serve each request in a thread from an internal thread pool. # The `threads` method setting takes two numbers: a minimum and maximum. # Any libraries that use thread pools should be configured to match # the maxim…

nodejsのアップデートでハマった

概要 nodejsのアップデートとエラーの対応の方法について nodejsのアップデート 1.指定のバージョンのダウンロード distributions/README.md at master · nodesource/distributions · GitHub curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - …

github actionsにredisを追加する

概要 actionsにredisを追加してActiveJobのCIに対応する。 結論 docs.github.com ここに書いてありますね。 で、Rails用のactionsに置き換えると下記のような感じかなと。 name: Build on: push: branches: - master - development pull_request: branches: …

ec2にredisを入れる

概要 ActiveJobを使うために必要だったのでとりあえず雑に書き留め。 手順 1.リポジトリの追加 sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 2.インストール sudo yum --enablerepo=remi install redis 3.起動 sudo service …

postgresqlに依存関係が増えた関係でlinux2にインストールのにハマった

postgresql 11.8をインストールしようとすると llvm-toolset-7-clang >= 4.0.1 の依存でこけるようになりました。 調べてみるとllvm-toolset-7-clangはcentos-sclリポジトリにあるとのことでした。 https://centos.pkgs.org/7/centos-sclo-rh-x86_64/llvm-to…

【Rails】PostgreSQLのバイナリ型で画像を扱う

経緯 画像のアップロード機能を追加したい アップロードしたデータはアップロードしたユーザー以外にみられたくない S3などの外部ストレージに保存したくない これらの条件を考えた時に、バイナリ型でDBに突っ込むのが一番手取り早いと思いこの実装にいたる…

github actionsでのruby2.6.6対応

ruby 2.6.6 が先月末にリリースされました。 セキュリティFixなので早めに対応しましょう、という話になったので対応を進めていたところ、github actionsでruby 2.6.6が見つからないとエラーが出た。 どうやらactions/ruby-setup@v1だとまだ対応していない模…

【メモ書き】テスト環境向けamazon linux2のEC2セットアップ2

aws

route53の設定 nginxのインストール lets encrypt導入 nginx設定 unicorn起動 1.route53の設定 言うまでもなさそうなので端折ります。 2.nginxのインストール extrasからnginxをインストール sudo amazon-linux-extras install nginx1 3.lets encrypt導入 こ…

【メモ書き】テスト環境向けamazon linux2のEC2セットアップ1

aws

linux2でテスト用の環境作りをしたので改めて手順まとめ。 ゴール RDSとかELBとか使わずにhttps化してBasic認証アクセスするテスト環境作る。 概要 VPC作成 サブネット作成 IGW作成 ルートテーブル作成 セキュリティグループ作成 インスタンス作成 セットア…

バビロン見終わった【ネタバレ含む】

バビロン見終わった。 最終回で一気に酷評の嵐になってしまったのだけど、個人的にはとても面白かった。 この作品、テーマとしては結局終始、「善とは?悪とは?」って部分で、勧善懲悪的なものだったりとか、サスペンスって感じじゃないのではないのかなと…

ec2をlet's encrypt使ってhttps化する(Nginx)

ec2をhttps化する場合、elbやcloudfrontを使うケースが一般的だと思う。 が、コストが上がるので、テスト用の環境とかでそのコストがかけられない場合に自前で証明書を用意してhttps化する必要がある。 今回 let's encrypt(certbot)を使ってやってみたので、…

RubyのTimeの比較は同じ日付・時・分・秒でもfalseが返ることがある

まとめ Timeの比較は1秒以下をみるので、パッと見同じ日付・時・分・秒でもfalseが返ることがある。 同じ日付・時・分・秒をtrueにするには1秒以下をto_iで切り捨てる 本筋 Railsで時刻を比較する機会はなかなか多いと思う。 時刻の比較で、テストを書いてい…

Railsのindex_errorsでi18nを適用する際にハマったのと、それを調べる過程について

要約 index_errorsでi18nを使うときは config.active_model.i18n_customize_full_message = true を指定すること 一次情報が大事。Qiita等を見るのはそのあと。 困ったときはとりあえずprintデバッグから始めてみる。順を追って行けばそれなりに読める。 本…

Outlookのメールをcsvに変換する方法

めちゃニッチな話だけど、調べても特に情報が出て来なかったので、万が一誰かの役に立つかもしれないから残しておく。 ちなみにoffice for macの話です。 事のいきさつとしては、定期購入で商品を買っているんだけど、商品を発送しましたとかって定型の通知…

Otemachi.rb#20でLTしてきた

概要 Otemachi.rb#20で「突撃!隣のフォームオブジェクト」という話でLTしてきました。 タイトルは某番組をインスパイアしたものの、内容はこちらのフォームオブジェクトに関する取り組みについてなので、完全にタイトル詐欺である。 スライド speakerdeck.c…

Rails初心者が個人的にもっと早く聞きたかったシリーズ1 type: :uuid

シリーズとか書いているけどシリーズ化するかは分かりません。 最近、改修という名の過去の自分と戦う羽目になるケースが非常に多いです。 気分はコロッセオのディアボロです。 1年経って見返してもよく分かるんですが、非常に無駄が多いんですね。 (無駄に…

Rails6になってActionTextが実装される今、あえてFroalaEditorを解説する

Rails6になって搭載されるActionText。 リッチテキストエディタが標準で使えるようになって万々歳。 そんな方々も多いのではないでしょうか。 が、しかし、世の中には 「Rails6にバージョンアップしたくてもできねえんだよ!」 とかっていう悲しい事情を抱え…

db:migrate:status から ********** NO FILE ********** を消す

何番煎じかわからんけども、備忘録。 開発中とかによくやっちゃうわけですよ。 migrateかけた後に「やっぱ違う」と思ってrollbackなどをせずにmigrationファイルを消す。 ってことを。 で、そうするとdb:migrate:statusを実行した際にこいつがあらわれます。…

active_recordのattributeメソッドまとめ

github.com ちょっと使う機会があったのでまとめ。 変更前後で値がとれるのは便利。

RDSのpostgresqlからバックアップをとってローカルに反映する

本番環境のバックアップ&ローカルで使いたかったのでサクッとダウンロードしたかったので、手順まとめ。

Railsdm、個人的備忘録

Railsdmに参加する上でのテーマ ①現状の課題に対するヒントを得る ②外部とのコネクション形成 この2点。 会社の業務時間で参加する以上、やっぱり確実に得るものがなくてはならないなと。 ①はもっぱらチーム作りとか、他社さんで新人さんの受け入れとかどう…