追記

いがいが日記


2020-03-25 [長年日記]

_ Emacs26.3

macOS Catalinaにしたときにビルドしようと思ってたのだが、動いたので面倒で先延ばししてた。確定申告終わって少し落ち着いたのでビルドした。26.1から26.3へバージョンアップ。いまのところ何事もなく動いている。

手順

# LIBXML2
MACSDK=`xcrun --show-sdk-path`
export LIBXML2_CFLAGS="-I${MACSDK}/usr/include/libxml2"
export LIBXML2_LIBS="-lxml2"

VERSION=26.3
curl -LO http://ftpmirror.gnu.org/emacs/emacs-$VERSION.tar.gz
curl -LO https://gist.githubusercontent.com/takaxp/3314a153f6d02d82ef1833638d338ecf/raw/156aaa50dc028ebb731521abaf423e751fd080de/emacs-25.2-inline.patch
tar zxvf emacs-$VERSION.tar.gz
cd ./emacs-$VERSION
patch -p1 < ../emacs-25.2-inline.patch
./autogen.sh
./configure --without-x --with-ns --with-modules
make bootstrap -j4
make install -j4
cd ./nextstep
open .
cp Emacs.app/Contents/MacOS/bin/emacsclient /usr/local/bin/.

2020-03-17 [長年日記]

_ 温度調整できる電気ケトル

珈琲やお茶を淹れるときに100℃だとちょっと熱いから少し冷まして、みたいな運用をしてたのだけど、温度調整できる電気ケトルがあることに気づいたので探してみた。

調べたら山善のYKG-C800-E(B)がデザインもいいし温度も1℃単位で調整できるのでこれにした。(5℃刻みのものもあった。)

https://book.yamazen.co.jp/product/product03/others/YKG-C800

買ってみたらとても良い。96℃近辺の1℃違いで微調整するとおいしいお茶が淹れられるようになった(気がする)。UIがなかなか良くて、何回もボタンを押さないといけないのかなと思っていたが、100℃で沸騰だったら電源押して沸騰ボタンを押すだけ。温度調整したければ沸騰ボタンを押したあと点滅している間にプラスマイナスで温度調整。とてもつかいやすい良いUI。

文句としてはフタが取り外ししづらいのでもうちょっとなめらかに着脱できたらよかった。それくらい。

デザインもいいし、注ぎ口が細くてお茶も珈琲も淹れやすいので重宝している。


2020-02-10 [長年日記]

_ GitHub ActionsでRailsアプリを動かす

結論を先に書くと、以下のファイルを配置すればいい。もしくはGitHubリポジトリからActionsタブ、そしてSet up a workflow yourselfから進んで以下を入れる。

name: Rails Tests

on: [push, pull_request]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up Ruby 2.7
      uses: actions/setup-ruby@v1
      with:
        ruby-version: 2.7
    - name: Build and test
      env:
        RAILS_ENV: test
      run: |
        sudo apt-get -yqq install libsqlite3-dev
        gem install bundler
        bundle install --jobs 4 --retry 3
        bundle exec rails db:create
        bundle exec rails db:migrate
        yarn install
        bundle exec rails test # minitest
        bundle exec rails test:system # minitest

以下、メモ。

GitHubActionsでは基本、actions/ のものが公式部品のようだ。

Selenium::WebDriver::Error::UnknownError: unknown error: Chrome failed to start: exited abnormally
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

以下の記事を参考にしました。ありがとうございました。いわさきさんのactons/setup-rubyの記事は前に読んでたので、eregonさんらによって先週頃にactons/setup-rubyが修正されたのはありがたかったです。


2020-02-05 [長年日記]

_ Windows WSL ubuntu apt でWebpackerが要求するnodeバージョンより古くてエラー

WSL ubuntu aptで入るnodeのバージョンが古くて、webpackerで以下のエラーが出た。 なので、より新しいnodeを入れる手順に変更。nvmを利用した。

Webpacker requires Node.js >= 8.16.0 and you are using 8.10.0
Please upgrade Node.js https://nodejs.org/en/download/
$ sudo dpkg-reconfigure tzdata
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt install autoconf bison build-essential libssl1.0-dev
    libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev
    libgdbm-dev sqlite3 libsqlite3-dev -y

# ここからnvmとnodeインストール

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
$ source ~/.bashrc
$ nvm install --lts
$ nvm alias default lts/* # ターミナル再起動時にlts版を使うようにする 
$ nvm use default # ターミナルをここで再起動するなら省略してもいい
$ npm install --global yarn # そのフォルダだけでなくグローバルに入れる必要があるので--globalが必要


# このあとrbenvなどをインストール

ほかにnも検討したが、たぶん先にnodeをaptで入れておいて、後から消す必要があるぽい。 nodenvも考えたけど、node-buildいれなくちゃいけないので手順が長いと思った。

jsのところはじぐそうさんにいろいろ教えてもらった。感謝。

RailsGirlsガイドのページも更新される予定。

https://railsgirls.jp/install


2020-01-13 [長年日記]

_ 学習用にRuby2.7のdeprecated warningを抑制したい

Ruby2.7+Rails6.0の組み合わせだと、現状はRuby3へ向けた多くのwarningが表示される。学習者にとってはログが読めなくなってるので、学習用にログをなんとかする方法。

まず、RUBYOPT環境変数を使ってRailsへRuby実行時のコマンドラインオプションを渡す方法

$ RUBYOPT='-W:no-deprecated' rails s
$ RUBYOPT='-W:no-experimental' rails s
$ RUBYOPT='-W:no-deprecated -W:no-experimental' rails s

毎回打たないといけない。shellをつかえば export RUBYOPT="foo" すればいいのだが、他のRubyプログラムにも影響が出るので、影響範囲広い。

Railsの設定ファイルでこれを書けたらいい。Rubyが起動したあとは Warning[:deprecated] = false でwaringを出さなくできる。たとえばconfig/boot.rbの1行目で Warning[:deprecated] = false と書くと、起動時初回のwarningは出るが、それ以降は出なくなる。


追記