月別アーカイブ: 2016年8月

習うより慣れろprogramingE

著作権消滅童謡

著作権の消滅した童謡《赤とんぼ》は、【朝日新聞の無料会員サイト「アスパラクラブ」へのアンケートで、4116人から回答があり、『親子で歌いつごう日本の歌百選』を参考に85の選択肢を設け、一人10曲まで選んでもらっての結果】によると人気第一位です。

習うより慣れろpronramingも今回で5回目です。少しずつ高級化・高機能を図ってきました。誰でも口ずさんだことがある『赤とんぼ』を題材にしました。お急ぎの方は末尾の実行例をご覧ください。

親子でうたいつごう

処理の概要

童謡《あかとんぼ》の詞と曲を出力します。今回、用意した曲は7秒ほどの前奏から始まり、約16秒の本奏を4回、繰り返すので、演奏時間は71秒です。歌詞を一番から四番まで表示し、オルゴール音が流れます。演奏の経過とともに、歌詞の囲み枠が追加表示され、加えてトンボの風景16シーンが描画されます。

演奏時間

画像形式

トンボ16景は16個の画像をまとめて1個に集合し、drawImage関数のトリミング表示を採用して個々の画像を取り出します。

16景画像

単項演算子について

今回は、単項演算子にスポットライトを当てます。この演算子に出会ったのはC言語を習得するときでした。変数の更新タイミングを指定できることに驚いた思い出があります。

unaryoperator

プログラムをコード化するとき、演算子を扱います。+-*/などの他、++や- -があります。前者は二項に対して働きかけるのに対して、後者は単項に対し演算を行使します。

演算子には論理演算子もあり、詳しい説明は言語解説書に譲ります。単項演算子にも論理否定(!)やビットごとの否定(~)があるなか、プログラムコードのコンパクト化に貢献する++と- -の演算子を取り上げます。

++はインクリメント、- -はデクリメント演算子と呼ばれます。変数xを1加算するには、++x、x++、1減算する場合は、- -x、x- -のように使います。

演算子を変数の前に置く場合と変数の後に置く場合の二種類あります。

Result1

変数を単純に加算、減算するだけならば、前後どちらに置いても同じ効果になりますが、式の中で使った場合は違う効果をもたらします。前に置けば参照される直前に変数値が変化し、その後で参照されます。後に置けばすぐに参照され、その後で変数値が変化します。

懐かしのオルゴール もうひとつの具体例

var a = 1;
var b = 20;
++a; //aは2になる。
b–; //bは19になる。
var c = ++a; //cは3になり、aは3です。
var d = a–; //dは3になり、aは2です。
var e = –b; //eは18になり、bも18です。
//a:2 b:18 c:3 d:3 e:18

コードの解説

夕焼けと赤とんぼ

①6行、丸囲み数字を定義。
②7行、カウンターを定義。
③8行、Canvasコンテキスト用変数を定義。
④9行~14行、歌詞、楽譜、トンボ16景画像を読み込む。
⑤15行、ロード時に起動する関数を定義。
⑥16行~18行、赤とんぼの演奏を開始、音量を設定。
⑦21行~26行、描画コンテキスト取得、歌詞と楽譜を表示。
⑧25行、前奏7秒後に歌詞枠線と赤とんぼ16景表示を設定。
⑨28行、歌詞と赤とんぼ画像を表示する関数を定義。
⑩29行、16景を表示する制御の処理。
⑪30行~37行、16景の画像とその番号を表示する。
⑫38行~44行、歌詞を特徴づける四角形を描く。
⑬45行、4秒間隔でsongOut関数が繰り返し起動設定。
⑭50行、ロード時に起動する関数を取り付ける。
⑮54行、canvasタグで図形仕様を指定する。
⑯55行、赤とんぼの音響データをロードする。
⑰56行~57行、音響ファイルを指定する。

配慮した点

実りの秋

大きな画像ファイルは、読み込みに時間を要し、表示するときに読み込み中の場合、正常動作にならないことがあります。

そのため、起動の先頭でImageオブジェクトにて、画像ファイルをオブジェクトとしてブラウザのキャッシュに取り込み、JavaScriptで参照・設定できるようにします。

サンプルコード

<html>
<head>
<title>《赤とんぼ》</title>
<script language="JavaScript">
          //①    ②    ③    ④    ⑤    ⑥    ⑦    ⑧    ⑨    ⑩    ⑪    ⑫    ⑬    ⑭    ⑮    ⑯
