隠居日録

隠居日録

2016年(世にいう平成28年)、発作的に会社を辞め、隠居生活に入る。日々を読書と散歩に費やす

江戸三〇〇年 あの大名たちの顚末

中江克己氏の江戸三〇〇年 あの大名たちの顚末を読んだ。私が子供の頃は「徳川三百年」などと言われることが殆どだったが、実際には江戸時代は300年もなく、250年ぐらいしかないので、最近はあまり聞かれることが無くなった。しかしながら本書のタイトルは300年となっており、なぜ300年にしたのか不思議なところだ。徳川時代大名は約270ほどあったようで、本書ではそのうちの失敗した大名家45について書かれている。

熊本加藤家改易

まず、最初に書かれていたのは熊本の加藤家だ。熊本の加藤家の後には細川が入ったことは知られている通りだが、なぜ加藤家が熊本を失うことになったのかについては、正直正確には知らなかった。加藤忠広は加藤清正の三男として慶長六(1601)年に生まれた。清正が慶長十六(1611)年没したので、その跡を継いだ。慶長十九(1614)年徳川秀忠の養女(蒲生秀行の娘)を正室として迎えた。元和四(1618)年、家老の加藤右馬允と加藤美作の一派が対立し、まだ若い忠広には抗争を抑えることができなかったので、秀忠が裁決し、美作派を厳しく処断した。幸いなことに、この時点では改易にはならなかったが、秀忠が没した直後の寛永九(1632)年に、在国中の忠広は幕府に無断で子とその生母の側室を国許の熊本に呼び寄せたのだった。
また、老中土井利勝から諸大名に密書が届くことがあった。それは謀反の誘いで、「将軍家光を亡き者にして、弟君の駿府大納言忠長公を将軍に擁立しよう」という内容であった。受け取った大名は、その密書を幕府に報告したが、忠広は報告しなかった。一説には、忠広の嫡男光正がいたずらで、諸大名の名を連ねた謀反の連判状を作ったというのもある。
幕府は理由を明かさず忠広に出府を命じたが、江戸入りは許されず、肥後五十四万石の没収が言い渡されてしまった。
忠広は配所の出羽庄内郊外の丸岡村で謫居した。嫡男光正には飛騨高山の金森家の預かり、百人扶ちという沙汰があったが、途中で病死したと伝えられる。

福知山 稲葉紀通の自殺

何ともにわかには信じられない話なのだが、福知山の稲葉紀通は鉄砲自殺をしたというのだ。慶安元(1648)年八月二十日の午後のこと、紀通は突如鉄砲を持ち出すと、城中で庭の鳩を撃ったり、乱射したのち、自らの腹を打ち抜いて自死した。享年四十六歳。乱心の果ての死とされている。
紀通は慶長八(1603)年、三重県の田丸城主道通の嫡男として生まれた。四歳の時父が死亡したためその跡を継ぐ。慶長十三(1615)年の大坂の陣の時に、火神の多くが大坂方にくみしたため、戦後所領を没収されるところだったが、妻の父松平忠明徳川家康の外孫に当たることから、首の皮一枚繋がり、没収を免れた。しかし、その後福知山に転封となった。将軍家光の乳母の春日局が実父の義妹であることから、その威を借りておぼり高ぶるようになったようである。
冬のある日、紀通は家臣の勘九郎雪見酒をしていた。紀通は寒ブリが好きだったが、山里の福知山では手に入れることが難しい。隣国の丹波宮津藩なら日本海に面しているので、寒ブリの漁場もある。紀通は宮津藩主の京極高広のところに使者を遣わし、「寒ブリを百匹送ってほしい」と頼んだ。京極高広にとっては寒ブリ百匹などたやすいことだが、京極高広自身は気難しいところがあり、幕閣へのわいろに使うのであろうと邪推し、ブリの頭を切り落として福知山に送った。これを見た紀通はその異様な有様に激怒し、「京極の者が城下をとることがあれば、首をはねよ」家臣に命じ、実際首をはねて京極に送り付けた。
京極家ではびっくりし、幕府に届け出ると同時に、国境に兵をだし守りを固めた。紀通は事態を収拾しようと、京都所司代の板倉重宗に相談し、在阪の老中阿部定次に会いに行こうとしたが、近隣諸藩が出兵したことを知り、動けなくなり、「我が国の所領を奪おうとしている」と思い込んだ末に、冒頭のような事態に至ったようである。何とも信じがたい話だ。

Firefox Quantumとgreasemonkeyとlibron その2

Firefox Quantumとgreasemonkeyとlibron - 隠居日録の続き。或る日気づいたら、図書館の変更の所をクリックしても、いつまでたってもリストが表示されなくなっていた。

