鎮守府史跡探訪〜昭和21年の佐世保空撮カラー映像〜

昭和21年に米軍によって撮影された佐世保の空撮カラー映像が Youtube に投稿されているのを見つけました。貴重なフィルムを投稿していただいて興奮しています。というのも、佐世保は戦前に鎮守府が置かれていたためか、全国でも有数の人口を誇る大都市だった1にも関わらず、当時の空撮写真や海岸線、鎮守府付近の詳細図があまり残されていません。国土地理院で閲覧できる空撮写真も戦後に米軍が撮影したものばかりです。

映像には、大牟田、佐世保、大村上空が映されていました。映像そのものは Youtube のものを見ていただくとして、佐世保上空について現在の地図と比較しながら見ていきたいと思います。

させぼ五番街 付近

sasebo1946_01

sasebo1946_01n

佐世保空襲の影響で空き地が目立つ港湾部です。

現在のさせぼ五番街がある場所は埋め立てされた場所です。カラオケのシダックスがある筋を五番街方面に行き、高速道路をくぐる交差点のすぐ向こう側が海でした。

画面上部、現在は松浦鉄道と高速道路がYの字になっているのが見えますが、撮影当時は画面左に向かっているものは高速道路ではなく、どちらも鉄道でした。高速道路になるこの鉄道は佐世保鎮守府、佐世保海軍工廠内にも伸びており、米軍が占領してからは「ジョスコー線」と呼ばれる線路でした。

現在も平瀬橋の脇にレールの一部を見ることができます。

島瀬町 付近

sasebo1946_02

sasebo1946_02n

画面右上から左に流れるのは名切川です。画面左の名切川沿いにある建物は佐世保玉屋。画面下には、旧国鉄佐世保線(現松浦鉄道)の鉄橋が焼け残っています。

今では想像することもできませんが、空き地になっている場所は空襲前まで木造の平屋が所狭しと並んでいました。こちらで佐世保玉屋周辺の焼ける前の写真を見ることができます。

画面右手の寺院は、現在の東本願寺佐世保別院のようです。

平瀬町 付近

sasebo1946_03

sasebo1946_03n

佐世保鎮守府を上空からカラーで映した貴重な映像です。昭和20年11月に陸海軍は解体され復員省に移行しているので、厳密に言うと鎮守府では既にないのですが、ほぼそのままの姿を見ることができます。

鎮守府内への引き込み線路の奥に見えるグラウンドは、現在、ミニッツパークの野球場・サッカーコートになっています。当時からグラウンドだったんですね。

sasebo1946_04

sasebo1946_04n

先ほどの写真の奥。鎮守府の建物がたくさん見えています。現在は自衛隊病院や音楽隊が置かれているエリアです。画面右上には当時から「海軍橋」の愛称で知られている佐世保橋が見えます。

元町 付近

sasebo1946_05

sasebo1946_05n

佐世保川にかかる海軍橋にさらに近づいたところです。凱旋記念館(佐世保市民ホール)や現在は海上自衛隊佐世保資料館になっている佐世保水交社も見えます。佐世保で一番古い町並みだった元町も壊滅的に焼失していますね…。教法寺の庭がかすかに見てとれます。

佐世保重工業(SSK)ドック 付近

sasebo1946_06

sasebo1946_06n

現在、SSKバイパスが走っている付近です。画面右中央に戦艦武蔵の艤装工事を行なった佐世保海軍工廠の第七船渠(現SSK第4ドック)がしっかり見てとれます。

SSKには仕事でもたまにお邪魔しますが、戦前から稼働中のクレーンや建物が現役で使用されていることも多いです。

佐世保市役所 付近

sasebo1946_07

sasebo1946_07n

この周辺も佐世保川を中心にして見事に焼けています。焼け野原の中、中央右に見える建物は佐世保警察署です。その上流にあるさらに大きな建物は佐世保市役所・公会堂です。

また、画面右上の山の上に見える黒っぽいL字型をした建物は成徳女子高等学校(現佐世保北高)です。

蛇島岸壁

sasebo1946_08

sasebo1946_08n

佐世保海軍工廠の蛇島(じゃじま)岸壁です。現在はSSKの岸壁です。

立神岸壁

sasebo1946_09

sasebo1946_09n

立神(たてがみ)岸壁です。現在は米軍と海上自衛隊が使用しています。

平瀬橋 付近

sasebo1946_10

sasebo1946_10n

中央に流れる佐世保川の手前が佐世保鎮守府、奥が一般市民が暮らすエリアに分かれていました。 平瀬橋も見えます。

佐世保郵便局(本局) 付近

sasebo1946_11

sasebo1946_11n

ここも綺麗に焼けています。現在の国道の場所は空襲前までは細い道だったようで、焼けたのを期に広い道を通して区画整備されたようです。体育文化館(コミュニティーセンター)がある場所は、陸軍佐世保要塞司令部跡ですが、なんだかよく分かりません。

日宇川河口 付近

sasebo1946_12

sasebo1946_12n

現在、佐世保高専の奥の工場がある付近です。ここには第21海軍航空廠の日宇工場があったため、撮影されたと思われます。

佐世保高専 付近

sasebo1946_13

sasebo1946_13n

道の形が比較的そのままになっています。画面を横断するのは現在は西九州自動車道佐世保道路。