var suji="\u2776\u2777\u2778\u2779\u277A\u277B\u277C\u277D\u277E\u277F\u24EB\u24EC\u24ED\u24EE\u24EF\u24F0";
var count=-1;
var ctx;
var imgFile = new Image();    //画像を早めにロードするための準備
    imgFile.src = "https://aidesign.lolipop.jp/wp-content/uploads/2016/08/akatonbo.png";//画像をロードする
var img07Fl = new Image();    //曲の前奏時に描画する
    img07Fl.src = "https://aidesign.lolipop.jp/wp-content/uploads/2016/08/akatonbogakufu.png";//あかとんぼ楽譜
var img16Fl = new Image();    //16景
    img16Fl.src = "https://aidesign.lolipop.jp/wp-content/uploads/2016/08/16image.png"; //トンボ16景
function starting(){          //onLoad
  var ws = document.getElementById('week-song');  //赤とんぼをオルゴールで演奏
  ws.play();                                      //鳴動
  ws.volume=0.4;                                  //音量を小さめに

  var canvas = document.getElementById('study');  //描画コンテキストの取得
  if (canvas.getContext){
    ctx = canvas.getContext('2d');
    ctx.drawImage(imgFile, 0, 0, imgFile.width, imgFile.height);//赤とんぼの詩を表示
    ctx.drawImage(img07Fl, 30, 360, 260, 90);//赤とんぼの楽譜を表示
    setTimeout(songOut, 7000);               //7秒間の前奏後に、歌詞の表示を設定
  }
}
function songOut(){                          //1番~4番の歌詞と赤とんぼの画像を表示
  if((++count) < 16){                        //16コマを処理する
    ctx.clearRect(25, 355, 270, 100);        //赤とんぼの楽譜を削除
    var x = count % 4;                       //4行4列画像を処理する
    var n = Math.floor(count / 4);           //1~4
    ctx.clearRect(265, 400, 60, 60);         //前の数字を消す
    ctx.font = "48px 'MS Pゴシック'";
    ctx.fillStyle = "green";
    ctx.fillText(suji[count], 265, 450);     //①~⑯
    ctx.drawImage(img16Fl, 160*x,120*n, 160,120,   60,347, 160,120);//16景画像
    if(x==0){                                //1番~4番の歌詞を特徴づける
      ctx.font = "24px 'MS Pゴシック'";
      ctx.fillStyle = "magenta";
      ctx.fillText(suji[n], 255-71*n, 24);   //1番~4番
      ctx.strokeStyle = "orange";
      ctx.strokeRect(228-71*n, 30, 65, 310); //左からx,上から30の位置に、幅65高さ310の四角の枠線を描く
    }                                        //7+16*4=71
    setTimeout(songOut, 4000);               //赤とんぼの画像を4秒間隔で表示
  }
}
</script>
</head>
<body onLoad="starting()">
<font size=6 color='blue'>著作権フリー童謡《赤とんぼ》</font><font size=3 color='tomato'><BR>
 Tiny-E.html, Ver 0.01, &copy;Aidesign,2016<BR><font size=4 color='maroon'>音量は適切に。再実行は&#8635ボタンをクリック。</font>
<font id="ttl" size=5 color='magenta'></font><BR>
<canvas id="study" width="356" height="470" style="background-color:ivory;border: 1px blue solid"></canvas>
<audio id="week-song" preload="auto">
<source src=
       "https://aidesign.lolipop.jp/wp-content/uploads/2016/08/JASRAC_000-0391-3_AkaTombo_xf_Music_Box.mp3">
</audio>
</body>
</html>


実行例

《赤とんぼ》 著作権フリー童謡《赤とんぼ》
Tiny-E.html, Ver 0.01, ©Aidesign,2016
音量は適切に。再実行は↻ボタンをクリック。

 

立秋2016

立秋

立秋は二十四節気の第十三番目です。一年でもっとも暑い時期で8月7日ごろ、太陽黄経が135度のときが立秋です。今頃になると、日中は厳しい残暑にさらされますが、朝夕には秋の気配が現れてきます。

小倉百人一種001

高校野球が甲子園で開幕になり、月遅れのお盆の準備におおわらわの時です。気力で猛暑を耐えしのぐときでしょう。

