Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

20210501

指向の変化なのか、季節に応じた行動パターンの変化なのか、あるいは脳の使いどころが違うことに由来する逃避の結果なのか、集中して読書できない。本を開いて数ページ読むと、何か別のことが気になる。
これまで、あまりなかったことだが、webでIT系の調べ物、特に英文を読むのには支障がない。結果として、趣味のITが捗っている。

Clear Linux

システム・アップデート

Clear Linuxのイメージをバックアップし、システム・アップデートを実施する。
アップデート後、Gnomeの起動確認を行う。アップデート直後では起動時にエラーを出力する。再起動後に起動すると、いつも通りに動作する。

Rails対応

次のbundleをインストールし、Rails対応できるか確認する。

Clear Linux OS Ubuntu
ruby-basic ruby-full
sqlite sqlite3
nodejs-basic nodejs
c-basic build-essential
devpkg-sqlite-autoconf libsqlite3-dev

Railsインストール中、"websocket-driver-0.7.3"のインストール時にコンパイル・エラーが発生する。次のエラー出力に注目した。コンパイル・オプションが不適切なのではないだろうか。

compiling websocket_mask.c
gcc: error: unrecognized command-line option ‘-mzero-caller-saved-regs=used’; did you mean ‘-fzero-call-used-regs=’?
make: *** [Makefile:245: websocket_mask.o] Error 1

make failed, exit code 2

Makefileの該当箇所を修正したが、Makefileはインストール処理中、動的に生成されるため書き換えは意味がない。

次のサイトで、関連する事柄に触れられている。

