そろそろテザリングの回線が細くなる残量なのでファイル蒐集。 久しぶりに curl が有効な状況になるが、WSL のそれが壊れているまま 半年放置していた。それを解決しよう。

ubuntu - curl: symbol lookup error: curl: undefined symbol: curl_url_cleanup - Stack Overflow によると、不適切なディレクトリーにある *curl* を削除せよとある。

bash$ whereis curl
curl: /usr/bin/curl /usr/local/bin/curl /mnt/c/WINDOWS/System32/curl.exe /usr/share/man/man1/curl.1.gz
bash$ /usr/bin/curl -V
/usr/bin/curl: /usr/local/lib/libcurl.so.4: no version information available (required by /usr/bin/curl)
/usr/bin/curl: symbol lookup error: /usr/bin/curl: undefined symbol: curl_url_set, version CURL_OPENSSL_4
bash$ sudo apt remove --auto-remove curl

# 省略

bash$ whereis curl
curl: /usr/local/bin/curl /mnt/c/WINDOWS/System32/curl.exe
bash$ curl -V
-bash: /bin/curl: そのようなファイルやディレクトリはありません
bash$ which curl
/usr/local/bin/curl

この出力がおかしいことを教えている。以前 CMake の学習をしているときに /usr/local/bin に自分でビルドした curl をインストールしたかもしれない。

bash$ ls -l /usr/local/bin/curl
-rwxr-xr-x 1 root root 243K 2020-12-23 21:44 /usr/local/bin/curl*

bash$ sudo apt install curl

# 省略

bash$ sudo apt reinstall libcurl4

# 省略