習うより慣れろprogramingD

新しい試み

おふくろ様 以前、《拝啓、お袋様》、《一週間の仕事》、《ウェブページに補足情報》において、ロシア民謡の叙情歌が流れて、遠く離れたお袋様へのメッセージを想定してブログに掲載しました。

これらは複数ページにまたがって、お袋への伝言を歌に仕上げています。

他のページにジャンプするために、現在の情報をCookieに保存し、小さなコードながら苦労して完成させた記憶があります。

今回は、ひとつの記事で7日分の情報を制御するため、以前よりも難解さはなく、離れた母へ一週間の仕事を伝える試みをしてみます。

7画像中の一例を示します。実際は稿末の実行例に描画した画像をクリックします。

OneWeek

処理の概要

日曜から始まる一週間の仕事をロシア民謡に合わせて、イラスト画像を添えて母への伝言として記(しる)しています。

モジュロ演算子

曜日ごとに定まった処理をする場合は、日曜日を0、月曜日を1、土曜日を6に変換して7種の処理をすることができます。曜日に依存せず、開始日から順に0、1…5、6そして再び0に戻る処理は開始からの通算日を7で割り、その余り(0~6)による7種の処理に分類します。

CやJavaScriptにおいて、割り算の余りを求める演算子をモジュロ演算子とも言い、%で表します。
a = 17;
b = 7;
c = a % b;
cには3が求まります。通算日をcountとすれば、7日ごとに繰り返す処理pはp = count % 7;で求めます。使い勝手の良い演算子です。

コードの解説

①3行、titleタグで文書にタイトルを付けます。ブラウザのツールバーに表示される。
②5行、numは曜日ごとの画像を引き当てるインデックス。
③6行、ImgArrayは曜日ごとの画像を記憶する配列。
④9行、曜日ごとの仕事を定義する。
⑤16~21行、画像ファイル名を配列に用意。
⑥23~29行、ロード時、画像のクリック時に起動する関数を定義。
⑦32行、ロード時に動作するコードを定義する。
⑧33~37行、一週間の仕事を表示するエリアを定義。
⑨38~39行、音響データを定義。

サンプルコード

<html>
<head>
<title>改良版・一週間の仕事</title>
<script language="JavaScript">
var num = 0;                     //画像の番号, Tiny-D.html
var ImgArray=
["0-super.png","1-walking.jpg","2-haisha.jpg","3-gym.png","4-englishschool.png","5-nawanoren.jpg","6-ittech.png"];
                                                                            //仕事名を配列に格納する
const job = ["日曜日はスーパーに出かけ、一週間ぶんの食料を買い込みます。",
             "月曜日は早起きして散歩に出かけます。",
             "火曜日は歯医者に出かけ、治療に専念です。",
             "水曜日はジムに出かけ、シェープアップをします。",
             "木曜日は英会話スクールに出かけ、TOEIC600点を目指します。",
             "金曜日は居酒屋に出かけ、リラックスです。",
             "土曜日は寺子屋に出かけ、IT技術を教えます。" ];
  var imgFile= new Array();      //画像ファイル 配列変数。
  for(var i=0; i<ImgArray.length; ++i){
    ImgArray[i] = "https://aidesign.lolipop.jp/wp-content/uploads/2014/07/" + ImgArray[i];//画像ファイル名を生成
    imgFile[i] = new Image();    //画像を早めにロードするための準備
    imgFile[i].src = ImgArray[i];//画像をロードする
  }

  function changeImg(){
    var week = (num++) % imgFile.length;//番号を1進め、番号が配列の個数になったら0にする。
    document.getElementById('gazo').src = ImgArray[week];               //画像の切り替え
    document.getElementById('gazo').style.width = imgFile[week].width;  //画像の幅
    document.getElementById('gazo').style.height = imgFile[week].height;//画像の高さ
    document.getElementById("ttl").innerHTML=job[week];                 //説明文の切り替え
  }
</script>
</head>
<body onLoad="document.getElementById('week-song').play();changeImg()">
<font size=6 color='blue'>《一週間の仕事》</font><font size=4 color='maroon'>
 Tiny-D.html, Ver 0.02, &copy;Aidesign,2016<BR><BR>次に進むには画像をクリックします。<BR><BR></font>
