て日々

2017年1月


2017年1月31日(火)はれ

3年生ゼミ最終日。高崎金久『学んでみよう!記号論理』(日本評論社, 2014年)の第11講まで読んだ。まあまあのペースだが、学生さんたちにとって得るものはあっただろうか。

昨日ピアノの帰りにコンビニで「ナンプレ」の雑誌を買った。(「数独」は 株式会社ニコリ の登録商標だからね。)この雑誌に300も掲載されている数独問題を自分で解こうというのではない。解法プログラムを自作しようとしているのだけど、問題がなかったら解法があっても仕方がない。つまりプログラムのテスト用に問題が必要というわけだ。ちょっと試してみたところ「現在の数字の配置からすると、このセルに入る数はこれしかない」「現在の数字の配置からすると、この数字を置く場所はこの行/列/ブロックにはここしかない」という直接的な単細胞な判断の繰り返しだけでも、初級の問題なら解けてしまうようだ。だが、上級の問題となるとそうはいかないので、なんらかの工夫が必要だ。


2017年1月30日(月)くもり

午後、例によって卒研ゼミ。幾何に関連した発表なのだが、黒板に定規とコンパスでイチから作図している時間はない。それで、先に模造紙に図を描いたものをもっていこうという話になる。模造紙に円を描かねばならないのだが、通常のコンパスでは小さすぎる。それでどうするかは、本来ならば学生さんたちが考えることなのだが、指導教員としても、厚紙と画鋲と消しゴムを使って半径30cmの円を描く工夫をしてみた。

circle20170130
こんなふうにやればいいんじゃない? とゼミで提案

やってみると案外綺麗に描けたが、それより、寸足らずの三角定規を使って三角形の垂心を見つける操作が難しかった。

夕方はピアノのレッスン。フォルテが乱暴になりがちなのを注意される。高い位置から振り下ろすとキツい音になりがちなので、指が鍵盤に触れるくらいの位置から打鍵するといい、とのこと。


2017年1月29日(日)くもり

あまり天気がよくないが、妻とセガレと連れだって徒歩で外出。ムスメは図書館に出かけた。セガレを連れて出たのは、4月から中学生になるセガレに中学校までの通学路を教えるためだ。俺の職場のすぐ近くにあるこの中学校までは、俺の足だと、通常35分ちょっと、超特急で30分だが、今回は妻のペースに合わせて歩いて、家から45分というところだった。身体の小さいセガレが中学校特有の大きな荷物を背負って歩くことを考えると、始業時刻の1時間前を目安に出発すべきだな。

そのあと大学まわりと平和通りを散歩して、古町でムスメと合流し、辻町の「かめ福」で昼食。歩いて帰宅。3時間ちょっと歩いたので疲れて昼寝してしまい、ピアノ教室の講師コンサートには行けずじまい。先生ごめんなさい。


2017年1月28日(土)くもり

このごろの常として明け方の妙な時間に目がさめる。そうするとなかなか寝つけないので、水曜日に考えていた閉凸集合の問題について考える。放物線の上側 \(A=\{\,\langle x,y\rangle\in\mathbb{R}^2:y\geq x^2\,\}\) と交わらない任意の閉凸集合 \(B\subseteq\mathbb{R}^2\) について \(A\) と \(B\) の間の距離が正であること \[ \inf\{\,\|\mathbf{p}-\mathbf{q}\|:\mathbf{p}\in A, \mathbf{q}\in B\,\}>0 \] が証明できた。結果として \(A\) と \(B\) を分離する直線が引ける。証明のポイントは \(A\) の外部の任意の点から \(A\) に接線が引けるということにあった。

夜が明けてみると、心配していた天気はそれほど崩れていなかった。きょうは入試業務のため出勤。


2017年1月27日(金)はれ

昨日までと比較するとずいぶん暖かい日だが、午後から雲が多くなってきた。どうやら天気は下り坂のようだ。

okumurabook20170127

