内房線長期運休に対する京葉臨海鉄道を活用した代替輸送の提案

内房線長期運休に対する京葉臨海鉄道を活用した代替輸送の提案

――既存貨物鉄道の災害時旅客輸送への一時活用

1. 提案の概要

2026年9月の大雨により、JR内房線では姉ケ崎駅~木更津駅間に大きな被害が発生し、復旧には少なくとも3か月程度を要する見込みとなっている。

内房線は千葉市から市原市、袖ケ浦市、木更津市方面を結ぶ主要な交通手段であり、この区間の長期運休による影響は大きい。JR東日本によれば、ピーク1時間の利用者はおおむね8,000人に達し、これを定員50人のバスだけで輸送する場合には約160台分の輸送力が必要になる。一方、現時点で確保できている代行バスは1時間あたり1~2台程度にとどまっており、通常の代行バスという方法だけでは鉄道の輸送力を十分に代替できない状況にある。

JR東日本は、被害が比較的少ない長浦駅~木更津駅間について、上り線を利用した暫定的な単線運転を検討している。これが実現すれば、バスで代替する区間を姉ケ崎駅~長浦駅まで短縮できるため、現在より大幅な改善が期待できる。しかし、それでも朝夕を中心とした大量の旅客を姉ケ崎駅~長浦駅間で輸送する必要があり、バスの確保が輸送力を制約する問題は残る。

そこで本提案では、内房線の復旧までの緊急措置として、蘇我駅から袖ケ浦市の京葉久保田駅までを結ぶ貨物鉄道、京葉臨海鉄道を一時的に旅客輸送にも利用することを提案する。

想定する経路は、蘇我駅から京葉臨海鉄道で京葉久保田駅まで旅客を輸送し、そこから短距離のシャトルバスで長浦駅へ接続するものである。長浦駅~木更津駅間でJR東日本が検討している暫定単線運転と組み合わせれば、蘇我駅から木更津方面へ向かう第二の輸送経路を構成できる。

本提案の目的は、京葉臨海鉄道によって内房線の全輸送量を代替することではない。限られた代行バスに集中する需要の一部を既存の鉄道へ移し、鉄道、バス、被災していない内房線を組み合わせることで、地域全体として確保できる輸送力を増やすことにある。


2. 背景――8,000人をバスだけで輸送することの難しさ

鉄道が長期間運休した場合、一般的にはバスによる代行輸送が行われる。

しかし、今回の内房線では、その方法だけで必要な輸送力を確保することが難しい。

JR東日本千葉事業本部は、今回の運休区間について、ピーク1時間のおおむね8,000人をバスで輸送するには、定員50人として約160台分の輸送が必要になるとの試算を示している。実際にはバスが一度旅客を運べば終わりではなく、折り返して再び輸送する必要があるため、運行距離が長くなるほど必要な車両数と運転士数も増加する。

さらに問題となるのが、短期間で大量のバスを確保すること自体の難しさである。

JR東日本は関係機関との調整を行っているものの、9月28日から予定されている代行輸送について、現時点で確保できているのは1時間あたり1~2台程度としている。車両だけでなく運転士にも限りがある以上、費用を投入すれば直ちに必要な輸送力を確保できる問題ではない。

このため、今回の代替輸送では、バスの台数を増やすことと同時に、一台のバスが担当する距離を短くし、限られた車両を何度も利用できる輸送構造をつくることが重要になる。

JR東日本が検討している長浦駅~木更津駅間の暫定単線運転は、まさにこの考え方に沿ったものである。鉄道が利用可能な区間を可能な限り鉄道に戻し、バスが担当する区間を姉ケ崎駅~長浦駅に短縮することで、同じバス台数でもより多くの旅客を輸送できるようになる。

本提案は、この考え方をさらに一歩進めるものである。


3. 京葉臨海鉄道を利用した第二の輸送経路

京葉臨海鉄道は、蘇我駅を起点として京葉工業地域を南下し、袖ケ浦市の京葉久保田駅までを結ぶ貨物鉄道である。

通常は工業地帯の貨物輸送を担っているが、内房線とは別の経路によって蘇我から市原・袖ケ浦方面まで到達している。また、蘇我駅ではJR線と物理的に接続しており、現在もJR貨物との間で貨物列車の受け渡しが行われている。

今回の内房線不通を考える上で重要なのは、被災した内房線とは別に、蘇我から袖ケ浦方面まで到達する鉄道インフラが既に存在していることである。

そこで、蘇我駅から京葉臨海鉄道を経由して京葉久保田駅まで旅客列車を運転し、そこから長浦駅までを短距離のシャトルバスで接続する。

長浦駅~木更津駅間の暫定単線運転が実現すれば、

蘇我駅 → 京葉臨海鉄道 → 京葉久保田駅 → シャトルバス → 長浦駅 → 内房線 → 木更津駅