その他

sasebo1946_14

sasebo1946_15

航空母艦や二等駆逐艦のような艦艇がたくさん映っていました。

sasebo_shipping_targets_1945-07-02

↑の写真は、米軍が佐世保空襲後の昭和20年7月2日に撮影した針尾島のエビス湾の空撮写真です2。位置関係から考えると、「KASAGI」は航空母艦「笠置」。「HAYATAKA」と書かれているのは、祖父が乗っていた航空母艦「隼鷹(じゅんよう)」のことだと思われます。隼鷹は日本人でもなかなか音読みはできない艦名ですので読み間違えてたようです。 まさか、隼鷹のカラー映像が残っていたとは…!

隼鷹に関する記事は下記が詳しいです。

参考までに、下記は米軍が昭和21年に作成した戦災地図です。

大きな解像度のものはこちら


  1. 昭和15年時点で佐世保市の人口は全国16位。15位の札幌市と1000人ほどしか違わず、当時は横須賀市や尼崎市よりも人口が多かった。 

  2. Sasebo History – Assorted Data on a Historical City in Southern Japan 

鎮守府史跡探訪~佐世保東山海軍墓地〜

崎辺地区の見学に行った帰り、近くにある佐世保東山海軍墓地に参拝することにしました。両親から聞いた話によると、旧海軍の大尉だった祖父も生前はよく参拝に来ていたとのことです。

大宮町の通りから少し登った小高い丘の上にあり、福石小学校の南側に位置しています。狭く曲りくねった車道が続いているため、佐世保市民でもこの周辺に用事がない限りあまり通りません。

Sasebo-Higashiyama-Kaigun-Bochi_01

入口の石碑です。祝日ともあって、私たちの他にも数組の参拝客がいました。

Sasebo-Higashiyama-Kaigun-Bochi_02

墓地の案内板。陸軍や外国人も等しく祀られています。

Sasebo-Higashiyama-Kaigun-Bochi_03

駐車場から入った参道の様子です。他のブログ記事では慰霊碑ばかりが紹介されていますが、あくまでも墓地ですのでこのような風景です。

Sasebo-Higashiyama-Kaigun-Bochi_04

参道の脇には砲弾の形をしたモニュメントも。

Sasebo-Higashiyama-Kaigun-Bochi_05

第二十七駆逐隊慰霊碑(時雨、白露、夕暮、有明)。400柱以上が祀られています。

Sasebo-Higashiyama-Kaigun-Bochi_06

航空母艦「瑞鳳」戦役者慰霊碑。216柱が祀られています。

Sasebo-Higashiyama-Kaigun-Bochi_07

軍艦「妙高」戦役者慰霊碑。90柱以上が祀られています。

Sasebo-Higashiyama-Kaigun-Bochi_08

軍艦「那智」戦役者慰霊碑。約1000柱が祀られています。

Sasebo-Higashiyama-Kaigun-Bochi_09

軍艦「足柄」戦役者鎮魂之碑。300柱以上が祀られています。

Sasebo-Higashiyama-Kaigun-Bochi_10

軍艦「矢矧」戦役者慰霊碑。486柱が祀られています。

Sasebo-Higashiyama-Kaigun-Bochi_11

軍艦「羽黒」戦役者慰霊碑。800柱以上が祀られています。

Sasebo-Higashiyama-Kaigun-Bochi_12

軍艦「金剛」戦役者慰霊碑。1250柱が祀られています。

Sasebo-Higashiyama-Kaigun-Bochi_13

航空母艦「加賀」戦役者慰霊碑。800柱以上が祀られています。

Sasebo-Higashiyama-Kaigun-Bochi_14

航空母艦「飛龍」戦役没者慰霊碑。800柱以上が祀られています。

Sasebo-Higashiyama-Kaigun-Bochi_15

佐世保鎮守府潜水艦合同慰霊碑。伊号・呂号潜水艦合わせて2591柱が祀られています。

Sasebo-Higashiyama-Kaigun-Bochi_16

広場にある東郷平八郎元帥の像。広場では近所に住んでいると思われる子供たちがサッカーをしていました。

オンラインゲームの影響で艦艇ばかり注目され「聖地」として崇められることが増えてきているようですが、自分たちのために戦って散った方々の墓地であり、慰霊のための施設であることを忘れてはいけないと感じました。

鎮守府史跡探訪~旧佐世保飛行場・崎辺地区~

佐世保市民にもあまり知られていないことですが、佐世保湾に面する崎辺半島には飛行場がありました。現在は海上自衛隊佐世保教育隊、米軍用地があります。

場所は知っていたものの、佐世保に住んでいてもまず用事がない限り行かないところですので、行ってみました。

佐世保海軍航空隊の Wikipedia ページによると、

横空の成長を期に、航空隊の増設を図った海軍は、各軍港へ哨戒航空隊を設置することとした。その第一弾として、佐世保軍港に面した長崎県東彼杵郡日宇村の半島先端の浅瀬を埋立て、飛行場を設置した。この埋立地に佐世保海軍航空隊を開いたのが大正9年12月1日である。内海部にある呉鎮守府への航空隊設置は遅れ、大正14年に佐空の分遣隊を置いた。佐世保飛行場は滑走路が短く、陸上機の常駐には不都合が多かったため、陸上機はもっぱら大村海軍航空隊が常駐する大村飛行場を活用した。そのため、佐世保鎮守府には加賀・飛龍・瑞鳳・大鷹・雲龍・葛城と6隻の航空母艦が配備されたが、艦載機は佐空ではなく大村空や宇佐海軍航空隊で訓練・補給・休息を実施していた。