TeXユーザ必携の虎の巻の最新エディション、奥村晴彦・黒木裕介著『[改訂第7版]LaTeX2ε美文書作成入門』(技術評論社2017年)を大学生協で購入。俺は時々TeXを教える側に回ったりもするから、この本も改訂されるたびに買っている。内容がアップデートされるだけでなく、毎回デザインも新しくなり、版を重ねるごとに美しく読みやすくなっているのがすばらしい…と言おうと思ったけど、印刷は第6版のほうが綺麗だったかも。デザインがどうとかいうより、今度の版は紙質がよくないのではないかと思う。ここだけの話だけど。あと、この版でようやく、コントロールシーケンスの表記が ¥nantoka ではなく \nantoka になった。これだけでも、ずいぶん見た感じが変ってくるもんだ。


2017年1月26日(木)はれ

寒いながらも気持ちのよい晴天だった。卒業研究ゼミは例によって発表会の準備だが、卒業を控えたゼミ生たちに、たくさんの事務連絡があった。Cooper本講読ゼミは、院生2名が欠席のため俺と510くんで先の第8章の準備がてら少しディスカッションをして終わった。

昨日のぶんの「て日々」に挿入する図版を作るために、久々にAsymptoteのマニュアルを参照した。以前はiPadのGoodReaderにPDFを入れてあったのだけど、実際にAsymptoteを使うのはパソコンに向かっているときであり、パソコンにインストールされたTeX Liveには texdoc というユーティリティが含まれている。Perl処理系にも似たユーティリティ(perldoc)があるが、コマンドラインから、たとえば texdoc asymptote と入力すれば、AsymptoteのマニュアルのPDFファイルが開く仕掛けになっている。GoodReaderに自分で入れたファイルは古くなる怖れがあるが、texdoc なら、そのときコンピュータにインストールされているソフトウェアのバージョンに合わせたPDFが開くわけだから、その心配はない。便利である。

TeX Live を使ってる人は、ためしにコマンドラインから texdoc sudoku とやってみるよろし。ほかにguitarパッケージとかpianoパッケージとかもある。TeXの世界は思いのほか広い。


2017年1月25日(水)はれ

「数学科お茶会」に行ったら、以前に出題した凸集合の問題の発展の話題になって、夜7時まで議論が続いた。

元の問題は案外なんでもなくて「ユークリッド平面 \(\mathbb{R}^2\) の閉凸部分集合 \(C\) と、\(C\) に属さない点 \(p\) があったとき、\(p\) を通り\(C\) の点をひとつも通らない直線が存在することを示しなさい」だ。

fig20170125-01

少し考えると、点 \(p\) をコンパクト凸集合 \(K\) に置きかえて、\(K\) と \(C\) を分離する直線が引けることもわかる。

fig20170125-02

では、互いに交わらない二つの閉凸集合 \(A\) と \(B\) がいつでも直線で分離できるかというと、そうはいかなくて、たとえば不等式 \(y\geq 1/x>0\) で決まる集合を \(A\) とし下半平面 \(y\leq0\) を \(B\) とすると、どんな直線も \(A\) か \(B\) の少なくとも一方と交わってしまう。

fig20170125-05

ではどんなときにふたつの閉凸集合が直線で分離できるのか、という問題が当然立てられるわけだが、皆で頭をひねっても、これがわからなかった。

上の集合 \(A\) の場合のように、双曲線には漸近線というものがあり、双曲線の上側と漸近線の下側を考えると、交わりのない2つの閉凸集合が直線で分離できない例になる。いっぽう、放物線の上側も閉凸集合だが、放物線には漸近線はないし、交わらない閉凸集合とは、直線で分離できるように思われる(けど、俺にはまだ証明できてない証明できた。28日土曜日の日記を参照)。だから、放物線の上側と双曲線の上側というのは、凸集合としての性質の違いがあるのだが、その違いは両者の形からはイメージしがたい。

fig20170125-03
放物線とその上側

fig20170125-04
双曲線とその上側


2017年1月24日(火)くもり