<font id="ttl" size=5 color='magenta'></font><BR><BR>
<a href="javascript:void(0)" onFocus="this.blur()" onclick="changeImg()">
<img src="" id="gazo" width="" height="" border="1"></a>
<audio id="week-song" preload="auto">
<source src="https://aidesign.lolipop.jp/wp-content/uploads/2016/08/One_Week_Music_Box.mp3"></audio>
</body>
</html>

実行例

改良版・一週間の仕事 《一週間の仕事》 Tiny-D.html, Ver 0.02, ©Aidesign,2016

次に進むには画像をクリックします。



古典採用の意義

見返り美人なぜ取り上げるのか

当ブログには、時折、万葉集の和歌や江戸時代の市井話(しせいばなし)に話題を移すことがあります。今回はクラシック音楽や古典文学をなぜ取り上げるかの想いを綴ることにします。

古いものがすべて良いものとは限らないが

洋の東西を問わず、成金、一発屋などと急成長した人々を揶揄する傾向にあります。一度も表舞台に立つことなく消え去る人が多い中、一度でも脚光を浴びたのならば、成功者と言えるのに退潮者(水に落ちた犬)には厳しい評価を下しがちです。

マズローの欲求段階説

短期間で昇りつめると少々、危ない面もあります。奇をてらってあれよあれよと登場する輩(やから)もいるからです。反面、長きにわたり、そして多くの人々をだまし続けることは難しいと言われます。だから、嫌われ勢力でも長く実勢を保っていれば評価せざるを得ないのも現実です。

JASRAC_WWII

そこで古典に話が移ります。古典は長い風雪に晒され生き残った珠玉の作品と言えます。著作権は原作者の死後50年を保護期間とする国が多いです。

その点、古典は著作権消滅作品がほとんどであり、参照しやすさがそこにあるのです。

著作権などの国際法律

江戸時代の鎖国体制を乗り越え、日本は明治維新で本格的な国際化が図られました。だから、経験不足で国際交渉は苦手なのでしょうか。スポーツ競技で日本人が活躍すると、なぜかルール改正が行われます。

著作権延長20年

体格に勝る欧米人向きに変わったスキージャンプのルール改正、日本人が得意とした平泳ぎでの潜水泳法が禁止されたり、背泳ぎにおけるバサロ泳法の制限、背の高い欧米人に有利なようにバレーボールのルール改正などがあります。

ディズニーの著作権が切れかかると著作権延長法が論議されたり、戦争中は敵国の著作権などは尊重されていないはずだから、戦争条項、戦時加算として10年延長されるなど敗戦国は連合国側から無理難題を押し付けられてきました。

著作権の保護期間

著作権について、発展途上では野放し状態です。東南アジアを旅行すると、かつての50年~60年前の日本の姿を見ることができます。著作権は悪意もなく目立たないでひっそり使用中ならば、大きな問題は起きませんが、その利用により名声や経済的な利益が生じると大問題になります。

再掲しますが、著作権に関して古典は扱いが楽です。古典にとって10年などはまばたきの一瞬です。戦後70年を超えるのに負の遺産には困ったものです。

新しいもの連合国の著作物において、古い作品には戦時加算は適用されません。争い事は蚊帳の外です。古典の採用は大きな意味があります。

さいごに

新しいことを大胆に進める人々は、《新しいものこそがすべてである》との信奉者が多いです。挫折を繰り返し、肩の力を抜いた時には、古くからのものにどっこい、優れモノがあるぞと気づくことがあります。

《温故知新》、《覧古考新》、《古きを訪ね新しきを知る》などのことわざが教えてくれていますが、あらゆることから学ぶ姿勢が大切と語っています。

新しがりやには、隠し味として古き良きことをさりげなく、お薦めしてはいかがでしょうか。そうすれば、新しいことが一層、引き立ちます。

習うより慣れろprogramingC

ゴミ集合

実用的なプログラミング

前回は日付と時刻を表示するプログラミングでした。1秒ごとに現在時刻を表示するのでオンラインプログラムの基本として位置付けられます。インターネットにつながっていないと存在価値はゼロに近いです。

今回はゴミ出しのスケジュールについて考えてみます。ゴミ出しは曜日によって出すゴミの種類が制限されるので、曜日に沿ったメッセージを表示します。

処理の概要

