2022-12-14

サイフォン

自宅でコーヒーをよく飲みます。インスタントコーヒーが多いのですが、珈琲豆を挽いて淹れることもあります。一般にはペーパードリップ式を用いる人が多いようなのですが、僕はサイフォンを使っています。この方法だと手間がかかりますが、簡単に飲みたければインスタントコーヒーに勝るものはないし、サイフォンだとフラスコと漏斗の間をお湯が上がったり下がったりしているのを眺めている時間も、愉しいものです。

 

しかし問題なのは珈琲を淹れ終わった後に残る珈琲豆のカスの廃棄です。これまでは何も考えずにシンクに流していたのですが、パイプが詰まり、台所床面のパイプ付近に溢れ出してしまいました。捨て方を考え直さなければなりませんが、シンクにしろ、三角コーナーにしろ、ゴミ袋を被せておいても、珈琲豆のカスはすり抜けてしまいます。

 

ドリップ式で使うペーパーフィルターに珈琲豆のカスを捨てるという方法も考えつきましたが、それならサイフォンではなく最初からドリップで珈琲を淹れれば良いだけです。そもそもサイホンからドリップに方法を変えることは考えていません。

 

ふと台所に置いてあったキッチンボウルに目が止まりました。サイフォンに残った珈琲豆のカスを中にあけてしまえば、シンクに流さずに済みそうです。しかもキッチンボウルにある珈琲豆のカスは、庭にあるコンポストに入れてしまえば、放っておいても次第に土に還ってくれるでしょう。エコ的にも良いかもしれません。


珈琲を飲むのに、サイフォンを使ったり、最後に珈琲豆のカスをコンポストに捨てたり、何かと手間がかかるのは間違いありません。しかしそれも含めて珈琲と向き合う時間を愉しめることも間違いありません。

2022-12-12

仮言命題