『数学ガール』シリーズの作者である>結城浩さんの出しているメールマガジンを講読している。毎週火曜日朝7時に「コミュニケーションの心がけ」と「書くという仕事について」を軸にした随想や活動報告などなど盛りだくさんな内容のメールが届くのだ。きょう届いたメールマガジンには、《モバイルルータを解約した》とか《iOS版の日本国語大辞典を買っていろいろ試してみたら面白かった》といった四方山な話に混じって《極端な主張を支持したくなったら、主張の真偽より「自分の生活」や「心の健康」を再確認したほうがいい》という提言があった。俺もついついオール・オア・ナッシングな発想になりがちなので、なんとも身につまされる話だった。


2017年1月23日(月)くもり

きょうもとても寒い。引き続き、難しいよーわからんよーとブツブツ言いながらTeXbookを読む。卒業研究ゼミと、それから工学部の新任の先生の数学談話会があった。夜にはピアノのレッスン。

来年度の大学院の特論講義が第4クォーターにあるのだが、制度上、この1月末までに1年分のシラバスをすべて提出しなければならない。つまり、いまの段階で授業計画があらかた立っていないといけない。それほどレパートリーは多くないが、それでも何かこれまでと違った題材を、と思い、Computability Theoryの入口のあたりをやることにした。再帰的関数を含むいくつかの計算モデルを紹介し、それらの計算する関数の範囲の同値性から、チャーチ&チューリングの提唱へ進む。そして停止問題の決定不可能性をいう。そのあとは応用編で、群の語の問題かヒルベルトの第10問題か、少々迷ったが、まあ群の語の問題をやろう、という計画にした。

2013年9月に「数理論理学ゼミ合宿」をやって以来、計算可能性の問題は自分にとっての宿題になっている。というのも、あのときに書いた講義資料では、計算モデルとして小規模な手続型プログラミング言語を提示していたのだが、準備不足と力量不足で、その言語のプログラムで計算できる函数が再帰的函数であることの証明が書けなかったのだ。一度はこの計算モデルについて、再帰的函数のクラスとの同等性の証明を書き切ってしまうべきだと思っている。

いや、そこだけじゃなくて、全体に手を入れて、あの講義資料を人前に出せるものにしたい。そして、そういうものは2007年のサマースクールの資料などなど、他にもあるのだ。わはははは。生きてるうちになんとかせにゃならんぞ。

昨年5月に出版された高橋正子先生の新しい本『コンピュータと数学』(朝倉書店, ISBN978-4-254-11752-3)の第1章では、単純なフローチャート・プログラムであるNプログラムと、俺がゼミ合宿講義資料に書いた言語のサブセットである while プログラムという二つの計算モデルを比較して、その同等性を示している。俺の提案した計算モデルはもう少しだけ拡張されているし、そもそも意味論的に曖昧な点をたくさん残しているので、同じようにはいかないのかもしれないが、だからといって計算可能な函数の範囲が変わることは考えられない。曖昧な点をハッキリさせて決着をつけてしまいたい。先日からRubyでパーサを書いてみたりしている背景には、まあそういう動機があるのだった。

この来年度の特論講義、基本部分の準備をちゃんとしておけば、後半の応用編をいろいろ差し換えてレパートリーを増やせると思うので、ひとつ頑張ってみよう。


2017年1月22日(日)くもり

雨が降ったり日が差したり、どうも天気が安定しない。朝食にムスメがオムライスを作ってくれた。昼食は俺がさぬき麺心の生フェットチーネを茹でた。ソースは出来合いのものだが、ミートソースとあさりコンソメの2種類にした。なんだかんだで3日間風呂に入っていなかったので、昼日中に風呂に入り、ヒゲを剃り爪を切ってリフレッシュ。といっても、どこかに出かけるということもなく、家でグータラしていた。


2017年1月21日(土)はれ

TeXのプログラミングの勉強なので、Rubyでやった«99 bottles of beer»と«FizzBuzz»をTeXのコードで再現してみた。

99bottles-tex-20170121
LaTeXで書いた«99 bottles of beer»
fizzbuzz-tex-20170121
plainTeXで書いた«FizzBuzz»

どちらも、できてしまえばどうということのないものだが、組版専用マークアップ言語としてのTeXの仕様のおかげで、汎用プログラミング言語とは違った配慮が必要になる。たとえば、FizzBuzzのコードの10行目は