という経路を構成できる。

これにより、姉ケ崎駅~長浦駅間の代行バスへ集中する旅客の一部を、蘇我駅から別経路へ分散できる。

京葉久保田駅から長浦駅までは比較的近いため、接続バスは短距離の往復に専念できる。列車の到着に合わせて複数台をまとめて運行し、長浦駅で旅客を降ろした後すぐに京葉久保田駅へ戻すことで、少ない車両を繰り返し利用することができる。

大量輸送に適した鉄道で可能な限り長い距離を運び、バスは鉄道同士を接続する短距離輸送に集中させる。この役割分担によって、現在不足しているバスと運転士をより効率的に利用することができる。


4. 久留里線キハE130系の活用

京葉臨海鉄道は非電化路線であるため、内房線で通常使用されている電車をそのまま走らせることはできない。

一方、木更津駅を起点とする久留里線では、ディーゼルエンジンによって走行するキハE130系気動車が使用されている。久留里線も今回の災害によって運転を見合わせていることから、運用可能な車両を確保できるのであれば、臨時輸送用車両として活用できる可能性がある。

京葉臨海鉄道と久留里線はいずれも軌間1,067mmの非電化鉄道であるため、基本的な走行条件には共通点がある。また、JR東日本の気動車による検測車両が京葉臨海鉄道へ入線している実績もあり、JRの気動車が物理的に一切入線できない路線というわけではない。

ただし、これだけをもってキハE130系による営業運転が可能と判断することはできない。

車両限界、軸重、曲線や分岐器の通過条件、信号保安装置、踏切制御、列車無線等について、車両と線路の双方から技術的な確認が必要になる。また、久留里線の車両が木更津側に留置されている場合には、内房線の被災区間を越えて蘇我側へどのように移動させるかという問題もある。

したがって、キハE130系については使用を前提とするのではなく、既に近隣に存在する車両として、最初に適合性を確認すべき候補とすることが適切である。


5. 仮設設備を京葉久保田駅に集中する

数か月間の緊急輸送を目的とする以上、通常の旅客鉄道と同等の設備を全線に整備することは合理的ではない。

そこで本提案では、途中の貨物駅では旅客を乗降させず、蘇我駅~京葉久保田駅を原則として直行運転する。

千葉貨物、浜五井、前川、北袖等に旅客駅を設ければ、それぞれにホーム、照明、柵、道路への安全な動線等が必要となり、工期と費用が増加する。今回必要なのは沿線全体に新しい旅客鉄道を整備することではなく、内房線復旧までの間に一定の輸送力を確保することである。

蘇我駅ではJR線と京葉臨海鉄道が既に接続しているため、既存のJR旅客ホームから臨海本線方面へ列車を運転できれば、新たな乗降設備を設ける必要がない。

この運転が現在の信号設備や構内配線で可能かについては詳細な確認が必要であるが、実現できれば、新たに整備する主要な旅客設備を京葉久保田駅側に集中できる。

京葉久保田駅についても恒久的な駅を建設する必要はなく、数両編成に対応した仮設ホーム、安全な旅客動線、照明、柵等を整備し、係員を配置する方法が考えられる。運賃収受についても、通常の自動改札設備を新設するのではなく、既存のJR乗車券との一体的な扱いや臨時改札等によって設備を簡素化する余地がある。

こうした方法によって、工事対象を最小限に抑えながら早期の運行開始を目指す。


6. 貨物輸送との両立

京葉臨海鉄道は、京葉工業地域の物流を支える現役の貨物鉄道である。

旅客輸送を実施する場合でも、既存の貨物輸送への影響は可能な限り小さくする必要がある。

そのためには、貨物列車を停止して旅客列車へ置き換えるのではなく、既存ダイヤの空き時間を利用するとともに、必要に応じて朝夕の貨物列車を旅客需要の少ない時間帯へ移動する方法を検討する。

京葉臨海鉄道は単線であるものの、途中には列車交換が可能な設備が存在し、実際に複数の貨物列車を処理している。したがって、単線であることだけを理由として旅客列車の追加が不可能になるわけではない。

一方で、公開されている貨物列車の時刻だけから、何本の旅客列車を追加できるかを正確に判断することもできない。貨物駅での入換作業、交換設備の有効長、閉塞方式、荷役時刻、荷主との契約等も運行計画を左右するためである。

まずは既存の貨物輸送を維持したまま運転できる本数を検討し、それだけでは十分な輸送力を確保できない場合には、朝夕の一定時間に限って貨物列車の時刻を変更することが考えられる。

内房線の復旧まで数か月という期間であれば、貨物輸送を恒久的に変更する必要はない。旅客需要の集中する時間帯と貨物輸送を時間的に分離することで、双方の輸送機能を可能な限り維持することが重要である。


7. 期待できる輸送効果

