47 日目(晴れのち雨)祝ゲーセン再起動
0:00 無音にしているテレビから久米田アニメが始まる。 話の筋がわからないが、以前昼に観たときには誕生日会の話を主人公の娘がしていたのを思い出してなんとか想像する。 そしてオープニングとエンディングのセーター服娘が本編の最後のシーンに出てきて驚く。
寝て 7:00 に目が覚める。2 の付く日なのでシーツを洗濯する。勝手に決めた。 朝飯を食う。納豆とレーズンロール。
あっという間にスッキリ。
Advanced Bash-Scripting Guide を読む。
10:30 過ぎに室内が明らかに暑くなる。これはまずい。ここにいても意味がないので外出。 三省堂を経由して業平へ移動。
11:45 ビッグエー墨田業平店で昼食を調達。213 円。
- 大きなおむすび鮭
- 大きなおむすびツナマヨ
オリナス錦糸町一階を通行していたら、タイトー F ステーションオリナス錦糸町店が再開しているのに遭遇する。 さすがにこれは見逃せないので、いったん店内を見て回る。電源の入っていない機械もあるが、ひとまず営業している。 また後で来よう。
12:20 ハローワーク墨田。求人に異状なし。
オリナス錦糸町の噴水前ベンチでおにぎりを完食してゲーセンに直行する。 とりあえず 2 クレだけ遊ぶ。MJ とビートマニア。 なんでこんな真っ昼間に極天位、つまり R 2300 超えのバケモノと同卓するのか。
そろそろ携帯電話を買わないといけないのだが、店の前に来ると気が乗らないのでやめる。
15:35 カスミオリナス錦糸町店で晩飯を買う。八宝菜丼。336 円。 外に出たら直射日光がひどいので、リュックの中にある北区銭湯トートバッグを取り出す。
横川コミュニティー会館図書室に寄ったら開館しているので入館する。 体温をとられたがよい。空いている。安牌ということで朝日新聞と文藝春秋を読む。
16:40 ビッグエー墨田業平店で食料を買う。205 円。
- 絹豆腐 (3)
- パンケーキメープル&マーガリン
- テーブルロール (5)
そういえばスカイツリータウン外側にも携帯電話ショップがあるなと思いつつ向島に戻る。 シーツを物干し竿から取り込んで元に戻す。あまりにも暑いのでシャワーを浴びる。 左股間のアセモがひどい。インキンじゃない。
18:30 から 30 分居眠り。晩飯を食う。白菜がもりだくさんでよい。
19:45 電話ボックスへ移動。インターネットに接続してボンバーガールのまんがなどを見る。 用事が終わって外へ出たらちょうど雨が降り出す。部屋に戻る。
21:00 風呂から出てテレビを観る。日テレだけでなく NHK にもゲーセンミカドが出演している。
麻雀のプログラミングの練習としてジャンケンを実装する。人間と CPU の一対一。
ただこれは 2 スレッドの join だけで済むから習作たり得ない。
23:30 消灯。
Programming Notes
引き続き Advanced Bash-Scripting Guide から得た知識を記す。 いまさらだが、こういうメモは PDF に直接書き込むほうがいいのかもしれない。
- Chapter 18 Regular Expressions
- Bash に正規表現マッチ機能
=~が組み込まれている。 Python でいうとre.match()よりもre.search()に似ている。 - 空白文字を含むファイル名を牽制するために
IFSから空白文字を一時的に除去しておく。 例えばIFS='$(printf "\t\n")'
- Bash に正規表現マッチ機能
- Chapter 19 Here Documents
- この機能は一時ファイルを生成する。
<<-というタイプもある。行頭のタブ文字を無視するようになる。<<<は変種で、展開されたあとにコマンドの標準入力にされる。
- Chapter 20 I/O Redirections
: >filename何も出力しないコマンドを実行すればファイルは空になる。&>filenameは stdout と stderr の両方をファイルにリダイレクトする。2>&1は stderr を stdout にリダイレクト2>&1 | commandの意味で2>&1 | commandと書ける。
- リダイレクトの指定しかしない
execを書ける。 <&-,>&-でリダイレクトを閉じる。入力と出力で記号が異なる。exec >&nと素の>&nのスコープの違いに注意。- 関数を含むコードブロックとリダイレクトとを組み合わせられる。
- Chapter 21 Subshells
- サブシェルは子プロセスだ。
- 丸括弧によるコマンド列はサブシェルを形成する。
- サブシェルの変数は親プロセスからは見えない。
-
サブシェルとバックグラウンド実行を使って並行処理ができる。
(commmand1 ... > file1) & (commmand1 ... > file2) & wait command2 file1 file2
- Chapter 22 Restricted Shells
set -rでいつでも制限モードにできる。
- Chapter 23 Process Substitution
diff <(command1) <(command2)のような機能。一時ファイルを著しく減らせる。-
<が空白を挟んで続く場合がある。コードブロックのリダイレクト機能と組み合わせるときだ。while read des what mask iface; do # Some commands ... done < <(route -n)
- Chapter 24 Functions
- 空の関数を定義することはできない。
- 関数を入れ子にして定義することができる。 一見便利なようだが、いったん外側の関数を呼び出すとそれ以降内側の関数を呼び出すことが可能になる。したがって便利ではない。
returnは 0 から 255 までしか返さない。- 再帰関数を定義することができる。私は書かないが。
- Chapter 25 Aliases: 特になし
- Chapter 26 List Constructs
-
and-list と or-list の二種類があると言っている。すなわち
command1 && command2 && ... command1 || command2 || ...
-
- Chapter 27 Arrays
- 配列の初期化のやり方を複数習う。
- 配列要素の参照を習う。中括弧が必ず要る。
- この章は長過ぎる。