Gemfileでrailsを一番上に置かなきゃいけない?

という話があった。
確かにいくつかそういう記事も見つかった。

だけどrailsに関して言えば、application.rbでrailsをrequireした後にBundler.requireをしているので、気にしなくて良さそうにも見える。
rubocopのBundler/OrderedGemsも気にしていなそう)

だが、心配なので一応検証してみた。

Gemを用意

$ cd ~/Documents/Temporary/
$ bundle gem defined_rails_checker
$ cd defined_rails_checker/

$ vim defined_rails_checker.gemspec 
# TODOを適当に埋める

$ vim lib/defined_rails_checker.rb
puts "###### defined rails checker"
if defined?(Rails)
  puts "OK! I love rails."
else
  raise "NO!!! I need rails!"
end

アプリケーション

$ vim Gemfile
# frozen_string_literal: true

source 'https://rubygems.org'

ruby '2.7.3'

gem 'defined_rails_checker', path: '~/Documents/Temporary/defined_rails_checker'
gem 'rails'

$ bundle
$ ./bin/rails s
###### defined rails checker
OK! I love rails.

というわけで、大丈夫そうだった。

以下のような行儀の悪い運用スクリプトとかがいて、
それをrunnerじゃなく、単体で実行したい場合とかには気にする必要がありそう?
(そんなケースはあるのか??)

# ActiveSupport使いたいだけだけど、全部読み込む!
Bundler.require

grep -v のかわりに grep [n]ginx とかを使うやつ

ぐぐりづらい系。なんでこうなってるんだっけ?というのをよく忘れる。

$ ps | grep nginx

だと、psの結果は

nginx
grep nginx

こうなる。どちらもnginxにマッチしてしまう。

$ ps | grep [n]ginx

だと、psは

nginx
grep [n]ginx

こうなる。grepは[n]ginxを正規表現として解釈するから、
grep [n]ginxはマッチしなくなる。

正規表現の[n]ginxgrep [n]ginxにはマッチしないため。
[]が邪魔なのでマッチしない)

Amazon Linux 2のディスク拡張

resize2fsではなくxfs_growfsを使う。
(growpartした後)
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html

EC2からFTPできなかった

Activeモードだと

500 Illegal PORT command.
ftp: bind: アドレスは既に使用中です

Passiveモードだと

227 Entering Passive Mode (0,0,0,0,234,103).
ftp: connect: 接続を拒否されました

になった。

サーバーは外部管理のもので、Passiveでの接続が保証されているか微妙だったので、Activeモードで接続する方法を探すことに。

VPC内のEC2インスタンスから外部のFTPサーバとデータ転送するときに気をつけること

完全にこの記事に救われた。

ftp.rb
require 'bundler'

require 'net/ftp'
require 'net/ftp/port_command'

ftp = Net::FTP.new('FTPサーバーのIPアドレス')
ftp.port('EIP', 10020)
ftp.login('ID', 'パスワード')

puts ftp.list

# ftp.get 'ファイル名' # データ取得する時
bundle exec ruby ftp.rb

今までろくに触ったことのなかった生のFTPをまさかの2018年に触ることになったお話でした。(触らないまま人生を終えたかった)

まぁわりと勉強になったのでよかった。

GitHub PagesとNetlifyの帯域制限

GitHub Pages

https://help.github.com/articles/what-is-github-pages/

GitHub Pages sites have a soft bandwidth limit of 100GB per month.

Netlify

https://www.netlify.com/tos/

Network Bandwidth: 100GB/month - Soft

どちらも100GB/月。