京葉臨海鉄道による臨時旅客輸送だけで、ピーク時約8,000人という内房線の需要をすべて処理することは難しい。

しかし、今回必要なのは一つの交通手段だけで全需要を処理することではない。

例えば、仮に一列車で数百人を輸送し、1時間に複数本を運転できれば、その人数については姉ケ崎駅~長浦駅間の代行バスを利用する必要がなくなる。50人程度を輸送するバスと比較すれば、一列車によって複数台から十数台分のバス輸送を置き換えることができる。

さらに重要なのは、京葉久保田駅から長浦駅までの接続バスを短距離で繰り返し運行できることである。同じ台数のバスでも、長距離の代行輸送に使用する場合より多くの旅客を輸送できる。

したがって本提案の効果は、京葉臨海鉄道そのものの輸送人数だけで評価すべきではない。

内房線の暫定運転、姉ケ崎駅~長浦駅間の代行バス、京葉臨海鉄道、京葉久保田駅~長浦駅間のシャトルバスを組み合わせることで、一つの経路に集中している需要を複数の経路へ分散し、限られた車両と運転士から得られる輸送力を最大化することに意味がある。


8. 実現に向けて確認すべき事項

本提案を実施できるかどうかについては、公開情報だけでは判断できない技術的な事項が残されている。

しかし、最初の段階で確認すべき事項は比較的明確である。

まず、キハE130系等の利用可能な気動車について、京葉臨海鉄道の車両限界、軸重、曲線、分岐器、信号保安設備等との適合性を確認する必要がある。

次に、蘇我駅の既存旅客ホームから京葉臨海鉄道方面へ旅客列車を運転できるか、信号連動装置や構内配線を含めて確認する。

京葉久保田駅では、数両編成の列車を停車させる仮設ホームの設置場所、安全な旅客動線、バスの乗降・待機場所を現地で調査する必要がある。

これらと並行して、京葉臨海鉄道の実際の運行データを用いて、貨物列車を維持した場合と、朝夕の貨物列車の時刻を調整した場合について、それぞれ設定可能な旅客列車本数を検討する。

制度面では、国土交通省、JR東日本、京葉臨海鉄道、JR貨物、千葉県、関係自治体による協議が必要となる。安全上必要な検査や試運転を省略することはできないが、数か月間の災害時輸送であることを踏まえ、行政手続きや事業者間調整については可能な限り並行して進めるべきである。

これらの確認を順番に行うのではなく、車両、線路、信号、仮設設備、貨物ダイヤ、制度手続きを同時に調査し、短期間で実施可否を判断する体制を構築することが重要となる。


9. 災害時に既存インフラを組み替える

今回のような長期運休では、失われた鉄道をそのまま別の交通手段に置き換えることだけを考えると、必要な車両や人員を確保できない場合がある。

一方、地域全体を見れば、被災していない鉄道、貨物鉄道、道路、バス等の交通資源が残されている。

平時にはそれぞれ異なる目的で使用されているこれらのインフラを、災害時に一時的に組み替えて利用できれば、新たなインフラを建設することなく輸送能力を補うことができる。

今回、京葉臨海鉄道の利用について実際に検討することには、内房線の代替輸送だけでなく、今後の鉄道防災という意味もある。

日本各地には貨物線、臨海鉄道、専用線等が存在している。主要な旅客路線が長期間不通となった場合に備え、どの路線にどの旅客車両が入線できるのか、どこに緊急乗降設備を設置できるのかをあらかじめ把握しておけば、災害時の選択肢を増やすことができる。

道路について緊急輸送道路をあらかじめ指定しているように、鉄道についても、平時の用途を越えて既存ネットワークを災害時に利用するための準備を進める余地がある。


10. 提案

内房線姉ケ崎駅~木更津駅間の長期運休に対し、JR東日本が進めている代行バスの確保と長浦駅~木更津駅間の暫定単線運転に加えて、京葉臨海鉄道を利用した臨時旅客輸送について、直ちに技術的な検討を開始することを提案する。

具体的には、蘇我駅から京葉臨海鉄道を経由して京葉久保田駅まで旅客を輸送し、短距離のシャトルバスによって長浦駅へ接続する。長浦駅から先は内房線の暫定運転を利用することで、姉ケ崎駅~長浦駅間の代行バスとは別の第二経路を形成する。

実施に当たっては、久留里線で使用されているキハE130系等の気動車を候補として入線可能性を確認し、蘇我駅の既存旅客設備を可能な限り利用する。京葉久保田駅には必要最小限の仮設乗降設備を設け、途中の貨物駅では旅客扱いを行わないことで、工事範囲と準備期間を抑える。

もちろん、技術的な調査の結果、信号設備、車両適合性、貨物輸送との調整等の理由から短期間での実施が困難と判断される可能性はある。