とのことです。

例のごとく、佐世保地方隊のページにも詳しく説明が掲載されています。

佐世保地方隊【西海の護り】:佐世保史料館(セイルタワー)【佐世保海軍航空隊~(佐世保教育隊、佐世保警備隊、佐世保弾薬整備補給所、佐世保衛生隊第2衛生科)】

さて、下の Google ストリートビューの撮影車が入っていって撮影しているとおり、一般車両でもある程度のところまでは許可を取らなくても入っていけますが、普通の用事では一般人が行くところではないので、周辺に迷惑をかけないよう行動したいところです。

現在は海上自衛隊、米海軍、佐世保重工業(SSK)用地で区切られていますが、SSK用地は日本版「海兵隊」とも言われている島嶼上陸作戦の精鋭部隊「水陸機動団」の用地になる模様です。

SSK:「水陸機動団」拠点に 保有する崎辺地区西側、防衛省と売買契約 /長崎 – 毎日新聞

SONY DSC
]3 SONY DSC

佐世保教育隊の入口に続く道。たまたま、半島の先から来た「U.S. NAVY FIRE RESCURE」と書かれた米海軍の消防車が入っていきました。

SONY DSC
]4 SONY DSC
SONY DSC
]5 SONY DSC

一般道のすぐ近くに停泊していた多用途支援艦「あまくさ」。熊本地震の被災地にいったようで「災害支援」の横断幕が掲げられていました。

SONY DSC
]8 SONY DSC
SONY DSC
]9 SONY DSC

一般道の行き止まりの場所。Google ストリートビューでも見えているとおり特に何もありません。佐世保港に停泊している補給艦「おうみ」が見えました。

この後、佐世保東山海軍墓地に行きました。

鎮守府史跡探訪~海上自衛隊佐世保資料館・セイルタワー~

6,7年ぶりに海上自衛隊佐世保資料館(通称、セイルタワー)に行ってきました。

西九州自動車道佐世保中央インター付近にあるため市外からのアクセスも簡単で多くの観光客が訪ずれている日本有数の海自の資料館ですが、自宅から5分もかからない位置にあっていつでも行けるという安心感と館内写真撮影禁止という理由から、なかなか行っていませんでした。

駐車場完備で入場料は無料。すぐ近くには佐世保バーガーで有名なハンバーガーショップもあります。 また、地図にも掲載されているとおり、この付近には旧佐世保鎮守府内にある海上自衛隊佐世保総監部、自衛隊病院、第一次世界大戦の凱旋記念館(佐世保市民ホール)、米軍住宅などがあるエリアです。

sail-tower-01

資料館の前面です。画面の上半分と下半分は建物の様式が全然違いますが、一つの建物です。下半分は、明治期に建築された「佐世保水交社」の建物の形をそのままに作り替えたものです。

↓(2016/05/14追記) 後日、全天球カメラ「RICOH THETA S」で撮影したものです。Google ストリートビューのようにマウスをドラッグすると視点を回転できます。

海上自衛隊佐世保資料館(セイルタワー) – Spherical Image – RICOH THETA

海上自衛隊佐世保地方隊「西海の護り」の解説ページによると、次のとおり。

Suikousha

佐世保水交社は1898(明治31)年、谷郷町より当地(上町)に移転しました。海軍士官の懇談、外国士官の接待、及び艦隊乗組士官の宿泊等のためにつくられ、大ホール、大食堂を備えた3階建ての洋館造りでした。  戦後、1945(昭和20)年米軍が接収、将校クラブ(タウンクラブ)として使用されていましたが、1982(昭和57)年、日本に返還、1994(平成6)年その一部を防衛庁(現防衛省)に所管換され、修復後、新史料館となりました。

特徴的な8角形の塔がそのまま現在にも引き継がれていることが分かると思います。実は水交社の隣にある保育園に通っていたので、改築される前の水交社も当時から知っていました。子供からは「薄気味が悪い洋館」というイメージしかありませんでしたが、趣のある建物であったことを覚えています。

sail-tower-02

sail-tower-03

正面から向かって右を見ると、すぐ近くにある佐世保凱旋記念館(市民ホール)も見えます。昨年修復工事が終わったばかりで、建築当時に美しい外観が蘇っています。

さて、前述のとおり資料館の内部は一部を除いて基本的に撮影禁止です。受付の方にあらためて伺うと、受付正面のロビーにある記念撮影エリアと7階の展望ホールから外の景色を撮影するのはOKとのことでした。

写真つきの展示内容紹介は、佐世保地方隊のページにも掲載されていますが、ぜひ足を運んで見ることをオススメします。インターネットに掲載できる情報が少ないので伝わりにくいかもしれませんが、何十分もある映像コンテンツがいくつもあったり、明治から現在に至る艦船の模型が大量にあったり、艦船の中で使われていた調度品や東郷平八郎直筆の書などなど…、一日中かけて見てまわっても良いくらいの展示物があります。 貴重な展示品はもちろんのことですが、個人的に佐世保港内でイージス艦を操船できるシミュレータが面白かったです。