bash$ which curl
/bin/curl
bash$ curl -V
curl: /usr/local/lib/libcurl.so.4: no version information available (required by curl)
curl: symbol lookup error: curl: undefined symbol: curl_url_set, version CURL_OPENSSL_4
bash$ sudo rm -rf /usr/local/bin/curl*
bash$ ls /usr/local/lib/*curl*
/usr/local/lib/libcurl.a    /usr/local/lib/libcurl.so@    /usr/local/lib/libcurl.so.4.5.0*
/usr/local/lib/libcurl.la*  /usr/local/lib/libcurl.so.4@
bash$ which curl
/bin/curl
bash$ ldd /bin/curl
/bin/curl: /usr/local/lib/libcurl.so.4: no version information available (required by /bin/curl)
        linux-vdso.so.1 (0x00007ffffc1a9000)
        libcurl.so.4 => /usr/local/lib/libcurl.so.4 (0x00007f445fdee000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f445fdd2000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f445fdaf000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f445fbbd000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f445fe9f000)
bash$ whereis curl
curl: /usr/bin/curl /mnt/c/WINDOWS/System32/curl.exe /usr/share/man/man1/curl.1.gz
bash$ sudo rm -rf /usr/local/lib/*curl*
bash$ curl -V
curl 7.68.0 (x86_64-pc-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
Release-Date: 2020-01-08
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS brotli GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets

これでよし。しかしファイルのダウンロードはもう手動で済ませているのだった。

2:30 兄は夜更け過ぎに~のビデオを検索して寝る。

7:05 起床。納豆とピザパンを食す。出勤。

7:45 現場。やはり電子レンジが粗大ゴミとして戻ってきた。取り込んで可燃ゴミを出しまくる。 掃除機を抱えて館内を吸い込みまくる。ケーブルが長くて重い。

10:05 本部に粗大ゴミの件を電話で報告。撤収。

10:25 ビッグエー墨田京島店。267 円。

  • おむすび梅おかか
  • 絹豆腐
  • しょうゆヌードル
  • コッペパンホイップ&チョコ

イトーヨーカドー曳舟店。体温チェックとトイレ。

曳舟の部屋。洗濯物を洗濯機にブチ込んで運転開始。PC を起動。時間つぶし。

もう一回 The Book of Shaders 前半の章をチェックして、読者ができるようになることを確認する。

  • 断片シェーダーのみで背景をベタ塗りする方法
    • vec4, vec3, float, int, RGBA などの基本事項各種
    • precision {highp,mediump,lowp} float; のような宣言が必要であること
  • uniform 変数
    • キャンバスサイズ、マウス位置、時刻などをこの変数で処理すること
    • GLSL がハードウェア加速されている角度、三角関数、指数関数を用意していること。
      • これらの関数の合成をどうすればいい感じになるのかを知ることを読者任せにしている。
  • ベクトル gl_FragCoord の意味
    • このベクトルをキャンバス解像度で除算すれば、正規化された座標が得られる。
    • キャンバスの座標系の向き
  • 線形グラデーション塗り
  • マウス位置、時刻を参照してカラーパターンを変化させる手法

11:15 洗濯物を干し、PC を閉じて昼寝。

14:15 起床。おやつ。PC を開く。昭和歌謡を何曲か聴く。

14:50 PC を閉じて外出。

押上駅バス停。バスを待っていると冴えない中年男子が佇んでいる。 もしかして……と思って到着したバスに乗るところを見つめているとビンゴ。 私と同じ定期券を持っている。同志だな。

錦糸町駅前。真っ直ぐハローワークへ向かうしかない。

15:20 ハローワーク墨田。まずは求人検索。三社ぶんの求人票を新たにストックする。 そして、ストックの中から行けそうな仕事の紹介状をゲットするべく受付で窓口を依頼。 二社応募しようとするが、そのうち一つについて目ざとい職員が私の「必要な経験等」の項目を検査。断念するハメになる。

紹介状一社ぶんを携えて二階ベンチへ。携帯電話で写真を撮影、画像編集。 さらにトイレを利用して腸の中身をまだまだ出す。

16:25 退庁。錦糸町駅バスターミナルへ移動。しかし一足遅くバスが出てしまう。 徒歩で住吉駅へ向かう。新宿線のほうに乗って小川町駅へ移動だ。

夕方、秋葉原 HEY 二階に到着。イルベロの隣がドラゴンスピリットになっている。 フェリオスとどっこいどっこいか。とりあえずイルベロをワンゲーム。いきなり二鍵ミスか。

17:55 小諸そば昌平橋店。380 円。二枚盛り大盛り。

再び HEY に戻る。イルベロ、ノスフェラトゥ、ビートマニアをそれぞれワンクレかそれ以上プレイ。 今日のゲーム台は合計 700 円。しかしノスフェラトゥの最初のボスは何とかならないのか。 3 ダメージを与えて突進してきたのには参る。自機とのスピード差があり過ぎる。 このゲーム設計者はビデオゲームを遊んだことがあるのか?

20:20 イルベロの最後のゲームが 96 億点で、しかもまだ伸びそうだ。良い感触を持ったので退店。 小川町へ移動して押上駅に戻ることにする。

21:20 曳舟の部屋。入浴。湯に浸かっていると証明が明滅し始める。 まあブラックアウトということはあるまい。と思っていたら電球が切れる。 風呂を出て目の前の流しの蛍光灯を点ける。こういうこともあろうかと普段は点灯しない照明なのだ。 入浴を再開。なんとかルーチンを終える。

22:00 PC 起動。甘いものを食いながら作業をする。 求人応募作業が控えているところ、軽く麻雀の練習をして気分転換。

つぐないを聴きながら応募作業。

22:40 インターネットに接続したまま調べ物やら学習やら YouTube 垂れ流しやら。

やはり The Book of Shaders の神髄は Shaping functions の章だろう。 読者が習得できる技術を記す。

  • $y = f(x)$ のプロットをシェーダーで描くこと
    • 欲を言うと GLSL 関数 mix にも言及して欲しい。
  • You will come back over and over to this space between 0.0 and 1.0.
  • 関数 pow(x, y)

続く。