しかし、ピーク1時間で約8,000人を輸送していた鉄道路線が長期間失われる一方、代行輸送に必要なバスを十分に確保できていないのであれば、地域に既に存在する別の鉄道インフラを利用できる可能性について検討する価値は大きい。

本提案が目指すのは、京葉臨海鉄道を新たな旅客路線にすることではなく、内房線が復旧するまでの限られた期間に、地域に存在する交通資源を最大限活用することである。

内房線、京葉臨海鉄道、代行バスを個別の交通手段として考えるのではなく、一つの交通ネットワークとして組み替える。

内房線の長期運休に対する緊急輸送策として、その可能性を直ちに検討することを提案する。


Xで見かけた鉄道オタクの妄想をChatGPTと壁打ちしてみました。

循環米固定買取制度の提案

循環米固定買取制度の提案

――肥料資源の国内循環による食料安全保障の強化

1. 提案の概要

日本の食料安全保障を考える上では、農産物そのものの国内生産量だけでなく、その生産に必要な肥料、エネルギー、資材等の供給構造まで含めて評価する必要がある。

米は国内で高い自給率を維持している一方、その生産に不可欠な肥料については、原料の多くを海外資源に依存している。このため、国際的な資源価格の高騰、輸出規制、紛争、海上輸送の途絶等が発生した場合、国内に十分な農地と生産能力が存在していても、肥料の確保が農業生産の制約となる可能性がある。

そこで本提案では、国内で生産または回収された肥料を一定割合以上使用して生産された米を、国があらかじめ定めた価格で買い取る「循環米固定買取制度」の創設を提案する。

本制度により、国内循環肥料に対する安定した需要を政策的に形成し、窒素肥料の国内製造、下水等からのリン回収、家畜排せつ物・食品残渣等からの肥料成分回収への民間投資を促進する。

目標は、肥料輸入を完全に代替することではない。

平時には海外資源を活用しつつ、有事にも一定の農業生産を維持できる国内肥料供給能力を確保することを、本制度の基本的な目的とする。


2. 背景――「国産米」を支える海外資源

日本の米は、その大部分が国内で生産されている。

しかし、米の生産に使用される肥料まで含めて見ると、その供給構造は必ずしも国内で完結していない。

植物の生育に必要な三要素である窒素(N)、リン(P)、カリウム(K)について、日本は肥料原料の多くを海外に依存している。

この構造では、食料自給率が高い品目であっても、肥料供給が長期間途絶すれば、生産能力そのものが低下する可能性がある。

したがって、食料安全保障政策においては、「どれだけ国内で生産しているか」だけでなく、「国内生産をどこまで国内資源によって継続できるか」という視点が必要である。


3. 国内肥料資源の可能性

肥料三要素の性質はそれぞれ異なるため、国内供給能力の強化についても異なるアプローチが必要となる。

3.1 窒素――エネルギーによる国内生産

窒素は大気中に豊富に存在しており、資源そのものが国内に存在しないわけではない。

課題は、大気中の窒素を植物が利用可能な形へ変換するために大量のエネルギーを必要とすることである。

現在のアンモニア製造は主として化石燃料に依存しているが、再生可能エネルギーによる電力から水素を製造し、大気中の窒素と反応させることで、輸入化石燃料への依存を抑えたアンモニア製造は技術的に可能である。

再生可能エネルギーの導入拡大に伴い、出力制御や余剰電力の活用も課題となっている。こうした電力を肥料生産へ結び付けることができれば、エネルギー政策と農業政策を接続することができる。

3.2 リン――都市から農地への回収

リンは窒素と異なり、エネルギーから製造することはできない。

一方で、農産物として取り込まれたリンは、食品として消費された後も消滅するわけではなく、下水、し尿、食品残渣、家畜排せつ物等へ移行する。

したがって、これらからリンを回収し、肥料として再利用することで、輸入リン資源への依存を低減できる可能性がある。

特に下水処理施設は、都市部から継続的にリンが集積するインフラである。下水処理を単なる廃棄物処理としてではなく、肥料資源の回収拠点として位置付けることが重要である。

3.3 カリウム――回収・再利用の拡大

カリウムについても、国内資源のみで需要のすべてを賄うことは容易ではない。

しかし、家畜排せつ物、食品残渣、植物残渣、各種焼却灰等にはカリウムが含まれており、回収・再利用を拡大する余地がある。

このため、カリウムについては完全自給を目標とするのではなく、国内循環量を増加させ、輸入依存度を段階的に低減することが現実的である。


4. 現状の課題――技術ではなく「市場」が不足している

国内肥料資源の活用には、技術開発だけでは解決できない問題がある。

国内での窒素肥料製造、下水からのリン回収、家畜排せつ物や食品残渣からの肥料製造は、既存の輸入肥料と比較してコストが高くなる場合がある。

国内資源を利用することに食料安全保障上の価値があったとしても、その価値は通常の肥料価格には反映されない。