sail-tower-04

記念撮影エリア。衣装を着て撮影することができます。

sail-tower-05

7階の展望ホールより佐世保港を望む。手前の海上自衛隊施設と、高速道路をはさんで向こう側には米海軍艦艇と海自艦艇が見えています。

撮影可能なエリアが限られていると、どうしても他の方のブログで掲載されているのと同じような写真ばかりになっちゃいますね(笑) 屋外には「山内短五糎(センチ)砲」の展示がありますが、撮影を忘れていました。凱旋記念館の写真に移っている画面左手の石垣の上に展示されています。

この後、旧佐世保飛行場があり現在は佐世保教育隊・米軍施設がある崎辺地区と佐世保東山海軍墓地に行ってきました。

鎮守府史跡探訪〜佐世保軍港クルーズ〜

色々と私を遊びに連れ出してくれる920さんのお兄さんで、佐世保観光コンベンション協会の吉川拓朗さんがガイドを務める、佐世保の軍港クルーズに参加しました。

佐世保の「軍港クルーズ」、今季の運航始まる : 社会 : 読売新聞(YOMIURI ONLINE)

今シーズンは4月4日から始まったそうで、今日は初めての週末。晴天とまではいかないものの、天気にも恵まれていて絶好のクルーズ日和でした。

まず最初に向かったのは、JR佐世保駅。駅構内にある「佐世保観光情報センター」の受付にて、軍港クルーズのチケットは販売されています。改札が1つしかない小さな駅ですので、すぐに見つけることができると思います。情報センターの入口の向かって右手には佐世保駅名物(?)のボンビーの石像があります。そういえば、結構長い間居座ってますね(笑)

DSC07855

情報センターのカウンターで言えば乗船チケットを購入することができます。1時間のクルーズで1人2000円でした。

桟橋は情報センターがあるJR佐世保駅から目と鼻の先です。チケットにも地図が印刷されていますが、JR佐世保駅のみなと口を出て正面にある、佐世保五番街を貫けたところにあります。佐世保駅を出るとすぐに綺麗な公園とその後に広がる海を見ることができます。

sasebo-bay-map

歩いて数分の距離です。JR佐世保駅は特急みどり号で新鳥栖駅や博多駅まで直通で行けますので、アクセスのしやすさもすばらしいですね!

DSC07847

遊覧船は、まるで阪神タイガースを思わせるカラーリングです(笑)。普段、一般の船が航行できない海域にも入るそうなのでとにかく目立つ色なのかもしれません。佐世保湾の広さは、横須賀港の2倍、長崎港の10倍もの海域があり、その8割が軍用に指定されているらしいです。この鯨瀬埠頭周辺は、その中でも限られた貨客船埠頭で西海市の大島や五島行きのフェリーもここに着きます。

遊覧船は2つのデッキがあり、どうせなので見晴しが良さそうな上のデッキに上がりました。全体の定員は60名ほどらしいです。

DSC07844

ガイドを勤める拓朗さん。制服姿がカッコいい!

オンラインゲーム「艦隊これくしょん」のブームで、いわゆるガチな方々が多いのかなと思ったらそんな事もありませんでした。意外で少し驚いたのが、年配の方、特に一人で乗られている年配のご婦人の方などがいたこと。

上のデッキの後部左舷側の席に座っていると軍港にはおよそ似合わない品の良さそうな格好の年配のご婦人が上がってこられたので、席を譲ろうと立ったところ、「いいのよ、私は陸側を見たいから」と笑顔で返され、デッキにあった台を右舷側に置いて座られていました。自分らは初めての乗船でしたが、右舷が陸側ということをご存知のところ、何度も乗られている方のようでした。

※ 実際に佐世保港内を半時計廻りで航行したので、右舷が陸側(艦艇が停泊している方向)でした。なお、クルーズが終わった後から拓朗さんに伺った話では、航路は変更になることがあるようです。 ※ あ、別の年配の男性に席は譲りましたよ!どうせカメラを構えてずっと立ってるつもりだったので…(笑)

さあ、いよいよクルーズの開始です!

160409_001

乗り場の隣に停泊していた佐世保市の防災船「つくも」。船上火災などに対応するための船らしいです。写真では分かりづらいですが、赤い放水器が船上に2つ見えます。こういう細かなところにも拓朗さんのアナウンスがあり、とても分かりやすかったです。

160409_002

緑色の屋根の建物が米軍第7艦隊の司令部施設です。左手には桜、右手には米軍艦、奥には旧佐世保海軍工廠時代から使われていて現役で稼働している佐世保重工業(SSK)の250トンカンチレバークレーン…というよく考えたらスゴい組み合わせ。国連旗も掲げられているのですが、NATO軍の艦艇も入ってくるかららしいです。

160409_003

米海軍ワスプ級強襲揚陸艦、ボノム・リシャール。全長257メートル、オスプレイなどの垂直離着陸機を運用しているヘリ空母らしいです。米軍艦艇は全然知らないので現物を眺めながら解説を聞くとよく分かります。この艦の乗員は、東日本大震災の時、米軍による「トモダチ作戦」で以前佐世保を母港にしていた強襲揚陸艦エセックスに乗って、多くの被災者を救援をした方々とのことです。

