スクリプト言語のなかで、Ruby を独立させた。日本人の仕事の検証の一環だ。 なお、最近の書き物はRubyの浮き輪に譲る。
全部を読んでいないのでなんともいえませんが...。私にはこの程度のユーモアが合います。
私は Ruby を全く知らない。ではなぜこの本を買ったかというと、立ち読みしたところ 「Word や Excel の処理を自動化する」という内容があったからだ。 「」内のことはぜひともやってみたいと思っている。 買ってきた後で気付いたのは、どうもほいほいと始められるしろものではなく、 いろいろな準備をしなければいけないようだ、ということだった。 だいたい職場の環境は Windows 95 + Office 2000 である。 自宅は Windows 95 + Office 95 が一台と Windows 98 + Office 95 が一台あるだけだ。 自宅に Windows 2000 + Office 2000 を入れるというまねはしたくない。 だからこの本は、当面役に立ちそうにない。すいません。
ちかぢか Ruby で CGI プログラミングができそうな環境が整いそうなので、 この本が参考になるだろうかと思った。結論からいえば参考になりそうではあるが、 ちょっと書き方がひどく、校正も充分になされていない。 巻末にある用語集もどこまでわかって書いてあるのか疑わしい(というのも校正の 程度から知れるのみであるが)。
この本を実例を通して読み通すには10時間かかるだろうと想定した。 事実、Kondara/MNU Linux と Ruby を使ってコードを書きながら読んでみたら、 3時間 x 3 日かかった。 なんとか読み通せたから、自分でも使ってみることができるのではないかと目論んでいる。 ちなみに、この本にある「ないよりはまし」という精神は、私は好きだ。
誤植が一つ。p.201の最終行は } ではなく、end である。
著者の名前をどこかで見たことがあると思ったら、「達人プログラマー」の著者たちだった。 彼等の筆致は心地よい。楽しんで書いている姿が伝わってくる。 例も個人的に好きだ。アメリカのジャズの例が多いからだ。 構成もいい。いわゆる手続き型言語の3要素である連接、選択、反復より前に(連接は仕方ないけれど) オブジェクトの扱いを先にもってくるあたりは流石だ。 まだ全体を読んでいないが、達人になれるだろうか。
誤植は次の通り。
p.29 | 整数部分と少数部分 | 整数部分と小数部分 |
p.163 | was the command line | was the command line |
p.293 | Fotran や QW-Basic で | Fortran や QW-Basic で |
RD や RDTool についての説明である。私は、手っ取り早く html 文書を作る時に使っている。
実はあまり使っていない。これから役に立ちそうなのだが。
終わりにあるスクリプトがうまく動かなかったこと以外は、 GUI についての原理がよくわかり、面白く使えた。 あとは、実際に動くものを作ってみることができるかどうかだ。
Windows Subsytem for Linux (WSL) へのインストールである。WSL2 ではないので注意。
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(rbenv init -)"' >> ~/.bashrc $ source ~/.bashrc $ mkdir -p "$(rbenv root)"/plugins $ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build $ sudo apt install build-essential libssl-dev libreadline-dev zlib1g-dev $ rbenv install --list 2.5.8 2.6.6 2.7.2 jruby-9.2.13.0 maglev-1.0.0 mruby-2.1.2 rbx-5.0 truffleruby-20.2.0 truffleruby+graalvm-20.2.0 Only latest stable releases for each Ruby implementation are shown. Use 'rbenv install --list-all' to show all local versions. $ rbenv install 2.7.2 Installing ruby-2.7.2...
ここで応答がない。30 分ぐらい待ってみてもうんともすんとも言ってこない。
$ rbenv --debug install 2.7.2 (中略) + [rbenv-install:208] ruby-build 2.7.2 /home/username/.rbenv/versions/2.7.2 Installing ruby-2.7.2...
ダメじゃん。
^C BUILD FAILED (Ubuntu 20.04 using ruby-build 20201005-4-g4761049) Inspect or clean up the working tree at /tmp/ruby-build.yyyymmddHHMMDD.nnnnn.JcoqLs Results logged to /tmp/ruby-build.yyyymmddHHMMDD.nnnnn.log Last 10 log lines: checking for __sync builtins... yes checking for __builtin_unreachable... yes checking for exported function attribute... __attribute__ ((__visibility__("default"))) checking for RUBY_FUNC_NONNULL function attribute... __attribute__ ((__nonnull__(n))) x checking for function name string predefined identifier... __func__ checking if enum over int is allowed... yes checking whether sys_nerr is declared... yes checking whether getenv is declared... yes checking for size_t... yes checking size of size_t... ++ [rbenv-install:1] cleanup ++ [rbenv-install:201] '[' -z '' ']' ++ [rbenv-install:201] rm -rf /home/username/.rbenv/versions/2.7.2 + [rbenv-install:208] STATUS=1 + [rbenv-install:211] '[' 1 == 2 ']' + [rbenv-install:239] '[' 1 == 0 ']' + [rbenv-install:242] cleanup + [rbenv-install:201] '[' -z '' ']' + [rbenv-install:201] rm -rf /home/username/.rbenv/versions/2.7.2 + [rbenv-install:245] exit 1
困ったなあ。そういうからには /tmp/ruby-build.*.log を見てみよう。 するとおびただしい量のログがあった。 このログの中には個別の処理結果が入っているのだろう。 ということは、処理の経過は蓄積されたログを見ればよいのに違いない。
$ rbenv install 2.7.2 & $ cd /tmp
ここで一番最近作成された ruby-build.yyyymmddHHMMDD.nnnnn.log ファイルを探す。このファイルはログなのだから、 仕事をしている最中はログを出力し続けているだろう。 その出力の様子を見ることができれば安心する。このようなときのための、 tail -f である。
$ tail -f ruby-build.yyyymmddHHMMDD.nnnnn.log
どうやらコンパイルするためのいろいろなチェックをしているらしい。
(前略) checking for bar... yes checking for foo... no (後略)
これが終わるとコンパイルである。
(前略) compiling symbol.c compiling thread.c (後略)
コンパイルは延々と続く。しかし、何も応答がなかった不安から解放されたのは大きい。
さらにリンクなども実施された後、なんだかわからないまとめが表示される:
Files: 1142 Classes: 1614 ( 758 undocumented) Modules: 327 ( 134 undocumented) Constants: 2436 ( 727 undocumented) Attributes: 1489 ( 559 undocumented) Methods: 13029 (3996 undocumented) Total: 18895 (6174 undocumented) 67.32% documented Elapsed: 100.9s
これで終りかと思いきや、怒涛のインストールが開始される。
installing binary commands: /home/username/.rbenv/versions/2.7.2/bin installing base libraries: /home/username/.rbenv/versions/2.7.2/lib installing arch files: /home/username/.rbenv/versions/2.7.2/lib/ruby/2.7.0/x86_64-linux installing pkgconfig data: /home/username/.rbenv/versions/2.7.2/lib/pkgconfig installing extension objects: /home/username/.rbenv/versions/2.7.2/lib/ruby/2.7.0/x86_64-linux installing extension objects: /home/username/.rbenv/versions/2.7.2/lib/ruby/site_ruby/2.7.0/x86_64-linux installing extension objects: /home/username/.rbenv/versions/2.7.2/lib/ruby/vendor_ruby/2.7.0/x86_64-linux installing extension headers: /home/username/.rbenv/versions/2.7.2/include/ruby-2.7.0/x86_64-linux installing extension scripts: /home/username/.rbenv/versions/2.7.2/lib/ruby/2.7.0 installing extension scripts: /home/username/.rbenv/versions/2.7.2/lib/ruby/site_ruby/2.7.0 installing extension scripts: /home/username/.rbenv/versions/2.7.2/lib/ruby/vendor_ruby/2.7.0 installing extension headers: /home/username/.rbenv/versions/2.7.2/include/ruby-2.7.0/ruby installing rdoc: /home/username/.rbenv/versions/2.7.2/share/ri/2.7.0/system
終わるのだろうか。次の表示が最後で止まった。
minitest 5.13.0 net-telnet 0.2.0 power_assert 1.1.7 rake 13.0.1 test-unit 3.3.4 xmlrpc 0.3.0 /tmp/ruby-build.20201102171548.25551.HFCO7l ~/.rbenv/bin ~/.rbenv/bin
^C を打ってみた。もういいだろう。
^C[1]+ 終了 rbenv install 2.7.2 (wd: ~/.rbenv/bin) (wd now: /tmp)
バックグラウンドに回していた処理が終わったことがわかった。 よかった。1時間は要したような気がする。
まりんきょ学問所 > コンピュータの部屋 > コンピュータの本 > Ruby に関する本