その結果、農家は安価な肥料を選択し、国内循環肥料の需要は拡大せず、肥料メーカーや下水処理事業者も大規模な設備投資を行いにくい。

これは典型的な初期市場形成の問題である。

そこで必要なのが、国内循環肥料に対する需要を政策的に形成する仕組みである。


5. 「循環米固定買取制度」の創設

本提案では、国内で生産・回収された肥料を一定割合以上使用して生産された米を「循環米」として認証し、国が一定価格で買い取る制度を創設する。

制度の基本構造は、次のようなものを想定する。

  • 国内製造の窒素肥料、下水由来リン肥料、家畜排せつ物由来肥料等について、対象となる「国内循環肥料」を認証する。
  • 対象肥料を一定基準以上使用して生産された米を「循環米」として認証する。
  • 循環米について、通常の市場価格とは別に政策的な固定買取価格を設定する。
  • 国は一定量を上限として循環米を買い取り、政府備蓄米等として活用する。
  • 国内肥料産業の成熟とコスト低下に応じて、買取価格や対象量を段階的に見直す。

重要なのは、肥料の製造設備そのものに補助金を交付するだけではなく、最終的な農産物に対して需要を保証することである。

農家にとって国内循環肥料を利用する経済的な動機が生まれれば、その上流に位置する肥料メーカー、下水処理事業者、再生可能エネルギー事業者等にも継続的な需要が発生する。


6. FIT型政策としての位置付け

本制度の基本的な考え方は、再生可能エネルギー分野における固定価格買取制度(FIT)に近い。

新しい産業は、導入初期には既存産業よりコストが高い場合が多い。

その状態で完全な価格競争を求めれば、設備投資が行われず、生産量が増えず、結果としてコストも下がらない。

そこで一定期間、政策的に需要と価格を保証することで市場を形成し、設備投資、量産、技術開発を促進する。

循環肥料についても、

需要保証 → 設備投資 → 生産量増加 → 技術改善・規模拡大 → コスト低下

という循環を政策的に形成することが考えられる。

ただし、FITと同様に恒久的な高価格買取を目的とするものではない。

国内循環肥料産業が一定規模に達した段階では、買取価格や支援水準を引き下げ、最終的には通常市場に近い条件でも成立する産業構造へ移行することを目指す。


7. 政府備蓄米制度との連携

国が買い取った循環米については、政府備蓄米制度との連携が考えられる。

一定期間は食料安全保障上の備蓄として保管し、その後は既存の備蓄米と同様に適切な方法で入れ替える。

これにより、政策支出によって購入された米が単なる余剰在庫となることを避けながら、

「食料そのものの備蓄」と「食料を生産する能力の維持」

を同時に支援することができる。

従来の備蓄政策が主として「生産された米を保管する」政策であるのに対し、本制度はその一段上流にある肥料供給能力まで安全保障政策の対象とするものである。


8. 期待される効果

本制度によって期待される効果は、単なる肥料自給率の向上にとどまらない。

第一に、国際的な肥料供給途絶時における農業生産能力の維持である。

第二に、下水、し尿、家畜排せつ物、食品残渣等に含まれる栄養塩の資源化促進である。

第三に、再生可能エネルギーと肥料製造を組み合わせることによる、余剰電力・出力制御電力の新たな利用先の形成である。

第四に、国内肥料製造・資源回収技術への投資拡大と、それに伴う技術開発・コスト低減である。

第五に、農業、エネルギー、下水道、廃棄物処理という従来別々に扱われてきた政策分野を、「国内資源循環」という共通目的の下で接続できることである。


9. 制度設計上の課題

制度化に当たっては、慎重な検討が必要な点も多い。

特に、国内循環肥料の定義、輸入原料を国内加工した肥料の扱い、循環肥料の使用割合の確認方法、肥料由来成分のトレーサビリティ、重金属等の安全基準、通常米との価格差、政府による年間買取量等について制度設計が必要となる。

また、制度によって国内肥料価格そのものが過度に上昇したり、特定の事業者だけが利益を得たりすることを防ぐ仕組みも必要である。

したがって、制度開始時から全国の米生産すべてを対象とするのではなく、対象地域・対象肥料・買取量を限定した形で開始し、実績を検証しながら拡大することが適切と考える。


10. 「完全自給」ではなく「生産能力」を確保する

本提案の目的は、肥料輸入を禁止することでも、すべての肥料を国内だけで賄うことでもない。

国際市場が正常に機能している平時には、海外資源を利用することには十分な合理性がある。

一方で、輸入できることと、輸入しなければ生産できないことは異なる。

食料安全保障の観点から重要なのは、輸入が一時的に困難になった場合でも、国内に一定量の肥料を供給できる設備、技術、人材、物流網が存在することである。

したがって、国内肥料供給能力は単純な価格競争だけで評価するのではなく、発電所、備蓄基地、上下水道等と同様に、危機時に利用可能な国家的生産基盤として評価する必要がある。