160409_004

米海軍サン・アントニオ級ドック型輸送揚陸艦、グリーン・ベイ。ステレス型の面白い形をしてます。現在は女性が艦長をしているとのことです。

160409_005

米軍の艦艇2隻が停泊しているすぐ隣には、我が海上自衛隊の立神岸壁に停泊中のイージス艦「ちょうかい」がいました。なぜすぐ近くに停泊しているかというと…

sasebo-bay-map2

海上自衛隊立神岸壁は、上図のように米軍佐世保基地の先端に位置しています。港湾海域は広いわりに陸地が狭いため、米軍、自衛隊、SSK、一般の港湾施設が密集しまくっています。矢印の赤線が遊覧船の航路です。この航空写真でも平瀬係船池に停泊する米軍艦艇と海自艦がすぐ近くにあるのが分かります。せまいぞ!

なお、戦前までは緑線の米軍基地と青線のSSKはすべて日本海軍の施設でした。

160409_006

左がちょうかい、右がグリーン・ベイ。ほんとに近いです。

160409_007

はりきって一眼レフと望遠レンズを持っていきましたが、クルーズの前半はハンディカムで動画撮影をしていました。このあたりの写真はすべてハンディカム撮影です。画質がイマイチなのはご愛嬌。ただ、手ぶれ補正はなかなか優秀でした。

160409_008

ちょうかいの船尾、トランサム板にあるラッパ状のものは曳航型のソナーを出す部分らしいです。

160409_009

ちょうかいの隣に停泊中の海上自衛隊とわだ型補給艦「はまな」。インド洋にて多国籍軍に洋上補給した実績がある艦です。

160409_010

160409_011

2014年に就航したばかりのあきづき型護衛艦「すずつき」。イージス艦のサポートが任務の一つらしいです。倉島岸壁は一般公開があるため艦内にまで入ることができますが、立神岸壁は米軍基地内を通らなければならいため、一般人は近づいて見る機会がほとんどありません。

160409_012

SSKの250トンカンチレバークレーン。大正2年に建てられ現在でも稼働中です。立神係船池の中央にあり、右側は米軍施設、左側はSSKになります。ちなみにこのクレーンは(どのタイミングかは分かりませんが)電飾が付けられて光っている時があります。

160409_013

戦艦武蔵の艤装工事を行なった第4ドック(旧第七船渠)。ちょうど大型のバルクキャリアーがドック内に入っていました。

この後、米軍赤崎岸壁へと遊覧船は進んで行きましたが…

sasebo-bay-map3

米軍の原子力潜水艦が停泊していたため、カメラ撮影をしないでくださいとアナウンスが流れました。慌てて録画を止めます。潜水艦の近くには、機関砲を備えた米軍の小型艇がこちらを監視してウロウロしています。乗船前には「撮影NGになることもある」という情報を知らされてはいなかったので、少し驚きました。停泊している艦艇にもよると思いますが、こういうこともあるんだなと。

なお、当たり前といえば当たり前ですが、監視している小型艇の米兵の方も遊覧船から手を振ると振り返してくれるくらいフレンドリーだったので危険なことは一切ありません。任務ご苦労様なのです。

160409_014

原潜を通り越した後の米軍赤崎貯油所のタンク。原潜は燃料補給の必要がほぼない為、給油ではなく乗員の休養や食料の積み込みのために停泊していたようです。

DSC07311

佐世保湾内に面した針尾島・浦頭埠頭。終戦直後の復員で100万人以上の兵士、一般人がここから日本各地へ帰っていった場所です。左手の記念公園の桜が咲いているのが分かります。

DSC07352

DSC07365

DSC07400

崎辺地区にある海上自衛隊佐世保教育隊施設。ここで若い自衛官が訓練を行っているらしいです。崎辺も陸からはあまり見る機会がないので、軍港クルーズならではの風景です。

DSC07406

訓練用のカッターボートが吊ってあるのが見えました。

DSC07450

米軍の前畑弾薬庫。建物の周りに立っているのはすべて避雷針らしいです。建物を囲むように盛ってある土塁は万が一の爆発時に爆発エネルギーを上に向けるためのものとか。写真のような建物が海沿いにいくつもあり、4万トンもの弾薬が常備されているらしいです。噂ではここに核兵器があるとかないとか…。瓦屋根なのは、旧日本海軍時代から使ってた建物っていうことでしょうか。

DSC07503

前畑弾薬庫のすぐ隣にある前畑造船所。はしけ状の浮いている乾ドックです。こっち側から見るのは初めて。

DSC07533

さらにその隣にある、旧日本海軍の水雷庫。100メートル以上ある横長の石造りの建物です。屋根にはソーラーパネルが見えます。ここに日本海軍が誇る酸素魚雷を格納していたらしいです。

最古の Ruby 実装をちょっとだけ覗いてみました

職場で定期的にやることになった Ruby 勉強会の資料作りをしていて、ブロック構文を投げてメソッド側から述語を呼ぶコールバック機能はいつから設計されているのかな、と気になって調べていました。

ドキュメントにも、以前から

(ブロック付きメソッドは)最初はループの抽象化のために用いられていたため、 特にイテレータと呼ばれることもあります。

メソッド呼び出し(super・ブロック付き・yield) (Ruby 2.3.0)