ゴミ集積車❶まず、本日の情報を取得して表示します。キーとなる情報である曜日を求めて表示します。
❷決められたゴミ出し締め切り時間以後は、明日以降の情報が必要になるので、7種のメニューを用意します。
❸選ばれたメニューにより適切なメッセージを表示します。
❹複数メニューに対応する制御をします。

一週間の仕事

コードの解説

①3~5行、曜日ごとのデータを配列に定義する。<BR>は改行コード。
②13行、プログラムのロード時およびメニューにより指定されたときに起動する関数。
③14行、今日の日付データを算出。
④19~21行、日付データを見やすく加工して表示する。
⑤23行、翌日以降のデータを取得する。
⑥24行、指定された曜日を算出。
⑦26行、曜日にまつわるデータを作成する。
⑧28行、曜日データを表示する。
⑨31行、ロード時に起動する関数を定義する。
⑩32行、日付データを表示するエリアを定義する。
⑪33~39行、メニュー用ボタンがクリックされたときに起動する関数を定義。
⑫40行、曜日にまつわるデータを表示するエリアを定義する。

細かな配慮

本日の情報は時々刻々、変化することがないので、仕事のメニューが選択されるたびに毎回、処理する必要がないように感じます。しかしながら、そのような簡便方式は日付の変わり目に起動した場合に誤動作します。

23時59分58秒に起動して、その後にメニューを選択した場合、正しい日付の表示になりません。正しくはメニューの選択時にその都度、日付データを作成します。

サンプルコード

<html>
<script type="text/javascript">
const DayWeek = ["日", "月", "火", "水", "木", "金", "土"];
const DayColor = ["orange", "powderblue", "red", "sienna", "springgreen", "blue", "magenta"];
job = ["今週の予定の確認<BR>新聞、段ボール<BR>アルミ製品<BR>",
           "燃えないゴミ出し<BR>紙パック、雑誌<BR>電池・蛍光管<BR>",
           "再生資源<BR>ペットボトル<BR>プラスチック製容器包装<BR>",
           "粗大ごみ<BR>缶<BR>生ゴミ、卵の殻、貝殻など<BR>",
           "ビン・ボトル類<BR>剪定枝葉<BR>くつ・スリッパ・皮ぐつ・長ぐつ<BR>",
           "小型家電類<BR>トレイ<BR>在宅医療廃棄物<BR>",
           "燃えるごみ出し<BR>当番表・幟・旗の手渡し<BR>"];

function JobOfToday(n){             //Tiny-C.html
  now = new Date();                 //今日の日付データを変数nowに格納
  year = now.getFullYear();         //本日の年・月・日・曜日を取得する
  month = now.getMonth()+1;
  week = now.getDay();
  day = now.getDate();
  hiduke = "今日の情報:"+"西暦"+year+"年"+month+"月"+day+"日 "+DayWeek[week]+"曜日"+
           ",<font size=3> Ver 0.01, &copy;Aidesign,2016";
  document.getElementById("ttl").innerHTML=hiduke;       //日付データの切り替え

  if(n) now.setDate( now.getDate() + n );
  var real = now.getDay();              //指定されたの曜日

  var myjob = DayWeek[real]+"曜日のゴミ出し作業<BR><BR>"+job[real];
  console.log("N=%d REAL=%d %s", n, real, myjob);
  document.getElementById("job").innerHTML=myjob;        //曜日データの切り替え
}
</script>
<body onLoad="JobOfToday(0);">
<font id="ttl" size=5 color='magenta'>すぐ切り替え</font><BR><BR>
<button onClick="JobOfToday(0);" style="font-size:10px;">今日</button>
<button onClick="JobOfToday(1);" style="font-size:10px;">明日</button>
<button onClick="JobOfToday(2);" style="font-size:10px;">明後日</button>
<button onClick="JobOfToday(3);" style="font-size:10px;">明々後日</button>
<button onClick="JobOfToday(4);" style="font-size:10px;">四日後</button>
<button onClick="JobOfToday(5);" style="font-size:10px;">五日後</button>
<button onClick="JobOfToday(6);" style="font-size:10px;">六日後</button><BR><BR>
<font id="job" size=5 color='green'>ゴミ出しはルールを守って!</font>
</body>
</html>

 

実行例

すぐ切り替え



ゴミ出しはルールを守って!

 

夏に寄せて

日本列島は東西に長い