放送大学教養学部で2022年度第2学期は「記号論理学('14)」を受講しています。その印刷教材で「第4章 命題の意味」において61頁で「仮言命題」の説明がでてきます。要するに、前件が真で後件が偽である場合に「仮言命題」が偽となり、それ以外は真となります。これが定義です。


命題が「B→C」の形をしているなら、前件「B」が真の場合、後件「C」が偽なら命題も偽であり、後件「C」が真なら命題も真です。これは納得できます。ところが前件「B」が偽の場合、後件「C」が偽であろうと真であろうと無関係に命題が真になります。これがよくわかりません。


仮言命題「B→C」を日本語で「BならばC」と表現するのは、記号論理学的にはよろしくないようです。しかし日本語の語感としては、「BならばC」と言われたら連言命題「B∧C」のように理解してしまいたくなります。そうなると仮言命題じゃなくて連言命題だけで十分じゃないかという話になってしまいますから、仮言命題の定義は何か理由があるのではないかと思うのです。要するに、その理由が分からないのです。

2022-12-11

後桃園天皇

2022年は、NHKで放映されている大河ドラマが「鎌倉殿の13人」ですし、山田尚子監督によるアニメ作品「平家物語」の評価が高く、中世時代に焦点があたった年でした。鎌倉時代や源頼朝といえば後白河天皇が大きくかかわってきます。また中世時代と言えば室町時代や足利尊氏が思い起こされますが、そうなると後醍醐天皇が大きくかかわっています。さらに鎌倉時代初期に武士の時代を決定づけた出来事と言えば承久の乱ですが、ここで後鳥羽天皇が大きくかかわっています。

 

このように歴史上には「後~天皇」が少なくありません。しかし後桃園天皇を最後に、そのような諡号はおくられていません。明治以降は年号と合わせていますから、「後~」という年号が無いのに、天皇を「後~」とするわけにもいかないとは思います。


ヨーロッパの王室は、現在のイギリスもそうであるように、「~何世」のように呼ばれます。日本がそのような呼ばれ方になるのは変だと思いますが、将来どうなるのかは分かりません。遠い将来には、どのように呼ばれるようになっているのでしょうか。

TiddlyWikiの初期設定

普段からTiddlyWikiを使って情報を整理するようにしています。ファイルごとに、細かい設定は異なりますが、基本的な設定は揃えるようにしています。TW5のコントロールパネルから設定を変更しますが、その設定変更を他のファイルにも同じように適用したいのです。メニューを辿って、同じような設定変更をおこなう事はできますが、設定箇所が多岐にわたると、もうちょっと簡単にならないものかと思います。

 

そのような事が既に議論されているかと思ってGoogleにあるTiddlyWikiグループを探してみましたが、見つけられませんでした。TW5のファイルを調べてみると、TW5システムに関わる情報は、「$:」で始まるTiddlerに格納されているようです。そこで「AdvancedSearch」にあるFilterタブで、以下のような指定をしてみました。ここで本当は「$:/config/.*」のように指定したかったのですが、「$」があると正規表現として特別な意味を持ってしまうようなので、「.」を指定し「任意の1文字」としました。

[regexp[.:/config/.*]]


この指定で検索されたTiddlerをJSON形式でファイルに落としてみると、自分で変更した箇所だけが記録されているようです。このファイルを別のTW5にインポートしてみたら、同じ設定にすることができました。ついでに以下の情報もJSONに落としておきました。

 [regexp[.:/themes/.*]]

 

このようにシステムTiddlerをJSONファイルに落として、別のTW5で読み込むという方法が、正式な方法なのか、それともUndocumented futureなのか判断できません。しかし目的は達成できているので、当面はこの方法でしのごうと思います。


2022-12-09

図書館が提供する開架書籍と電子書籍

僕は放送大学教養学部に在籍しているので、放送大学付属図書館が提供する電子ブック・電子ジャーナルを利用できます。他の大学図書館でも電子書籍が利用できるようになっていると思います。もっとも利用可能な電子書籍は、大学ごとに契約形態が異なるでしょうから、細部は異なるとは思いますが、膨大な資料を参照できることには変わりありません。


大学図書館に限らず、公共図書館でも、蔵書を探すためにOPACを使うのが便利です。しかし開架されている書籍を眺めることも、思いがけない書籍に出会えるチャンスを与えてくれると思っています。ところが電子書籍は、書名やキーワードが明らかになっているものをピンポイントで探すことができるかもしれませんが、開架書籍を書棚で探すような行為は困難であるように思います。

 

さらに電子書籍を提供するサービスが幾つもあり、大学図書館では複数のサービスが使えるようになっていますから、自分が探している「書籍」や「論文」が、どのサービスにあるのか、もしくは何処にもないのか、調べるのが大変です。ひとつひとつのサービスの検索機能を使って個々に探していけば確実だと思いますが、もうちょっとなんとかならないかと思います。

 

放送大学には「日本語アカデミックライティング(’22)」という「書く」スキルに関する科目があります。その一環として図書館などで資料を探す行為も出てくると思いますが、むしろ電子書籍などを「探す」スキルに関する科目も欲しいと感じています。資料を「探す」行為は、学問分野を問わず、大学や研究機関の関係者であれば、誰でも日常的におこなっている筈です。しかし、もしかすると誰も手探りで「探し」ていて、職人芸的なスキルに留まっているので、授業科目には難しいのかもしれません。


膨大な情報に流されず、求める資料を的確に見つける能力の養成は、放送大学が提供しようとしている理念にも合致するのではないかと思います。

2022-12-07

Haskell Brooks CurryとAugusta Ada King

プログラミング言語Haskellを勉強しようと思っていますが、これは数学者Haskell Brooks Curryに因むのだそうです。プログラミング言語の名前の付け方は、Fortran、Cobol、Lispのように機能を表現する単語を略して出来ているものもありますが、過去の人の名前に由来するものもあります。その例がプログラミング言語Adaで、イギリス貴族Augusta Ada Kingに因むようです。


これらの両名は偶々どちらも数学者ですが、そのプログラミング言語の設計に直接関与している訳ではありません。そうならば、和算で有名な関孝和も何かのプログラミング言語の名前につかってくれても良いのではないかと思います。

カリー化

図書館から『関数プログラミング入門 Haskellで学ぶ原理と技法』を借りてきて読んでいます。Haskellを学んでおくことは思考の幅を拡げるのに、とても良いと感じています。

 

しかしながら難しい概念がない訳ではなく、「第1章 基本概念」の「1.4.2 カリー化」で書かれている「カリー化」は理解するのが難しそうです。そこでは、次のように書かれています。

説明のために以前取り上げた関数smallerを再考しよう。

smaller :: (Integer,Integer) → Integer

smaller (x,y) :: if x y then x else y

この関数smallerは整数の対という単一の引数をとり、整数を返す。もう1つ別の方法で、本質的には同じ関数を定義する。

smallerc :: Integer → (Integer → Integer)

smallerc x y :: if x y then x else y

こちらの関数smallercは2つの引数を1つずつ順にとる。 


これがカリー化というものらしいのですが、このようにする意義がよくわかりません。Haskellには他にも難しい概念がありますが、ひとつずつ学んでいこうと思っています。