11. 提案

日本は、米という最終製品だけでなく、その生産を支える肥料についても、国内供給能力を戦略的に確保すべきである。

そのために、国内で生産・回収された肥料を利用して生産された米を「循環米」として認証し、一定量を国が固定価格で買い取る「循環米固定買取制度」を提案する。

本制度によって循環肥料の初期市場を形成し、国内の窒素肥料製造、リン・カリウム回収、再生可能エネルギー利用、下水・廃棄物資源化への投資を誘導する。

最終的に目指すべき状態は、肥料輸入の完全な代替ではない。

海外から肥料を輸入できる日本であると同時に、必要であれば国内でも一定量をつくり、回収し、循環させることのできる日本である。

食料そのものを備蓄するだけでなく、食料を生産し続ける能力を国内に備蓄する。

循環米固定買取制度を、そのための政策手段として提案する。


この文章は新米を食べながら思ったことをChatGPTに投げつけて生成しました。 いわゆるWorkslopって奴ですわぁ。 思いついたことをぱっと書き出せるのはAI凄いけど、こういう個人の思いつき提案があふれて役人・政治家の人は大変だね。 でも、こういう制度あってもいいんじゃないかと思いました。 新米おいしいなぁ。

Workslop

AIでそれっぽく作った成果物を、十分に検証・咀嚼せず「仕事」として他人に渡し、結果的に受け取った側に確認・修正・やり直しの負担を押し付けること。

貸与された能力で書くコードと自己の境界について

『劇場版 攻殻機動隊』には、草薙素子が自分の義体について思いを巡らせる印象的な場面がある。 この体は自分のものなのか、自己とは何によって成立しているのか、という問いだ。

少佐の義体は国家が費用を負担して用意したものであり、彼女の私有物ではない。規格と制約の中で運用され、必要とあらば回収も停止もされうる。それでも、その義体を通して思考し、判断し、行動しているのは確かに彼女自身である。

この構図は、最近のプログラマーの立場とどこか重なって見える。

会社が貸与するAIとプログラマーの実力

多くの開発現場では、会社が契約したAIやクラウド環境、IDEを前提にコーディングしている。

  • 会社が費用を支払っている
  • 利用規約や監査の範囲内で使う
  • プロジェクトを離れればアクセス権は失われる

こうした条件は、少佐の義体とかなり似ている。

AIを使えば設計のスピードや発想の幅、実装の質は大きく変わる。結果として現れる「生産性」や「実力」は、個人の内側だけに閉じたものとは言いにくい。

そう考えると、己の実力とは、貸与された仮想的な能力を含んだものだと言える。

能力が外部にある時、自己はどこに残るのか

攻殻機動隊が投げかける問いは、能力の所在そのものよりも、自己の境界がどこにあるのかという点にあるように思える。

義体が変わっても、ネットワークに接続されても、それでも「私」と呼ばれるものはどこにあるのか。

AI時代のプログラミングに当てはめると、

  • 何を作ると決めたのか
  • どの設計を選び、どの制約を受け入れたのか
  • AIの提案をどこまで採用し、どこで退けたのか

こうした判断は、道具がどれだけ高度になっても外部化されない。

コードを書く行為そのものよりも、問いを立て、選択し、責任を引き受ける部分に自己の連続性があるように思える。

義体としてのAI、ゴーストとしての判断

AIは、現代のエンジニアにとって極めて高性能な義体になりつつある。 しかし、少なくとも今のところ、ゴーストそのものではない。

AIなしでは同じ成果が出せない、と感じる場面は増えている。それでも、

  • その道具を使うと決めた主体
  • その出力に責任を持つ主体

は人間側に残っている。

少佐が「義体は自分のものではない」と理解したうえで行動していたように、AIが貸与された能力であることを自覚すること自体が重要なのだと思う。

おわりに

自分の実力が環境や道具に強く依存していると認めるのは、少し居心地が悪い。 ただ、その前提を受け入れたうえで、

  • どんな道具を選ぶのか
  • どう使い、どこで距離を取るのか

を考え続けることが、エンジニアとしての自己を形作っているのではないか。

義体を使っていようと、AIを使っていようと、 問いを立て続けている限り、ゴーストはまだこちら側にある。

そんなことを考えながら、今日もコードを書いている。

--

と、AIが申しております。人間らしさをAIが説いてくるなんてもう終わりだよぉ!

N-BOX 2018 セットアップメモ

バックミラーを見やすくする

標準のが小さいので大きいに交換した

セイワ(SEIWA) 車種専用用品 ホンダ純正ミラー Nシリーズ(N-BOX N-WGN)専用フレームレスミラー 平面/クローム鏡 IMP177 スモークガラス車対応 カー用品 www.amazon.co.jp

アイドリングストップをデフォルトOFFにする

