追記

いがいが日記


2020-08-01 [長年日記]

_ Emacs 27.0.91

新しいMBPに移行してEmacs26.3をビルドしたらエラーになってしまった。過去にビルドに成功していた既存マシンでも同様のエラーが出るようになっていた。

mv -f emacs bootstrap-emacs
/Library/Developer/CommandLineTools/usr/bin/make -C ../lisp compile-first EMACS="../src/bootstrap-emacs"
  ELC      emacs-lisp/macroexp.elc
  ELC      emacs-lisp/cconv.elc
  ELC      emacs-lisp/byte-opt.elc
  ELC      emacs-lisp/bytecomp.elc
/bin/sh: line 1: 44099 Killed: 9               EMACSLOADPATH= '../src/bootstrap-emacs' -batch --no-site-file --no-site-lisp --eval '(setq load-prefer-newer t)' -f batch-byte-compile emacs-lisp/macroexp.el
make[3]: *** [emacs-lisp/macroexp.elc] Error 137
make[3]: *** Waiting for unfinished jobs....
/bin/sh: line 1: 44101 Killed: 9               EMACSLOADPATH= '../src/bootstrap-emacs' -batch --no-site-file --no-site-lisp --eval '(setq load-prefer-newer t)' -f batch-byte-compile emacs-lisp/byte-opt.el
/bin/sh: line 1: 44100 Killed: 9               EMACSLOADPATH= '../src/bootstrap-emacs' -batch --no-site-file --no-site-lisp --eval '(setq load-prefer-newer t)' -f batch-byte-compile emacs-lisp/cconv.el
make[3]: *** [emacs-lisp/byte-opt.elc] Error 137
make[3]: *** [emacs-lisp/cconv.elc] Error 137
/bin/sh: line 1: 44102 Killed: 9               EMACSLOADPATH= '../src/bootstrap-emacs' -batch --no-site-file --no-site-lisp --eval '(setq load-prefer-newer t)' -f batch-byte-compile emacs-lisp/bytecomp.el
make[3]: *** [emacs-lisp/bytecomp.elc] Error 137
make[2]: *** [bootstrap-emacs] Error 2
make[1]: *** [src] Error 2
make: *** [bootstrap] Error 2

調べたけど分からなかったので新しいバージョンで直ってるかもと思って27にしたら動いたのでこれでいくことに。27.0の安定版はまだ出てないのかも?出たらまたビルドする。

26.3からインラインパッチが変更された。インライン入力パッチを書き直してくださった方がいてたいへんありがたい。(これがないと日本語入力時のカーソル点滅が結構つらい)

https://qiita.com/takaxp/items/e07bb286d80fa9dd8e05

ビルド手順

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

cd ~/work
wget http://git.savannah.gnu.org/cgit/emacs.git/snapshot/emacs-27.0.91.tar.gz
# git clone --depth 1 git://git.sv.gnu.org/emacs.git
git clone --depth 1 https://github.com/takaxp/ns-inline-patch.git

tar xvzf emacs-27.0.91.tar.gz
cd emacs-27.0.91
patch -p1 < ../ns-inline-patch/emacs-27.1-inline.patch

# sleep 5
./autogen.sh
./configure CC=clang --without-x --with-ns --with-modules
CORES=4
make bootstrap -j$CORES
make install -j$CORES
cd ./nextstep
open .
cp Emacs.app/Contents/MacOS/bin/emacsclient /usr/local/bin/.

前回Emacs26.3 https://igarashikuniaki.net/diary/20200325.html


2020-07-21 [長年日記]

_ パーフェクトRails 増補改訂版

2020年7月25日に パーフェクトRails 増補改訂版 が発売されます。私も執筆チームに加わってこの本に携われたことを嬉しく思います。

パーフェクトRails初版も素晴らしい本で、読み込んでかなりRails力を上げてもらった記憶があります。特にrack, rack middleware, railtie, engineといった話題は他の日本語の本では触れられてる本は少ないのではないでしょうか。(今回の増補改訂版ではほぼ0からの執筆で構成も大きく変わったため残念ながらこの一部はなくなってしまったのですが、rack, rack middlewareは引き続き解説してあります。)

そんな良い本であるパーフェクトRails初版は2014年発売で、Rails4.1をベースに書かれていました。良い本だが、いかんせん古いので「改訂しないかなー、してくださいよー、まだですかー?」としつこく筆者陣をつついていたところ、執筆チームへの加入を打診され、きれいにブーメランが決まったと言えます。

しつこく改訂を促していたのには理由があり、この本が必要だったからです。私は企業で新人研修をやっていたり、スクールのお仕事もお手伝いしていますが、このレベル感の本が必要なのに、存在しなくて困っていました。Railsの基礎を学んだ人たち(Rails Tutorialや現場Rails本、黒田さんのRails本などはできるようになった人たち)が、「何やら知らない世界がまだあるようだが、それらは何なのだ?」という世界を知るための本です。Railsの書籍には入門書を超えるレベルで網羅的なものがなく、昔はレシピブックもありましたがobsoleteになってしまい、ここ数年はWEB+DB PRESSの記事くらいでした。

パーフェクトRailsは必要な本であるし、初版でとてもお世話になったので、これはぜひ世の中に出したいと思って去年の年末にjoin、半年程の執筆期間で無事に世の中へ出すことができそうです。前からいた人たちはきっと2年以上書いていたのだと思います。本当におつかれさまでした。