\advance\countmodfive by 1 \ifnum\countmodfive=5 \countmodfive=0 \fi

(スマホユーザは悪いけど横スクロールして読んでね)となっている。この行が実行されるたびに \countmodfive というカウンタの値が 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0,… と循環するようにしているわけだが、この行を

\advance\countmodfive by 1 \ifnum\countmodfive=5 \countmodfive=0\fi

と変更すると、それだけでもう動作がおかしくなる。その理由がわからなくて小一時間悩んだが、これは、たとえ \ifnum 構文の中でも、数字のゼロだけでは数値の表現が完結せず、処理系がトークンの区切りを求めてコードを読み進めるという仕組みのせいらしい。だから、ゼロのあとに空白をひとつ置くだけで解決したのだった。C言語やJavaScriptのような汎用プログラミング言語で、行末のセミコロンの前に空白を置いて

printf("Hello, World\n") ;

なんてやったらカッコ悪くて仕方がないのだが、TeXの言語はデータの途中にコードを混在させるマークアップ言語であり、しかもここで入力しているコマンドは最終的にテキストデータに置換されるべきものなのだから、そういうことは言ってられないのだった。


2017年1月20日(金)くもり

冷たい風が吹いてひどく寒い。なんでも、愛媛県中予地方には暴風雪警報が出ているとか。

一昨日言ってた、学位論文要旨をLaTeXで入力するためのテンプレートは、どうにか使える程度のものになった。もっとも、俺は今年度は大学院生をもっていないので使い道がない。他の先生たちにメールで知らせた。

様式の使用例
乱歩の『二銭銅貨』をサンプルに入れてみた

いまのところページ分割に対応していないので、アブストラクトが2ページ以上にわたる場合には自分で適切な位置で原稿を分割して別ファイルに入力してもらわにゃならん。あからさまに不便なのだが、一応言いわけのしようはあって、Wordで提供されている元の様式でも、これについては同じ問題が発生するはずだ。

こうなったらもう乗りかかった舟である。TeXのプログラミングについていろいろ調べにゃならん。前にも書いたがTeXについてはまあ古参ユーザであるから、そういうテーマの本はいろいろ“積んで”ある。なかでも『LaTeX2ε【マクロ&クラス】プログラミング基礎解説』(技術評論社, 2002年, ISBN 978-4-7741-1546-7)というのはテーマにピッタリなのだが、俺にはどうも読みづらい。どうやら先にクヌースの原典TeXbookを読んだほうがいいようだ。これは原書も訳本(斎藤信男監修, 鷺谷好輝訳, アスキー, 改訂新版1992年, ISBN 4-7561-0120-8)も持っている。訳本を読みながら、必要に応じて原書にあたることにする。

TeXbookの邦訳は、基本的にはよくこなれた読みやすい文章なのだけど、“matrix brackets” (行列の括弧)を「行列式を表す括弧」と言ったり、“measurements” (大きさ・寸法) を「単位」と言ったりと、ところどころ意味のとりにくいところがある。そういうところでは原文にあたると解決する。


2017年1月19日(木)くもり

卒業研究ゼミは発表の段取りの相談。Cooper本講読ゼミはmany-one degreesの話。ひさびさにcreative setsの概念が登場した。


2017年1月18日(水)はれ

きょうもきょうとて、また別のM2さんがノートパソコンをもってやって来て、昨日やったとおりにアブストラクトの様式を取り込もうとしても自分の環境ではうまくいかない、という。昨日説明した部分はちゃんと情報共有されているのだが、今回の問題点はどうやらdvipdfmxのバージョンのようだった。教員の間でもそうなんだけど、文字コードはシフトJISかUTF-8かとか、ディストリビューションはW32TEXTeXLiveかとか、プラットフォームはWindowsかMacかとか、IDEかターミナルかとか、ひとりひとりちょっとずつ違う環境でTeXを使っているからややこしい。