という記述があります。(現在では、File.open() 時の自動後処理や、Proclambda の述語的な記述用途でもあるので、必ずしもイテレータではないです)

いろんなページを見ていると、

私家版Ruby史

という Ruby の歴史を分かりやすくまとめたページを見つけました。

最古の Ruby

今から20年以上前、1994年初夏のバージョン 0.49 が最古のスナップショットらしいです。下記からダウンロードすることができます。 (それ以上古いスナップショットは、Matzさんの転職のどたばたとHDDのクラッシュによって失われてそうです。)

ftp://ftp.ruby-lang.org/pub/ruby/1.0/

each メソッドはイテレータとして説明があるものの、サンプルで使っているところを見つけることができませんでした。 (意外なことにサンプル中の繰り返しは for ... in 構文を多用してます)

以下、spec ファイルにあったイテレータの説明です。

** イテレータ

イテレータとは制御構造(特にループ)の抽象化のために用いられるメソッドの 一種である. イテレータの呼び出しは以下の構文で行なわれる.

do 文1 using 変数 文2 end [ do ]

「文2」をブロックとして設定し, 文1のメソッドをイテレータとして評価
する. 文1のトップレベルのメソッドだけがイテレータとして呼び出され, 
レシーバを表す式や, 引数の式はイテレータとしては呼び出されない. 文
1に複数の式があれば各々がイテレータとして順に呼ばれる.

イテレータ内でyield valueが実行されると, その値がdo文で指定された変数 に代入されブロックが実行される. ブロックの実行が終了するとその値は yield式の値として返される. あるメソッドがイテレータとして呼び出された かどうかは関数iterator_p()で知ることができる. 中にはEnumerableモジュー ルのgrepメソッドのようにイテレータとして呼ばれた時と普通のメソッドとし て呼ばれた時とで動作が異なるメソッドもある.

for 変数 in 式 文 end [ for ]

式の各要素に対し文を実行する. これは以下のdo文と等価である.

    do (式).each using 変数
      文
    end

よって式の値のオブジェクトがメソッドeachを持たない場合, forを実行
すると例外が発生する.

今の do |var| ... end 構文ではなく、do ... using var ... end という形をしてたんですねー、面白い。 例外処理も begin ... end ではなく protect ... end で囲んであって色々と興味深いです。

最近の構文しか知らない方は、ぜひダウンロードして読んでみることをオススメします。

また Ruby でイテレータを、という考え方は設計段階からあったようです。

ずいぶん長い間いろいろな言語をつまみぐいして, よさそうなものを拾い集めてきました.rubyはそういう概念の集合 でもあります.例えば例外とかイテレータとか.

[ruby-list:63] Why ruby

ちなみに C# は2005年暮れに発表された 2.0 まで、yield キーワードがなかったため、コルーチンすら 書けませんでした。こわい。

MLやCVSを詳しく追っていったわけではありませんが、ブロックを投げてなんでもやっちゃえる動きは、 その後の最適化、考え方の抽象化によって定着・進化していったのだと思いました。

Raspberry Pi と Ruby で「Lチカ」をやってみました

ラズパイを何年も前に購入して Raspbian を入れて ssh できて、X も動いてふぅ…と、ひと落ちつきした後、全然触っていませんでした。

せっかくラズパイを持っているんだからと思い立ち、ヤフオクで売っているキットを購入。子供の頃からやってみたかった電子工作に初挑戦です。

設計

Fritzing というソフトが GUI でブレッドボード上にいろいろ乗せてみることができるようだったので、ダウンロードして使ってみました。初心者でも分かりやすくて良いソフトですね!

Windows 版を使ってみたんですが、GLESとかQtといった香ばしそうなライブラリが同梱されていました。

それで、作ってみたのは下の図です。自分の持っている初代の Model B までパーツ一覧に入ってて嬉しい。

raspi_Lchika_map

これは回路図とは呼ばない気がします。呼び方すら分かりません。

とりあえず、GPIO#x → 抵抗 → LED → GND としとけば良さそうなので、単純に5組配線してみました。

コマンド