いちいちうるさいのと、エンジン摩耗しそうなのでOFFにした。

ブルパーツ アイドリングストップキャンセラー ホンダ NBOX 平成29/9~令和3/11 (JF3 JF4) 完全カプラーオン取付 (NBOX カスタム含) www.amazon.co.jp

エンジンかけたままロックができるようにする

コンビニ行ったときとか面倒なので、ロックをできるようにした。

N-BOX N-BOXcustom JF3 JF4 専用 エンジンかけたまま ロック ができる キット (アイドリングドア ロック) https://www.amazon.co.jp/dp/B09XDV636Nwww.amazon.co.jp

シガーソケットからType-Cの電源を取り、スマホを充電する

UGREEN シガーソケット USB C カーチャージャー 2ポート 52.5W【PD30W+SCP22.5W 急速充電】 PD3.0/QC4.0/PPS対応 12V・24V車対応 車載充電器 コンパクトサイズ 軽量 耐久性 車充電器 iPhone 16/iPhone15/ iPhone14/ iPhone13/Xperia/Galaxy/Android/iPadなどに対応 www.amazon.co.jp

エレコム(ELECOM) 車載ホルダー スマホスタンド ワンタッチホルダー 【エアコンルーバー取付タイプ】 ブラック P-CARS12BK https://www.amazon.co.jp/dp/B08DFMGX27www.amazon.co.jp

【2本セット】Anker 高耐久ナイロン USB-C&USB-C 2.0 ケーブル 【PD対応/高耐久】 60W対応 iPhone 15 / 15 Pro MacBook Pro iPad Pro Galaxy等対応 (0.9m ブラック) www.amazon.co.jp

東大の駐車をしやすくする

当日券は毎回駐車券に名前を記入してフロントガラスに掲示する必要があるので駐車券入れと駐車券用スタンプを用意した。

セイワ(SEIWA) 車内用品 コンパクトキャッチクリップ 収納 カード チケット WA59 駐車券 www.amazon.co.jp

spc.askul.co.jp

ドアポケットに入るゴミ箱を設置する

カーメイト(CARMATE) ホンダ NーBOX 専用 ゴミ箱 ドアポケット用 小物入れ NーBOX JF3~JF6 専用 NZ852 www.amazon.co.jp

カーナビを強くする

標準のナビがしょぼいのでデカい画面のAndroidナビに替えた。

[10インチ QLED] ATOTOZONE X10G211E Androidカーナビ,ダブルDINカーステレオ,8+128G ,ワイヤレス Carplay & Android Auto,4G LTE,AIボイスアシスタント,GPS トラッキング,デュアルカメラ入力&デュアル マイク, Bluetooth, LRV,SCVC,36B-EQ,HDMI入力 ,スプリット・スクリーン https://www.amazon.co.jp/dp/B0D5R1NHKBwww.amazon.co.jp

ホンダ N-BOX & N-BOXカスタム (前期&後期 JF3 JF4) 専用 社外ナビ 用 USBアダプタ ケーブル SET HONDA 2017 NBOX ナビ取付けキット USBジャック追加に www.amazon.co.jp

ATOTO A5 /A6 /S8 /F7 /X10 接続ハーネスケーブル、フィット選択されたホンダモデル、プラグアンドプレイ https://www.amazon.co.jp/dp/B07BF9C4PMwww.amazon.co.jp

自動運転を強くする

標準の自動運転がしょぼいのでOSSの自動運転ソフトに替えた。N-Box対応のパッチは作った。

comma.ai

github.com

opensslでサーバーが対応しているciphersuiteを調べる方法

for cipher in $(openssl ciphers 'ALL:eNULL' | tr ':' ' '); do
  echo | openssl s_client -cipher "$cipher" -connect example.com:443 > /dev/null 2>&1
  if [ $? -eq 0 ]; then
    echo "$cipher,supported"
  else
    echo "$cipher,not supported"
  fi
done

ガイカーカウンター GM-10 のPythonプログラム

なぜか部屋にガイカーカウンターが落ちていて、遙か昔にプログラムを書いていたようで、せっかくなので置いておく。 みたところ、matplotlibでプロットするプログラムになっているようだ。

import datetime

import serial

import matplotlib.pyplot as plt

import pandas as pd

ser = serial.Serial('/dev/tty.usbserial-FTSBTSEU', baudrate=38400, dsrdtr=True)
ser.read(2)

df = pd.DataFrame(columns=['time', 'count'])
df = df.set_index('time')
plt.ion()
fig, ax = plt.subplots()
while True:
    # measure
    ser.read(1)
    t = datetime.datetime.now()
    df.loc[t] = 1

    # aggs
    df_minutely = df.resample('1min').sum()

    # plot
    plt.cla()
    ax.set_title('RadiationCount - Geiger Counter Black Cat Systems GM-10')
    ax.set_xlabel('Time')
    ax.set_ylabel('Count')
    ax.set_ylim(0, df_minutely['count'].max()+1)
    df_minutely.plot(y='count', ax=ax)
    ax.plot_date(df_minutely.index.to_pydatetime(), df_minutely)
    plt.draw()
    plt.pause(0.1)