修士論文をLaTeXで書くということはこの先もしばらく続くことだろうし、修士論文のアブストラクトの様式がすぐに変更されるとも思えないのだから、MS-Word形式で提供されている様式をLaTeXのコードで再現した「修論要旨スタイル」を作ってしまえばみんなハッピーになれることはわかっていて、きっとみんな、自分以外の誰かがひと肌脱いでくれるのを期待している。ううむ。この話の流れだと俺がやるしかなさそうだが、昨日も書いたように俺は決してTeXのエキスパートではないのだ。まあ、勉強する機会が与えられたと前向きに考えることにしよう。

やる気のないあひるやる気のないあひるやる気のないあひる

さてさて、四則演算の式を構文木に変換するパーサくらいはRubyで書けるようになったぞ。やってみるとなかなか楽しい。


2017年1月17日(火)くもり

昨日はTikZの話だったが、きょうは幾何の卒研ゼミ生が来て、卒研発表会のアブストラクトに双曲面の図を載せたいんだけど、どうすればいいか、と聞く。どうやら俺がiOSアプリのQuickGraphを使っていることを指導教員から伝え聞いてきたらしい。

そうかと思ったら、次には昨日とは違うM2の学生さんが、修士論文のアブストラクトの様式のPDFファイルをLaTeXに取り込みたいんだけどうまくいかない、と言ってやってきた。昨年度の山崎さんのゼミ生が工夫して作ったという方法をそのまま使っているのだが、見れば、LaTeXソースの文字コードが違っている。そのせいで、日本語のファイル名がついたPDFファイルをdvipdfmxが読み込んでくれないようだった。これは、PDFファイルの名前を英文字のみに変更して解決。

どうやら、グラフィックスやらTeXやらのことはあいつに聞け、という話に、うちの学科ではなっているようだ。しかし、俺はそれほどTeXに詳しいわけではない。まあ、平成元年1月に提出した修士論文を当時ようやく使えるようになった«ASCII日本語TeX»で書いて以来のTeXユーザだから、年季だけは入っているのだけれど。


2017年1月16日(月)くもり

かなり寒い。松山でも、日中ちょっと雪がちらついたりした。

午後、整数論をやってるM2の学生さんが、「ちょっと質問があるんですけど」と複素関数論の本をもって研究室にやってきたのでちょっとビビった。整数論や複素解析の大学院レベルの質問なんか喰らったら、俺なんざ一撃で沈没ですからね。しかし、質問は、LaTeXで書いている修士論文に積分路の図を載せたいから描き方を教えてくれ、ということだったので、ひと安心。図中の座標値の計算の仕方とTikZのコマンドの書き方を説明し、例をやって見せる。

原悠『Rubyで作る奇妙なプログラミング言語』(マイナビ)を読み終えた。せっかく言語処理系というものの実装のようすを垣間見たわけだから、これからもう少しつっこんで勉強しようと思う。


2017年1月15日(日)くもり

センター試験2日目の監督業務をしてきた。きょうの昼間は妻も仕事に行っていたのだが、家ではムスメがセガレの面倒を実によく見てくれていたようだ。ありがたいことである。

きっちんとしたキッチン
ムスメのおかげでこんなにキッチンが片付いていた

とても寒い日で、松山でも一時雪がちらついた。綾部に住む弟一家のところは雪を集めてカマクラが作れるほどの積雪だったそうだ。母がメールで写真を送ってくれた。


2017年1月14日(土)くもり

さて合宿研修2日目。国立の研修施設であるから、午前7時からの「朝のつどい」で国旗・所旗の掲揚ということをやる。その旗を上げるロープをひっぱる「旗係」になった。こんなことでも経験である。今年の合宿研修は各グループともけっこう進捗があり、結果発表も充実していたので、教員一同非常に喜んでいる。


2017年1月13日(金)くもり

毎年恒例、数学科合宿研修。国立大洲青少年交流の家にやってきた。

数学の問題が全部で5題出題され、参加者(学部生有志)は問題のタイトルだけ見て、どの問題に取り組むかを決める。きょうの午前から夜までグループごとに議論して、明日の午前中にその結果を発表するのだ。