frog全国的に梅雨が明け、夏本番となりました。沖縄の梅雨入りが5月16日ころ、梅雨明けが6月16日ころ、関東甲信では6月5日、7月28日、東北地方では6月13日、7月29日であり、全国的に通算すると梅雨の期間は約2ヶ月半の長さになります。

そのような有様なので、日本列島は東西に長いと言われます。国土の広さ、長さは控え目にそっと語りましょう。

極端なことが好きな方には、それでもアメリカのカリフォルニア州にすっぽり入る広さではないかと言われそうです。

TheTrueSizeOf

プログラマーが開発した「国の本当の大きさが確認できる地図サイト、《The True Size Of …》」によると、メルカトル図法の弱点を勘案しながら、日本列島がかなり東西に大きいことを地図に重ね合わせて解説しています。

フランスの国土は日本の2倍近くありますが、東西の長さは日本の方が長いです。

先のカリフォルニアにすっぽり入ることを初めとして、「狭い島国にひしめき合って…」と言われ続けて悶々とした方は、上記サイトを見て溜飲を下げてください。

アクセントのある生活

常夏や極寒の地も住めば都と言われます。それはともかく置いておくとして、四季があると詩情豊かになることは間違いないでしょう。何の変哲もない風景が季節ごとに変化し彩りを添えてくれます。

season4

暑さや寒さは《生きとし生けるもの》に試練を与えます。ぼぉっとしていると生きにくいと教えてくれ、何かを感じ動けば解決に向かうよと暗示してくれます。

暑気を払う

クーラーなどない時代に熱中症でバタバタ倒れたという記録は少ないと思われます。温暖化、ヒートアイランド現象などが熱中症被害に拍車をかけていることは間違いありませんが、せわしない現代人の生活様式が原因となっている面もありそうです。

夏の風物詩

日本人の古くからの生活は、打ち水や簾(すだれ)、グリーンカーテン、夕涼み、縁台、かき氷、花火、うちわ、ところてん、スイカなど涼しさを感じる生活に囲まれていたようです。そこには温度を直接、下げる工夫のほかにすべての五感に訴えて涼しさを演出したと言えるのではないでしょうか。

桃葉湯(とうようとう)

日本には風呂の文化が独特に栄え、体を清潔にする他に、癒しを求める傾向が強いと言われています。風呂の癒し効果は欧米にはない文化です。

くらしを楽しむ七十二候

日本の入浴文化に季節湯があり、菖蒲湯、ドクダミ湯、桃葉湯などがあります。私が育った田舎には辛うじて、端午の節句の時に沸かす菖蒲湯が残っているだけでした。

桃葉湯は桃葉風呂とも言われ、《くらしを楽しむ七十二候、広田千悦子著》には桃葉を集めて10分ほど煮るとあります。桃葉湯は江戸時代には暑気払いとしてたいへん親しまれた風習だそうです。

夕涼みたまには俗っぽく

たまには俗っぽくと思って、榎本其角の俳句をお届けします。

右の句は男ながらの大胆さで夕涼みをしている様を詠ったと思われ、男尊女卑を表しているとの声が聞こえてきます。

どうして、どうして現代女性はたくましいです。《扇風機で遊ぶ女性》で検索すると様々な涼む姿が出てきます。

中には痴態と呼べるものもあり、伏字にしなければ、とても当ブログには載せられません。http://blog.livedoor.jp/waXXXXXX/archives/XXXXXXX.htmlなどです。

興味のある方はご自分で検索し、暑気払いのつもりが熱くならない程度にどうぞお楽しみください。

現代文明の闇さいごに

掃除、洗濯など自動化が進み、余裕が生まれ、余暇に費やす時間がたっぷり生じました。食生活も改善され、太り気味が増え、エアロバイクダイエットが盛んのようです。

数百年前は川に洗濯に出かけ、粗食のあまり肥満体は皆無に近かったでしょう。

車にたとえて、アクセルとブレーキを同時に踏まざるを得ない現代文明は最適とはとても言えません。

時代が進み、ボランティア活動もうわべだけだったものがしっかり根付いてきました。何千年と続いてきた暑気の文化を廃らせるは惜しいです。

桃葉湯については、先の著書のほか、【季節湯のススメ】夏の土用丑の日は、暑さをうち払う「桃葉湯(とうようとう)」でさっぱり爽快!を参照させていただきました。