1. Change the names of the option and attribute from

  • mzero-caller-saved-regs=[skip|used-gpr|all-gpr|used|all] and zero_caller_saved_regs("skip|used-gpr|all-gpr||used|all”)

to:

  • fzero-call-used-regs=[skip|used-gpr|all-gpr|used|all] and zero_call_used_regs("skip|used-gpr|all-gpr||used|all”)

[ttps://gcc.gnu.org/pipermail/gcc-patches/2020-July/550018.html:title]

Ubuntuでのインストールには問題ないため、Clear Linuxに採用されているgccが新しいことに由来しているのではないだろうか。
環境を再構築し、さらに"sudo swupd bundle-add c-extras-gcc9"を試してみたが、同じエラーが出力された。

🔎エラー出力

wsluser@paulownia~ $ sudo gem install rails
Fetching concurrent-ruby-1.1.8.gem
Fetching zeitwerk-2.4.2.gem
Fetching sprockets-4.0.2.gem
Fetching tzinfo-2.0.4.gem
Fetching i18n-1.8.10.gem
Fetching activesupport-6.1.3.1.gem
Fetching rack-2.2.3.gem
Fetching nokogiri-1.11.3-x86_64-linux.gem
Fetching crass-1.0.6.gem
Fetching loofah-2.9.1.gem
Fetching rails-html-sanitizer-1.3.0.gem
Fetching rails-dom-testing-2.0.3.gem
Fetching rack-test-1.1.0.gem
Fetching erubi-1.10.0.gem
Fetching builder-3.2.4.gem
Fetching actionview-6.1.3.1.gem
Fetching actionpack-6.1.3.1.gem
Fetching sprockets-rails-3.2.2.gem
Fetching thor-1.1.0.gem
Fetching method_source-1.0.0.gem
Fetching railties-6.1.3.1.gem
Fetching mini_mime-1.0.3.gem
Fetching marcel-1.0.1.gem
Fetching activemodel-6.1.3.1.gem
Fetching activerecord-6.1.3.1.gem
Fetching globalid-0.4.2.gem
Fetching activejob-6.1.3.1.gem
Fetching activestorage-6.1.3.1.gem
Fetching actiontext-6.1.3.1.gem
Fetching mail-2.7.1.gem
Fetching actionmailer-6.1.3.1.gem
Fetching actionmailbox-6.1.3.1.gem
Fetching rails-6.1.3.1.gem
Fetching websocket-extensions-0.1.5.gem
Fetching websocket-driver-0.7.3.gem
Fetching nio4r-2.5.7.gem
Fetching actioncable-6.1.3.1.gem
Successfully installed rack-2.2.3
Successfully installed concurrent-ruby-1.1.8
Successfully installed sprockets-4.0.2
Successfully installed zeitwerk-2.4.2
Successfully installed tzinfo-2.0.4
Successfully installed i18n-1.8.10
Successfully installed activesupport-6.1.3.1
Successfully installed nokogiri-1.11.3-x86_64-linux
Successfully installed crass-1.0.6
Successfully installed loofah-2.9.1
Successfully installed rails-html-sanitizer-1.3.0
Successfully installed rails-dom-testing-2.0.3
Successfully installed rack-test-1.1.0
Successfully installed erubi-1.10.0
Successfully installed builder-3.2.4
Successfully installed actionview-6.1.3.1
Successfully installed actionpack-6.1.3.1
Successfully installed sprockets-rails-3.2.2
Successfully installed thor-1.1.0
Successfully installed method_source-1.0.0
Successfully installed railties-6.1.3.1
Successfully installed mini_mime-1.0.3
Successfully installed marcel-1.0.1
Successfully installed activemodel-6.1.3.1
Successfully installed activerecord-6.1.3.1
Successfully installed globalid-0.4.2
Successfully installed activejob-6.1.3.1
Successfully installed activestorage-6.1.3.1
Successfully installed actiontext-6.1.3.1
Successfully installed mail-2.7.1
Successfully installed actionmailer-6.1.3.1
Successfully installed actionmailbox-6.1.3.1
Successfully installed websocket-extensions-0.1.5
Building native extensions. This could take a while...
ERROR:  Error installing rails:
        ERROR: Failed to build gem native extension.

    current directory: /usr/lib64/ruby/gems/2.7.0/gems/websocket-driver-0.7.3/ext/websocket-driver
/usr/bin/ruby -I /usr/lib64/ruby/site_ruby/2.7.0 -r ./siteconf20210501-269-i6t9t2.rb extconf.rb
creating Makefile

current directory: /usr/lib64/ruby/gems/2.7.0/gems/websocket-driver-0.7.3/ext/websocket-driver
make DESTDIR\= clean

current directory: /usr/lib64/ruby/gems/2.7.0/gems/websocket-driver-0.7.3/ext/websocket-driver
make DESTDIR\=
compiling websocket_mask.c
gcc: error: unrecognized command-line option ‘-mzero-caller-saved-regs=used’; did you mean ‘-fzero-call-used-regs=’?
make: *** [Makefile:245: websocket_mask.o] Error 1

make failed, exit code 2

Gem files will remain installed in /usr/lib64/ruby/gems/2.7.0/gems/websocket-driver-0.7.3 for inspection.
Results logged to /usr/lib64/ruby/gems/2.7.0/extensions/x86_64-linux/2.7.0/websocket-driver-0.7.3/gem_make.out


GitHubでのissue報告

Clear Linux OSへのRailsインストール中に生じるエラーについて、GitHubへissueをレポートしてみた。初めての体験だ。初心者期間特有の緊張感を感じる。

  • この対応方法で合っているのか
  • この書き方で合っているのか

おそらく次のことを無意識に考えている、前提としていることの反映なのだろう。

  • 何かと、失敗することなく、うまくやろうとしている
  • 失敗しても良いのだが、しなくて済むなら、そのほうが良い

Ruby on Rails に貢献する方法 - Railsガイド

MID導入

必要なaptパッケージに含まれるファイルを調べる。

dpkg -L update-manager
dpkg --contents apport_2.13.2-0ubuntu4_all.deb

第312回 パッケージとより良いお付き合いをするための情報収集 | gihyo.jp

ファイルが含まれるbundleを調べる。

sudo swupd search-file

https://docs.01.org/clearlinux/latest/reference/manpages/swupd.1.html

ブログのCSS、detailsタグ

Microsoft Clarityで訪問者の挙動を確認していると、detailsタグの折り畳み箇所への反応が限定的な気がしていた。具体的には、

気付いていない 反応しない 素通り
気付いている 無視 素通り
クリック 目的の反応

素通りするものが少しでも反応するように、ホバー時にカーソルとポインターにしてみたり、背景色を変化させたりしたのだが、それでも効果がなさそうに見える。
特に文書を読む気がなく、スクリーンショットやコードにのみ反応して、目的とする情報の有無を判断する訪問者は、直ちに離脱しているようだ。このような訪問者に対しては、そのソリューションは全く効果がない。

detailsタグのデフォルトを開放状態にすると同時に、CSSに色変化の処理を実装した。