俺が今回提供した問題は、数列 \[ 1,\;a,\;a^a,\;a^{a^a},\;a^{a^{a^a}},\;\ldots \] が収束するような正の実数 \(a\) の範囲を決定するというもの。あっさり答えだけ書けば \[ e^{-e}\leqq a \leqq e^{e^{-1}} \] ということになる。\(a\geqq1\) の場合はわりと簡単。\(e^{-e}\leqq a< 1\) のとき収束し \(0<a<e^{-e}\) のとき発散することの証明が肝になる。

他の問題は、(1) 発散級数 \(1^n+2^n+3^n+\cdots\) の“総和”をオイラーの方法で求めるもの。 (2) \(\mathbb{R}^d\) の有界集合が、自分より直径の真に小さい \(d+1\) 個の部分集合に分割できるのではないか、というボルスークの問題に関連したもの。(3) 連続関数を多項式で近似するラグランジュの補間多項式とベルンシュタイン多項式を比較するもの。(4) 平面を合同な多角形のタイルで敷き詰められるかどうかを考えるもの。

学生さんたちが問題に取り組んでいるあいだ、教員はそれぞれにノートパソコンに向かって仕事をしたり、学生さんたちの進捗を見守ったりする。俺は持っていったMacBook Proで、「Bolic言語」処理系のRubyプログラムを打ち込む。おかげで、構文解析プログラムの仕組みを知ることができた。


2017年1月12日(木)くもり

久々の4年生ゼミ。来月の発表会に向けた準備に入る。夕方にはこれまた久々に、Cooper本講読ゼミ。index setについてのライスの定理を証明し、さらにmany-one degreeを定義した。

その後、ジュンク堂書店へ行って本を3冊購入。

本を3冊買った


2017年1月11日(水)はれ

『Rubyで作る奇妙なプログラミング言語』は第2章に入った。きょうはこの本のオリジナル言語である「Starry言語」の処理系を作ってみた。これは6種の記号 * + , . ` ' と、あとスペースだけで構成される言語で、コードが「星空のように見える」というコンセプトだ。たとえばお約束のHello, World! は

+ + * + * . + + * + * + * + . + * + . . + + * +* + + * + * * + * . + + * + + * * . + + + + + * * * * . + + + + + + * * * * * + . + + * * + . + + + * * * . + + * + * + * + + * + * + + * . . . + + + + * * * .

のように書ける。まあそんなわけで、実用的な言語ではないが、スタックマシンの特性を活かすと、フィボナッチ数列を表示し続ける無限ループくらいなら

+ + ` + . + + * + + . '

で書けてしまう、という意外な効率性もある。

イヤホンアダプタ

昨日の日記に書いたlightningイヤホンアダプタをエディオンで購入。


2017年1月10日(火)くもり

ようやく本格的に授業再開で、キャンパスが賑やかになった。3回生ゼミは前回の続きで直観主義命題論理のハイティンク代数値意味論をやった。これで次回からようやく述語論理に入る。残り授業回数3回だが、まあ、進めるところまでは進みましょう。

引き続きRubyの実習。『Rubyで作る奇妙なプログラミング言語』セクション1-4の記述にしたがってWhitespace言語の処理系ができた。Whitespace言語というのは、スペースとタブと改行のみで記述されるという異色のプログラミング言語だ。だから当然、実用的ではないが、しかしその背後にある(一種のスタックマシンを想定した)計算モデルはそれなりに強力な気がする。『Rubyで作る…』の処理系は仮想マシン方式を採用していて、まず、Whitespace言語のコードを内部表現(中間言語)に翻訳し、次にその内部表現を仮想マシン(中間言語インタプリタ)に送って実行させる、という手順を踏む。Whitespace言語のコードを直接エディタで入力するのは現実問題として不可能なので、この中間言語をアセンブリ言語風に書いたテキストからWhitespace言語のコードに変換するトランスレータを作ってみた。それなりに使えるが、そんなことなら、そのアセンブリ言語風のコードを直接に解釈・実行するインタプリタを作った方が話が早いわけだから、なんだか馬鹿馬鹿しい気はする。