いつまでたってもデータ取得中が表示されたままになっている。少なくともあの記事を書いたときはできたはずだ。図書館を変更することはあまりないので問題がないのだが、なんとなく気になるので調べてみると、updateLibrarySelectBoxでのリストの更新が完了していないことが問題の様だった。更に詳しく調べてみると、GM.xmlHttpRequestによるhttp://calil.jp/city_listの取得に問題があり、なぜかすべての結果がこの関数で参照できずに、後半の所がとりきれていないのだ。そのため、正規表現でのマッチングに失敗し、JSONの処理で失敗するので、それ以降の処理が行われないことが分かった。

なぜ、すべてのデータが読み込めなくなったのかは不明だ。Firefoxの更新なのか、greasemonekyの更新なのか、calil.jpからのデータが増えたのか。

しかたがないので、とりあえず次のように処理できそうなところまで処理するように変更することで回避した。ただし、鹿児島県の途中の所までしか取得できていないので、鹿児島県の一部と沖縄県の図書館のリストは表示されない。

function updateLibrarySelectBox(selectBoxDiv, prefecture, univ) {
  if (!univ) univ = false;
  if (libron.libraryNames[prefecture]) {
    selectBoxDiv.replaceChild(createLibrarySelectBox(libron.libraryNames[prefecture], univ), selectBoxDiv.childNodes[3]);
  } else {
    var url = "http://api.calil.jp/library?appkey=" + encodeURIComponent(libron.appkey) + "&pref=" + encodeURIComponent(prefecture) + "&format=json";

    if (isSafariExtension()) {
      safari.self.tab.dispatchMessage("retrieveLibraryInfo", [url, prefecture, univ]);
    } else {
      GM.xmlHttpRequest({
        method: "GET",
        url: url,
        onload: function(response){
          GM.xmlHttpRequest({
            method: "GET",
            url: "http://calil.jp/city_list",
            onload: function(city_list_response) {
              var city_list_match = city_list_response.responseText.match(/^loadcity\((.*)\);$/);
              if (city_list_match == null) {
                // workaround to cope with unmatured JSON string
                city_list_match = city_list_response.responseText.match(/^loadcity\((.*)},/);
                city_list_match[1] = city_list_match[1] + "}}";
              }
              var cities = JSON.parse(city_list_match[1]);
              var match = response.responseText.match(/^callback\((.*)\);$/);
              libron.libraries[prefecture] = JSON.parse(match[1]);
              libron.libraryNames[prefecture] = createLibraryNames(prefecture, libron.libraries, cities[prefecture]);
              selectBoxDiv.replaceChild(createLibrarySelectBox(libron.libraryNames[prefecture], univ), selectBoxDiv.childNodes[3]);
            }
          });
        }
      });
    }
  }
}

2018年1月12日追記

公式から3.0.10がリリースされて、この更新中のままになる問題は修正されたようだ。変更点はJSONデータを探す時の正規表現が変わったのと、calil.jpへのアクセスがSSLになったことのようだが、後者の方が効いているということなのだろうか?

function updateLibrarySelectBox(selectBoxDiv, prefecture, univ) {
  if (!univ) univ = false;
  if (libron.libraryNames[prefecture]) {
    selectBoxDiv.replaceChild(createLibrarySelectBox(libron.libraryNames[prefecture], univ), selectBoxDiv.childNodes[3]);
  } else {
    var url = "https://api.calil.jp/library?appkey=" + encodeURIComponent(libron.appkey) + "&pref=" + encodeURIComponent(prefecture) + "&format=json";

    if (isSafariExtension()) {
      safari.self.tab.dispatchMessage("retrieveLibraryInfo", [url, prefecture, univ]);
    } else {
      GM.xmlHttpRequest({
        method: "GET",
        url: url,
        onload: function(response){
          GM.xmlHttpRequest({
            method: "GET",
            url: "https://calil.jp/city_list",
            onload: function(city_list_response) {
              var city_list_match = city_list_response.responseText.match(/^loadcity\((.*)\);(\n)*$/);
              var cities = JSON.parse(city_list_match[1]);
              var match = response.responseText.match(/^callback\((.*)\);(\n)*$/);
              libron.libraries[prefecture] = JSON.parse(match[1]);
              libron.libraryNames[prefecture] = createLibraryNames(prefecture, libron.libraries, cities[prefecture]);
              selectBoxDiv.replaceChild(createLibrarySelectBox(libron.libraryNames[prefecture], univ), selectBoxDiv.childNodes[3]);
            }
          });
        }
      });
    }
  }
}

ただし、現在のfirefox版のlibronはgreasemonkeyではなくTampermonkeyを使うよう勧めている。