「ゼロからわかるRuby超入門」とは書き方が全く違って、パーフェクトRailsはまた違った執筆のたのしさを味わうことができました。日々の仕事とのリンクが強く、また執筆チームとレビュアー陣が凄腕のみなさんだったので勉強になることもたくさんありました。成長できてありがたやです。超入門とパーフェクトRailsの執筆中の思考の違いは9月にある とちぎRuby会議09 でも少しお話しできたらいいなと思います。(まだ内容を考えてないのでうまくまとまれば・・・)

私の担当は5章、7章、9章で、印象に残っているのはminitestかrspecかを選ぶところで、みんなrspecしか書いたことないのでrspecを選ぶのが無難ではあったのですが、現状だとminitestの方がメリットが大きかろうということでminitestを選びました。Railsアプリのminitestの資料はまだ少ないので、参考にしてもらえたら嬉しいです。書いててたのしかったのは5章のActiveJobやActiveStorageなどのRailsが提供する機能ですね。Railsのコードを読んで、こんなに丁寧にドキュメントがコード内に書かれているのかと(api.rubyonrails.orgの元になっているものです)驚きながら読み進めるのが楽しかったです。

それと、9章で紹介しているGitHub Actions、書き終わったあとにシステムテスト失敗時のスクショを取れると便利と分かったのでここに書いておきます。あと1ヶ月早く気づいたら載せられたのに・・・申し訳ない・・・。

また、koicさんがRuboCopのアフターフォローを書いてくださっていますのでこちらもご活用くださいましたら。

GitHub Actions上で実行したファイルの取得

  • たとえばsystem testが出力したスクショをダウンロードする方法
  • 直接アクセスできないので、upload-artifactアクションを利用してアップロードして、ブラウザからDLします
    • .github/workflow/ruby.yml に以下を追記
...
    - name: Run test
      run: |
        ...

    - name: Upload
      uses: actions/upload-artifact@v2 # 利用するアクションを指定
      if: failure() # 失敗したときだけ実行
      with:
        name: my-uploads
        path: tmp/screenshots/ # uploadするパス(Rails rootからの相対パス)

ほかの方のブログ


2020-07-16 [長年日記]

_ Ruby Associationの法人協賛会員になった

Ruby AssociationはRubyを使う企業と個人が集まった団体。毎年グラントとして採択された人へ開発支援金を支給したり、イベントを開催したりしている。

特に開発支援金は良いプロダクトづくりに活かされているなと毎年感じているので、活動を応援したいと思い2年前から5000円の個人会員になっていた。今年は会社をつくって黒字も出たので、ガーネットテック373株式会社として10万円の法人協賛会員になった。今後も稼いでもっと上のプランの協賛会員を目標にしたい。推し言語Rubyを推していきたい。

https://www.ruby.or.jp/ja/sponsors/list/


2020-06-25 [長年日記]

_ macOSでEmacsが起動しなくなった

  • macOS Catalina 10.15.5
  • Emacs 26.3

起動時に以下のエラーが出るようになった。

Dyld Error Message:
  Library not loaded: /usr/local/opt/libffi/lib/libffi.6.dylib

タイミング的におそらくbrewでgraphvizを入れたのが原因で、DLLが変わってしまったのかもしれない。

  • $ brew reinstall libffi

で次はp11-kit DLLがダメそうなエラーだったので以下も実行。

  • $ brew reinstall p11-kit

直ったよかった。

https://stackoverflow.com/questions/59582101/emacs-stop-working-in-mac-osx-catalina-how-to-fix


2020-06-22 [長年日記]

_ 新型コロナウィルス COVID-19

前回の新型コロナ対応生活日記から2ヶ月経ったのでまた書く。 https://igarashikuniaki.net/diary/20200411.html

5月は4月とそれほど変わらない日々。みんな静かにステイホームしていた雰囲気。飲食店は少しずつ休業のところもでてきていて、お弁当を売る店と休業する店が多かったが、営業してる店もあった。世の中は少しずつ慣れてきて、どうもこういうケースでは感染しなそうだぞというのを学びつつある。換気していて、人が喋らないとある程度人がいても大丈夫そうな感じがしていて、代表例は電車。電車は換気のために窓を開けて運転している。飲食店も積極的に換気している。

5月25日(月)、政府が緊急事態宣言を解除した。その週はみんな様子をうかがっていた感じだったが、翌週6/1(月)から目に見えて人が増えた。緊急事態宣言の前ほどではないが、日常に戻ってきた感。飲食点も営業を再開して、みんなだいたいお弁当も販売していたのでお弁当豊作シーズンだった。

ティッシュもトイレットもふつうに買えるようになっていて、マスクがまだ若干高いものが多いが普通に買えるようになった。ハンドソープがやや品薄だけど、個数制限があるだけでふつうに買える。

仕事はほかの人の話を聞くと減ってる感じがする。私のところは出社しないといけないお客さん週1日を緊急事態宣言中お休みして、ほかの会社さんの仕事を募集したところ埋めることができた。6/5からそのお客さんも出社している。出社は週に1回くらい。また緊急事態宣言が来たらどうするか困る問題がある。在宅勤務はまったく困ることがなく、体力を温存できるので毎朝ランニングもできていて健康。

出社する日数が少ないので少し離れてもいいかと5月から引越しを考えていて、物件をアプリで見たり。6月に入ってから内見もしている。

6/14頃から感染者数が30〜40人超えして第2波くるのかどうかの様子をうかがっている感じ。感染者数は3週間後にフィードバックがきているので、6/14は5/25の3週後だからかも。6/1の3週後、6/22あたりからどうなるのか。接触トラッキングの(おそらくGoogle/Appleの人が提案してた仕様の)cocoaアプリが日本でリリースされた。セキュリティやOSS開発の問題でエンジニア界隈含めてやや炎上していて悲しい。開発者さんに感謝している。


追記