話は変わる。ムスメのiPhone5sが不調で、きょう急遽iPhone7に機種変更したという。みなさま先刻ご承知のとおり、このiPhone7にはイヤホンジャックというものがなく、代わりにLightningコネクタに接続するイヤホンアダプタが付属する。そのLightningイヤホンアダプタが俺のiPhone SEでも使えるかどうか試してみたら、使えるだけではなく、イヤホンジャック経由で再生するより音がいい気がする。ううむ。ちょっと悔しい。アダプタだけ別売りしてないかなあと思って Appleのサイトで調べたら、どうやら900円で買えるらしい。


2017年1月9日(月) 成人の日くもり

日中けっこう日光がさした時間もあるのだけど、まあ天気は「くもり」ということにしておこう。昨日言ったとおり、チューリング機械のシミュレータをRubyで書いてみたが、どうもパッとしない。まあなにせ、こちとら魔法を習いたての魔法使いの弟子だからな。まだまだ修行しないと。しかしこれではいつまでたってもHTML+CSS+JavaScriptに戻れないな。わはははは。

きょうはムスメのところに学校のお友達がやってきた。それで、昼食はムスメとお友達が作ったサンドイッチだった。それと、夕食に妻が作ってくれた肉じゃがも、とても美味しかった。


2017年1月8日(日)あめ

昨日ダウンロード購入した原悠『Rubyで作る奇妙なプログラミング言語』は大変面白い。これを読みながら、HQ9+Brainf*ck の処理系をRubyで書いた。 Brainf*ck の処理系が書ければ、チューリング機械のシミュレータくらい自分で書けそうに思う。やってみたいが、むしろチューリング機械自体のプログラム(というか、状態遷移表)が書けない気がする。

昼食後に長々と昼寝したこともあって、一日ほとんど家から出ず。


2017年1月7日(土)くもり

松江市在住のソフトウェアエンジニアの原悠(はら ゆたか)という人が、PPAPというプログラミング言語を開発したという。この言語で画面に Hello! と表示させるプログラムは、たとえば次のようになる。

I have 72 Pen I have 101 Apple I have 108 Hip I have 111 Hop I have 33 Trip I have 10 Strip Uh! Put-Pen-Apple-Hip-Hip-Hop-Trip-Strip

ピコ太郎のPPAPにインスパイアされて作ったというだけあって、識別子やコマンド名には必ず p または P を含めなければならない、コマンドを実行する前には必ず Uh! と気合いを入れねばならない、等々、謎な縛りの多い言語である。一応、チューリング完全ではあるようだ。ダウンロードはGitHubレポジトリから。実行にはRubyの環境に"thor"というGEMを入れておく必要がある。あと、「より小さい」と「(% とか mod で表わされる) 割り算の余り」を表わす p を含むキーワードが思いつかないから、知ってたら教えてほしい、とのこと。

この言語を紹介するブログ記事に掲載された広告で原さんの著書『Rubyで作る奇妙なプログラミング言語 ヘンな言語の作り方』(マイナビ2008年)が紹介されていた。マイナビの直販サイトで今月10日までPDF版がディスカウントだというので購入。


2017年1月6日(金)はれ

きょうから授業開始のはずなのだが、きょうもまたずいぶんキャンパスが静かだった。

第4章でSQLite3を使ったデータベース操作の実習などを体験して、「たのしいRuby 第5版」を読み終えた。SQLite3は便利だと思ったが、これを使いこなすには、当然、RubyのほかにSQLもおぼえなければならない。先は長いな。

このごろ、YouTubeで、近藤由貴のピアノ演奏をよく視聴している。オーケストラ曲のトランスクリプションなどが多くて、どの曲もオーケストラの音が聴こえる気がするのだ。みなさんもどうぞ。


2017年1月5日(木)くもり

そよちゃんをまじえて朝ごはんを食べたあと、俺は普通に大学に行った。お隣の松山大学は、今日から授業が始まっているらしくたくさんの学生さんがいたが、うちのキャンパスは今日はまだ静かなもの。

夕方からいつもの医者に行った。松山市駅前から、普段より1本早い便のバスに乗った。真新しい車両で、車内も道もすいていて、少し得した気分だった。医者からは例によって歩いて帰った。