ラズパイで LED 制御っていうのは、もはや散々語り尽くされた感があるので、自分の覚書としてすら書いておく意味があまりない気もするのですけれど、一応書いておきます(・ω・`)

export GPIONO=27 # 制御したいGPIOの番号

echo $GPIONO > /sys/class/gpio/export            # これで制御可能状態になる
echo out > /sys/class/gpio/gpio$GPIONO/direction # たぶん電流の流れる方向だこれ

echo 1 > /sys/class/gpio/gpio$GPIONO/value       # 電流ON
echo 0 > /sys/class/gpio/gpio$GPIONO/value       # 電流OFF

echo $GOIONO > /sys/class/gpio/unexport          # これで制御可能状態をやめる

Raspbian には、最初から入っているかどうか分かりませんが、自分が使っているバージョンでは入っていた gpio というコマンドが使えるようです。

export GPIONO=27
gpio 27 export out
gpio 27 unexport

なんとなく触っただけですが、export と unexport、direction の設定がこれで出来るようです。

配線が終わり、まずはシェルスクリプトで

while :; do echo 1 > /sys/class/gpio/gpio$GPIONO/value; sleep 1; echo 0 > /sys/class/gpio/gpio$GPIONO/value; sleep 1; done

してみると、LED 一つを1秒ごとにチカチカすることができました!

どうせなので Ruby でやる

他所のラズパイを使ったLチカの記事は、大抵シェルスクリプトや Python を使ってますが、どうせなので Ruby でやります。…と言っても、↑のコマンドを呼び出すだけのものですが ;)

追記

記事を書きながらラズパイ上の mruby でLチカしてる人はいないかな、いるだろうなっと検索したところ、松本亮介さんが3年以上前にされていました。

人間とウェブの未来 – Raspberry PiのGPIOをmod_mrubyで操作してブラウザからLEDを光らせてみた

しかも自分のラズパイと同じモデルっぽいし、mruby-WiringPi を使ってちゃんと…!さ、さすが!

動かすぞい

キットについていた説明書やネットの情報を頼りに組んだら、すごく簡単にできました。

ソフトウェアからハードウェアを見える形で制御できるって魅力的ですね!

電流やらΩやら、その辺の計算は全然分かりません。とりあえず、最終的に GND に落とし込めばいい…という程度ですが、必要に応じて触っていければいいなぁと思いました。

駆逐艦の模型の探照灯に LED を埋め込んだりできたら楽しそう。

Ruby (とHSP)によるライフゲーム

高校生の頃買った、奥村晴彦先生の「C言語による最新アルゴリズム辞典」で知ったライフゲーム。当時は C を覚えたばかりで、グラフィカルなソフトなんてほぼほぼ書けませんでした。 最新アルゴリズム辞典ではグラフィックを使わず端末上の文字で各セルを表現するものでしたが、どうせなら綺麗な見た目でやってみたいと思ってなつかしの HSP でちまちま書いてみていました。 そのキャプチャ動画を↓に載せています。

[embedplusvideo height=”356″ width=”584″ standard=”https://www.youtube.com/watch?v=iFUeLVTxWvc?fs=1″ vars=”ytid=iFUeLVTxWvc&width=584&height=356&start=6&stop=&rs=w&hd=0&autoplay=0&react=1&chapters=&notes=” id=”ep3525″ /] [Lifegame – YouTube]1

マウスを押下した場所に R ペントミノを配置することができるので、安定期に入ったセルをかき混ぜて遊ぶことができます。 タイムスタンプを見たら10年以上前ですね、こわい。

HSP の動かせる環境がないので動確はしていませんが、元になった(はずの)コードを貼りつけておきます。 (ところで、HSP をやっている人って今いるのかな?)


最近に Ruby で書いてみたものも掲載します。

手元の環境(PuTTY経由)では、カーソルの表示・非表示のエスケープシーケンスが上手く動いてませんね。

鎮守府史跡探訪〜陸軍佐世保要塞 石原岳堡塁〜

色々とお世話になっている920さんの運転する車で、長崎県西海市にある陸軍・佐世保要塞の石原岳堡塁に行ってきました。

920さんのお兄さんの吉川拓朗さんは、去年話題となった「佐世保軍港クルーズ」で船上ガイドを勤めている方で、佐世保の歴史・特に明治期以降について大変お詳しい方です。今の季節は寒いので軍港クルーズの定期運航はないようですが、この日もチャーター便での出航があったようです。そんなお兄さんのご提案で、夕方から「石原岳堡塁」に連れていってもらえることになりました。

ishiharadake-shinrin-kouen

石原岳堡塁は森林公園として整備されていて、地図を見てもわかるとおり、ちょうど佐世保港の入口付近にあります。敵艦の侵入に備えて陸軍が明治期・日露戦争の頃に設営した堡塁らしいです。

DSC06281

佐世保から西海橋を経由して北西に進むとあります。佐世保に住んでいてもこちら方面には用事がないため、ほとんど来たことがありません。さいかい交通のバスすら久々見た感…。

DSC06285

公園に到着すると、周りを緑に囲まれた自動車が数台止められそうな駐車エリアがあり、その奥に上の写真のような史跡が見えていました。想像以上にちゃんとしている!

DSC06283

駐車エリアに設置されていた立て看板です。

この堡塁は、記録によると、佐世保軍港防衛のために1897年(明治30年)10月21日に起工し、1899年(明治32年)12月31日に竣工したもので、全面積は約2haあります。 標高73〜77mに備えられた砲種は、クルップル式10センチカノン砲6門、鋼製9センチ臼砲4門、砲座数は7基となっておりました。 この後、1929年(昭和4年)6月14日には、陸軍の台帳から全部が除籍されました。(佐世保要塞築城史より)

日清戦争が明治27〜28年、日露戦争が明治37〜38年なので、ちょうど艦隊戦でドンパチやっていた頃に設営されたようです。お兄さんのお話によると「太平洋戦争の始まった頃は日本の海軍力が増強・制海権もしっかりして、このような本土防衛のための対艦射撃施設は不要になっていたのでは」とのご説明がありました。

なるほど、太平洋戦争時期に佐世保湾に敵艦が入ってくるような状況ではもはや日本が負けているような状況でしょうし、昭和初期の陸軍は既に大陸への進出を伺っている頃合いでもあります。昭和4年に除籍されたことに納得がいきました。

DSC06309

DSC06292

堡塁は一段低く掘ったコンクリートと石積みの堅牢な壕の中にたくさん並んでいました。木々が生い茂る小高い山の中にこんなに立派な建造物があるのは、まるで異世界に来たみたいな感覚。思わず「おおっ」と声をあげてしまいました。

DSC06344

DSC06299

並んだ堡塁の向かって左手には、地下へとゆるやかに下るトンネルが…。

DSC06313

中に入ってみると、外よりは少し暖い感じがしました。なんだかミステリーハンターになった気分です(笑)。 30メートルほど奥に進むと、突き当たりが二手に分かれており、それぞれ小部屋がありました。

DSC06317

DSC06327

DSC06326

50mm の単焦点レンズしか持っておらず、小さな空間を全体で撮ることができなかったので分かりづらいと思いますが、壕の中に侵入してきた敵を射撃するトーチカのようでした。

DSC06330

分厚い石造りの壁に空けられた小窓からは外が伺えます。

DSC06362

DSC06364

辺りも薄暗くなっておりブレてしまっていますが、トンネルを出て外堀の中を進むと、トーチカを外側から見ることができました。

DSC06361

駐車エリアにあった案内板です。中央にある堡塁跡から左上に描いてある説明書きがないイラストの部分にあるトーチカまで地下トンネルで行き来できるようでした。

この案内板にはテントのイラストや、トイレ・炊事棟が描かれているので、この堡塁にも泊まることができるのかな、と思いました。

九州でも大雪となる前日の寒い日だったので、自分たち以外の利用者はなく、とても静かでした。

mruby で有理数を扱う mruby-rational を書きました

本家 CRuby の Rational クラスは、バージョン 1.9 から require せずに使えるようになっていますが、mruby では本体に組み込まれておらず、該当するような mrbgem も見つからなかったので書いてみました。

mruby はかなり基本的な機能以外は徹底的に削ってあり、組み込まれた機能も ISO に準拠するような形で実装されています。

Ruby の ISO を確認したところ、Rational クラスは特に入ってないみたいでした。ということで、mruby-rational では挙動を CRuby 1.9.3 のリファレンスに合わせるように書いています。

mruby-rational を使うと、次のように有理数を用いた計算ができます。

a = Rational(1, 4)
  => (1/4)

b = Rational(2, 3)
  => (2/3)

a + b
  => (11/12)

(a + b).to_f
  => 0.91666666666667

x = Rational(1, 3) * 2
  => (2/3)

y = Rational(1, 2)
  => (1/2)

x * y
  => (1/3)

CRuby では rational.c として C で実装されていますが、mruby-rational は Ruby だけで実装しています。必要となるメソッドが Ruby だけで十分そうだった点、せっかくコンパクトな mruby の実装なのだから、gem のコードも簡潔に書きたかった点、などなどいろいろ理由はありますが、本当は自分の書いたコードにあまり自信を持ってないので、風通しをよくして他の方でもバグを見つけてもらいたいな、といった狙いもあります。

中で行なっている約分では、最大公約数を見つけるのにユークリッドの互除法を用いています。

既知の問題点(2015-12-18時点)

ある程度、CRuby の Rational と区別して切り分けして使う分には使えると思いますが、まだまだ互換性がありません。今日までのところ、計算上の精度まわりもチェックをしていませんのでこれから叩き上げたいところです。

Rational.initialize が外に出てる

Kernel.#Rational からインスタンスを作成する際、Rational.convert 経由で普通に Rational.new しています。 つまり外からも new が叩けます。 CRuby だったらアクセサで隠して send でぶっ叩いたり、caller で呼出元によって例外を吐いたりと色々方法がありそうですが…。 もう少し勉強してなんとかならないか考えます。

ちなみに CRuby の rational.c では、rb_undef_method(CLASS_OF(rb_cRational), "new") しておいて C 関数でインスタンス作っているようです。ずるい!

inline static VALUE
nurat_s_new_internal(VALUE klass, VALUE num, VALUE den)
{
    NEWOBJ(obj, struct RRational);
    OBJSETUP(obj, klass, T_RATIONAL);

    obj->num = num;
    obj->den = den;

    return (VALUE)obj;
}

Rational.convertprivate じゃなく形式的に CRuby と合わせているだけなので、利用者サイドの観点からすると不要なのかもしれません。

初期化時に投げられる引数の種類が少ない

個人的に Rational クラスに求めているものは、分子と分母のペアなのでさほど困りはしないのですが、mruby-rational では今のところ

Rational(2, 3) # => (2/3)
Rational(5)    # => (5/1)

という作り方しかサポートしません。つまり、下記のように文字列を一つ渡す

Rational('1/3')  # => (1/3)
Rational('0.33') # => (33/100)

ではエラーとなります。CRuby では、string_to_r_internal() でガリガリやっているっぽいです。 また、CRuby では

Rational(0.3)
  => (5404319552844595/18014398509481984)

となる Float を一つだけ取る初期化も

Rational(0.3)
  => (5.4043195528446e+15/1.8014398509482e+16)

という具合にBIGNUM周りの違いが出ています。

Complex クラスとの整合性はとらない

CRuby では、Complex 型を取り扱う挙動も rational.c に含まれていますが、これはそのままでいいんじゃないかな、と思っています。

なんとなく方向性は分かってきたので、少しずつ手を入れていきたいと思います。