ser.close()

食べログで指定した地点の近くの飲食店の一覧を取得する

会社の近くの飯屋をピックアップしたかったので。

import click

import scipy.optimize

import geopy.distance

import requests

import xml.etree.ElementTree as ET


def listup(lat, lon, radius_km):
    maxlat = scipy.optimize.bisect(lambda x: geopy.distance.distance((lat, lon), (x, lon)).km - radius_km, lat, 90)
    minlat = scipy.optimize.bisect(lambda x: geopy.distance.distance((lat, lon), (x, lon)).km - radius_km, -90, lat)
    maxlon = scipy.optimize.bisect(lambda x: geopy.distance.distance((lat, lon), (lat, x)).km - radius_km, lon, 180)
    minlon = scipy.optimize.bisect(lambda x: geopy.distance.distance((lat, lon), (lat, x)).km - radius_km, 0, lon)
    print(maxlat, minlat, maxlon, minlon)

    lst = 100
    params = {
        'maxLat': maxlat,
        'minLat': minlat,
        'maxLon': maxlon,
        'minLon': minlon,
        'lst': lst,
        'SrtT': 'trend',
    }

    pg = 1
    cnt = 9999
    rst_list = []
    while lst * (pg - 1) < cnt:
        params['pg'] = pg
        r = requests.get('https://tabelog.com/xml/rstmap', params=params)
        root = ET.fromstring(r.text)
        if pg == 1:
            cnt = int(root.find('srchinfo').attrib['cnt'])
        print('{:d} / {:d}'.format(min(cnt, lst * pg), cnt))
        for marker in root.findall('marker'):
            rst_list.append(marker.attrib)
        pg += 1

    return rst_list


@click.command
@click.argument('latitude', type=float)
@click.argument('longitude', type=float)
@click.option('--radius-km', type=float, default=0.5)
@click.option('--sort-by-score', is_flag=True)
def main(latitude, longitude, radius_km, sort_by_score):
    rst_list = listup(latitude, longitude, radius_km)
    if sort_by_score:
        rst_list = sorted(rst_list, key=lambda x: x['score'], reverse=True)
    for (i, rst) in enumerate(rst_list):
        print(rst['rstname'], end=' ')
        print('https://tabelog.com' + rst['rsturl'], end=' ')
        print(rst['rstcat'], end=' ')
        print(rst['holiday'], end=' ')
        print(rst['score'], end=' ')
        print('https://www.google.co.jp/maps?q={},{}'.format(rst['lat'], rst['lng']), end=' ')
        print()


if __name__ == '__main__':
    main()

こんな感じで動く。

$ python tabelog.py 35.697011 139.682878 --radius-km 0.1 --sort-by-score | head -n 10
華吉 https://tabelog.com/tokyo/A1319/A131903/13040836/ 中華料理、餃子 日曜日 3.55 https://www.google.co.jp/maps?q=35.69677753867941,139.6825075846003
カフェ デ カリー https://tabelog.com/tokyo/A1319/A131903/13130776/ カレー、カフェ 日曜日 3.50 https://www.google.co.jp/maps?q=35.697083182016286,139.68391515140476
ハイランダー イン トウキョウ https://tabelog.com/tokyo/A1319/A131903/13093730/ バー、パブ、ヨーロッパ料理 無し 3.44 https://www.google.co.jp/maps?q=35.697413738679,139.68246788460678
トリッペリア トリッパ https://tabelog.com/tokyo/A1319/A131903/13129637/ イタリアン、ワインバー 日 3.41 https://www.google.co.jp/maps?q=35.696570638679795,139.68326538459766
すし割烹悠水 https://tabelog.com/tokyo/A1319/A131903/13070320/ 海鮮、寿司、居酒屋 日曜日 3.38 https://www.google.co.jp/maps?q=35.6975662386793,139.68367858460743
坂上刀削麺 https://tabelog.com/tokyo/A1319/A131903/13188505/ 中華料理、刀削麺、居酒屋 無し(ビル休館日に準ずる) 3.38 https://www.google.co.jp/maps?q=35.697492738678896,139.68230588460767
麺家 たいせい https://tabelog.com/tokyo/A1319/A131903/13282456/ ラーメン なし 3.32 https://www.google.co.jp/maps?q=35.69720583867907,139.6822479846048
六味膳食 https://tabelog.com/tokyo/A1319/A131903/13161291/ 居酒屋、創作料理 日・祝日 (ご宴会予約のみやっています) 3.25 https://www.google.co.jp/maps?q=35.69620813868004,139.683320584594