年越しをはさんだこともあって少しペースが落ちたが、「たのしいRuby 第5版」の第3部を読み終えた。残る第4部は、ここまでに学んだことを組み合わせて実際の用を足す応用編だ。あとちょっとで読み終わるぞぉー、とか言っているうちに、Rubyのバージョンが2.4.0に上がった。細かいことはわからないのだけど、今後は FixnumBignumIntegerに統合することになったらしい。それと、大文字と小文字の変換を扱う String#upcasedowncase 等々が、ASCIIの英文字だけでなく一般にUnicodeの規則にしたがって働くようになったそうで、いわゆる全角英文字の「ABC」と「abc」とかギリシャ文字「αβγ」と「ΑΒΓ」を、相互に変換できる。試してみたところ、ひらがなの「あいう」を「ぁぃぅ」には変換できなかったが、これはできないほうが正しそうだ。


2017年1月4日(水)はれ

久々に職場に行き、いろいろの懸案事項を片付けた。今月中旬の合宿研修のための問題をLaTeXで清書し、最近またやりとりが復活した海の向こうの国際政治学の先生の質問に答え、ゼミ生に業務連絡を送り、ダウンロードした配布用資料をプリントし…とまあ、地味ながら充実した仕事初めであった。

今夜はムスメの友人のそよちゃんがうちにお泊りなさる。それでうちは朝から片付けやらおもてなしの準備やらで大わらわだった。幸い妻の実家から豊富に食材をもらっていることもあって、晩ご飯はうちにしては珍しくご馳走だった。夕食後には、見奈良の「利楽」へ行って風呂に入った。なかなか楽しかったが、食事中も行き帰りの車中でも、ムスメとそよちゃんが大はしゃぎしてうるさかった。


2017年1月3日(火)はれ

引き続き正月休み。天気はよいがどこに出かけるでもなく、部屋の掃除などする。明日には幸花の友人のそよちゃんが遊びにくるからね。

なずなの写真 ホトケノザの写真
近所に咲いていたナズナとホトケノザ

「て日々」は月ごとにひとつのHTMLファイルに書いている。月の変わり目に新しいファイルを生成したり目次を更新したりの作業を自動化するために、自作の Perl プログラムをずっと使っているのだけど、2002年から2008年までの古い「て日」の目次を統合したときに、バグが出現してしまったようだ。1か月に1度しか使わないこのプログラムの、とくに12月の日記のファイルを生成するタイミングで姿を現わすバグだから、間違った目次を1か月間Webに掲載していたことになる。まあ、目次の表示がおかしくなるだけの話で、実害はないのだけど。

さっき気付いてプログラムを修正したが、やっぱり Perl をだいぶ忘れていて、自分が書いたはずのプログラムなのにすらすらとは読めなかった。プログラミング言語も言語というだけあって、使い続けないと忘れるのね。


2017年1月2日(月)はれ

午後の船で伊保田から松山に戻ってきた。妻の実家からたくさんの食材を貰ってきたので、それを使って晩飯も簡単に済ませる。12月29日の「て日々」はその日に書いてあったが、帰省中の記事はほとんど書くことがない。

夜、NHK教育テレビ(Eテレ)で『大人のピタゴラスイッチ』というのを観た。「誕生日のパラドクス」「鳩の巣原理」「二値化」といったちょっと高度な数学の話題をあの『ピタゴラスイッチ』のスタイルで紹介する特別番組で、なかなか面白かった。


2017年1月1日(日) 元日はれ

あけましておめでとうございます。今年もなるべくマメに更新するので読んでくださいね。

…というところで、本当なら年頭の所感とか書くべきなのかもしれないけど、今年の抱負とかいって殊勝なことを書いても実現できたためしがないので恥かしくてもう何も書けない。これまでいい加減に生きてきた分まで、毎日をマジメに過ごしていくほかないのだが、なによりカニより、今年こそあの原稿だけは仕上げないといけないとは思っている。

引き続き妻の実家で居候状態で、やることもないのでちょっと気持が塞ぐ。夕方にお使いに出て少し気を持ちなおした。