芥川龍之介が「蜘蛛の糸」を発表して百年。高二の秋の文化祭,クラスの仮装行列のテーマが 蜘蛛の糸だった。お釈迦様の極楽タワーの竹を近所から切り出し,地獄の焔と煙の絵を描いた。犍陀多に続いて蜘蛛の糸(登山部の赤いザイル)に群がる地獄の亡者だったころ。
2025年9月29日月曜日
大阪万博奮戦記:小松左京
2025年9月28日日曜日
優勝確率
2025年9月27日土曜日
ロビンソン図法
A(ChatGPT-5):このHTMLファイルで「世界地図を描画する肝」となる部分は、JavaScript内のD3.jsとTopoJSONを使った処理です。特に以下の要素がポイントです1.投影法の指定const projection = d3.geoNellHammer();const path = d3.geoPath(projection);ここで Nell–Hammer図法 を指定しています。d3.geoPath(projection) によって、地理データをSVGパスに変換できるようになります。2.データの読み込みと変換const url = "https://cdn.jsdelivr.net/npm/world-atlas@2/countries-110m.json";const world = await fetch(url).then(r => r.json());const countries = topojson.feature(world, world.objects.countries);const borders = topojson.mesh(world, world.objects.countries, (a,b) => a !== b);Natural Earth → world-atlas 由来のTopoJSONを読み込み。topojson.feature で国境データをGeoJSONに変換。topojson.mesh で隣接国間の国境線を抽出。3.実際の描画処理oceanLayer.append("path").attr("class", "ocean").attr("d", path({type:"Sphere"}));landLayer.selectAll("path.land").data(countries.features).join("path").attr("class", "land").attr("fill", (d,i) => palette[i % palette.length]).attr("d", path);borLayer.append("path").attr("class", "borders").attr("d", path(borders));海(Sphere), 陸地(国ごと), 国境線 をSVGパスとして追加。path(...) がD3によって座標を投影→SVGパス文字列に変換します。4.レンダリング制御function fitProjection(m) {projection.fitExtent([[m, m], [W - m, H - m]], { type: "Sphere" });}余白(marginInputで指定)を考慮して、投影範囲を A4サイズ (297×210mm) にフィットさせています。5.まとめると:肝は d3.geoNellHammer() 投影と d3.geoPath の組み合わせであり、TopoJSONから取得した国データを path 関数を通してSVGに描画する部分が中核です。ご希望なら、この「肝」だけを抜き出した最小限のサンプル(例えば海と国だけ表示するコード)を書き出しましょうか?
で,いちおうできたのだけれど,他の図法はどうなっているのだ。簡単なことで, 投影法の指定のconst projection = d3.geoNellHammer(); の所を変えればいいだけだ。メルカトル図法(d3.geoMercator()),ロビンソン図法(d3.geoRobinson()),モルワイデ図法(d3.geoMollweide()),サンソン図法(d3.geoSinuMollweide();),正距方位図法(d3.geoAzimuthalEquidistant().center([0, 90])),正射図法(d3.geoOrthographic().rotate([0, -30]))
これらを切り替えられるようなhtmlの製作を依頼したところ,この世界地図ページができた。SVGファイルもダウンロードできる。この中で一番よさげなロビンソン図法は妥協の産物で,正積でも正方位でもないけれどまあまあみやすい。
2025年9月26日金曜日
階段
2025年9月25日木曜日
金沢都ホテル
Q(koshix):調査をお願いします。金沢駅前の都ホテルの跡地の再開発で近鉄不動産が官民複合ビル開発の提案をしらたしいのですが,その詳細を教えてください。A(ChatGPT-5):(回答略)Q(koshix):金沢には近江町市場や兼六園,金沢城趾,江戸時代の武家屋敷跡,伝統工芸品工房,ひがし茶屋街など歴史的文化的な観光地以外にも,金沢21世紀美術館,石川県立図書館などのモダンな情報拠点もあります。このような地域の特性を踏まえて,駅前の官民複合ビルの新しくてユニークなコンセプトデザインを提案してください。なるべく思いもかけないアッと驚くようなものを期待しています。A(ChatGPT-5):(回答略)
Q(koshix):なかなかおもしろい3つのコンセプトでしたけれど,もう少し深く真剣に工夫して熟慮のうえ大胆に突っ込んでかつリアルなイメージがあふれるように考えて見てもらえませんか。A(ChatGPT-5):(回答略)Q(koshix):いやいや,3つのプロポーザルを具体化してほしいのではなくて,もっと別の観点から新しい提案ができないかという意味でした。参考資料もつけておきます。 細かい数字はいらないので,ゆたかな言葉で新しい2-3のコンセプトを創造して語ってください。A(ChatGPT-5):ありがとうございます。いただいた参考資料([1])をふまえると、金沢市が都市再生で掲げているキーワードは「骨格となる都心軸の再興」「伝統と創造の調和」「学都」「木の文化都市」「ウォーカブル」「歴史都市」などでした。これを起点に、既存の延長線ではなく「思いもかけない」観点から、あえて大胆に発想してみます。コンセプト1:「呼吸する都市の森」金沢駅前に立ち上がるのは、単なるビルではなく「都市が呼吸する森」。外壁には木質素材とガラスを織り交ぜ、昼は木立のように陰影を生み、夜は樹冠が光の森となって街路を包む。内部の低層部は市民が自由に出入りできる「屋内林床広場」として、雨の多い金沢でも四季を感じられる緑の空間を提供。上層はホテルや研究施設だが、吹き抜けを貫く「都市樹幹」が上下をつなぎ、空気循環や雨水利用を可視化する。まさに「木の文化都市」を体現し、訪れる人は都市の中心で自然に抱かれる体験を得る。コンセプト2:「知と工芸の灯台(Beacon of Craft & Knowledge)」北陸新幹線で到着した人を最初に迎えるのは、未来に向けて輝く「知の灯台」。建物の上層部はガラスの灯火塔となり、時間ごとに色や模様が変化し、市内の工芸職人や学生がデザインに参加する「参加型光景観」を演出。低層には「工芸アトリウム」があり、九谷焼・金箔・加賀友禅などの実演や展示が行われ、訪問者は工芸の創造性に触れる。中層は大学・研究機関・企業の共創拠点であり、金沢を「学都」として再び可視化する。このビル自体が「伝統と知の実験場」となり、駅前は世界の人材と文化が交流する灯火となる。コンセプト3:「雨と光の劇場」金沢の気候を逆手にとる発想。雨の多さを「不便」ではなく「魅力」に変換する。外壁に雨水を導く透明な水路を設け、降雨に応じてファサードが光り奏でる「レイン・インスタレーション」を実現。低層広場では霧や水膜がスクリーンとなり、観光・芸術イベントの舞台に。中層には「市民のためのレインラウンジ」があり、ガラス越しに流れる水を眺めながら静かに過ごせる。上層のスカイラウンジでは、夜景とともに「雨の光」が都市全体を舞台にした劇場に変える。“雨を待ち望む街”という新しい都市イメージを発信する。まとめ・呼吸する都市の森:自然と調和し、駅前が「都市林」に。・知と工芸の灯台:工芸・学術の拠点が光を放ち、世界に開く。・雨と光の劇場:気候を魅力に変えるインスタレーション都市装置。いずれも金沢の特性を活かしつつ、従来の「駅前高層複合ビル」の枠を超え、市民・観光客双方を驚かせる体験の装置となります。
これら3つのうち、さらに膨らませてイメージ図や物語的なシナリオに落とすなら、どの案を優先したいですか?
2025年9月24日水曜日
三十三間堂
Q(koshix):以下のリストが正しいかどうか判定してください。また,このリストに無いもので条件を満たすものがあれば指摘してください。なお,リストには通し番号をつけて,年号が推定できるものはなるべく入れてください。元の質問: 日本の歴史的建造物でできてから800年以上の歴史を持つものを古い順に並べたリストをつくってください。なお,創建時が条件を満たしていても消失したものは含めません。再建時が条件を満たしていればOKとします。大きな寺院の一部の塔頭などで一定の規模があればそれらも含めます。A(ChatGPT-5 Thinking):前提と進め方:ご提示の条件(①現存、②創建でなく“現存建物の成立”が1225年以前=今年2025年時点で800年以上、③再建でも可、④塔頭も一定規模なら可)に沿って、各項目の年代・現存性を一次情報・公的機関・寺社公式等で突き合わせました。結果は①リストは概ね妥当、②抜けている重要物件がいくつか、③一部で補足・厳密化(年次表現の明確化)が必要――の3点です。下に「修正済み通し番号リスト(古い順)」を示し、追補分は★で明示します。各行に1文メモを付しています。出典は要所で併記しました。修正済みリスト(古い順,★は省略)1.法隆寺 西院伽藍(金堂・五重塔・中門・回廊)|7世紀末〜8世紀初頭世界最古級の木造建築群として現存(ユネスコ登録群の中核)。2.法起寺 三重塔(奈良)|706年現存最古の三重塔の一つ(飛鳥〜奈良移行期の作)。3.唐招提寺 経蔵・宝蔵(奈良)|8世紀前半現存する校倉造の代表的遺構。4.薬師寺 東塔(奈良)|730年奈良時代唯一現存の三重塔で「凍れる音楽」と称される。5.法隆寺 東院 夢殿(奈良)|8世紀中頃聖徳太子供養の八角円堂(奈良期建立)。6.東大寺 法華堂(三月堂)(奈良)|8世紀中頃東大寺で現存最古の堂。7.栄山寺 八角堂(奈良)|760–764年頃奈良時代屈指の八角堂(国宝)。8.東大寺 正倉院 宝庫(奈良)|8世紀後半天平の校倉造高床式宝庫(聖武天皇ゆかりの宝物蔵)。9.唐招提寺 金堂(奈良)|8世紀後半天平建築の代表堂宇。10.唐招提寺 講堂(奈良)|8世紀後半(平城宮朝集殿の移築)宮殿建築遺構が寺院講堂として現存。11.新薬師寺 本堂(奈良)|8世紀後半奈良期現存の本堂で十二神将を囲繞安置。12.當麻寺 東塔(奈良)|奈良時代中期(8世紀)古代の東西双塔が揃って現存する唯一の例の一方塔。13.當麻寺 西塔(奈良)|平安初期(9世紀初頭)双塔のもう一方(平安初頭建立)。14.室生寺 五重塔(奈良)|9世紀初頭(8世紀末説あり)屋外五重塔で最小規模・古式の名塔。15.室生寺 金堂(奈良)|9世紀前半(※中世修理あり)山岳伽藍に残る古様の堂宇。16.醍醐寺 五重塔(京都)|951年京都府最古の木造建築。17.平等院 鳳凰堂(京都)|1053年浄土庭園の中心堂(十円硬貨の意匠)。18.宇治上神社 本殿(京都)|1060年頃現存最古の神社本殿。19.石山寺 本堂(滋賀)|1096年(再建)紫式部ゆかり、平安末再建本堂が現存。20.浄瑠璃寺 本堂(京都)|1107年九体阿弥陀を安置する横長本堂。21.鶴林寺 太子堂(兵庫)|1112年兵庫県最古級の現存木造建築。22.中尊寺 金色堂(岩手)|1124年奥州藤原氏の阿弥陀堂(皆金色)。23.石上神宮 拝殿(奈良)|1135年(移築)現存最古の拝殿建築。24.白水阿弥陀堂(福島)|1160年平安末の阿弥陀堂と浄土庭園。25.一乗寺 三重塔(兵庫)|1171年平安末の代表的三重塔(国宝)。26.富貴寺 大堂(大分)|12世紀後半九州最古級の現存木造仏堂。27.浄土寺 浄土堂(兵庫・小野)|1192年阿弥陀三尊(快慶)を安置する檜皮葺大堂。28.高野山 不動堂(和歌山)|1197年高野山で最古の現存堂宇。29.東大寺 南大門(奈良)|1199年(再建)大仏殿正門、金剛力士像で著名。30.興福寺 北円堂(奈良)|1210年(再建)鎌倉初期再建の八角円堂(国宝)で現存。A(Gemini Pro 2.5):再度チェックいたしました。この修正版リストは、ご提示の条件に沿って非常に綿密に調査されており、ほぼ完璧な内容と言えます。素晴らしいリストです!
2025年9月23日火曜日
Nano Banana
Q(koshix):石を銅に変えてください。(応答はあるが画像生成は無し)Q(koshix):背景を野原にしてください。(さきほどの結果も含めて画像が生成された。OK)Q(koshix):姿形を立ち上がった奈良の大仏の顔にしてください。(OK)Q(koshix):奈良の大仏の顔のお地蔵さんを奈良の鹿にまたがらせてください。(OK)A(Gemini 2.5 Pro):2.5 Pro の上限に達しました。9月23日 11:50 までお待ちください。Google AI Pro にアップグレードすると、上限が引き上げられます。
Q(koshix):鹿を神の使いの白い鹿にしてください。(応答はあるが画像生成は無し)Q(koshix):背景の空の部分を2/3ほどに増やしてください。(OK)Q(koshix):鹿に乗った銅像にもっとフォーカスして迫ってください。(OK)Q(koshix):空の面積を半分くらいにして鹿の足下まで全体入れて,もう少し鹿によってください。(×)・・・
Q(koshix):鹿の足下が見切れていますので,全体像が入るようにしてください。なおかつ,空の割合を今の半分ぐらいにして,白鹿とそれに乗った地蔵菩薩もっとズーム拡大してください(カメラが対象によるように)。(応答はあるが画像生成は無し)Q(koshix):今の画像を生成してください。(さきほどの画像が生成された。OK)Q(koshix):上1/3を夕焼け空にして, 下2/3を草原にして,白鹿とそれに乗った地蔵菩薩さらにズーム拡大してください。(OK)Q(koshix):やはり,青空に戻して,下半分は野原にしてください。(野原では伝わらなかった,×)
2025年9月22日月曜日
国勢調査
2025年9月21日日曜日
9月20日(2)
koshi@mba2020 ~ % ./birth.jl
【基礎情報】
今日 : 2025年9月21日(日曜日)
誕生日 : 1953年9月20日(日曜日)
【差分と年齢】
生誕からの経過日数 : 26299日
満年齢 : 72歳
【年ごとの誕生日一覧】(*は日曜) ※最終年:2025年
1953年9月20日(日曜日) 0歳 *
1954年9月20日(月曜日) 1歳
1955年9月20日(火曜日) 2歳
1956年9月20日(木曜日) 3歳
1957年9月20日(金曜日) 4歳
1958年9月20日(土曜日) 5歳
1959年9月20日(日曜日) 6歳 *
1960年9月20日(火曜日) 7歳
1961年9月20日(水曜日) 8歳
1962年9月20日(木曜日) 9歳
1963年9月20日(金曜日) 10歳
1964年9月20日(日曜日) 11歳 *
1965年9月20日(月曜日) 12歳
1966年9月20日(火曜日) 13歳
1967年9月20日(水曜日) 14歳
1968年9月20日(金曜日) 15歳
1969年9月20日(土曜日) 16歳
1970年9月20日(日曜日) 17歳 *
1971年9月20日(月曜日) 18歳
1972年9月20日(水曜日) 19歳
1973年9月20日(木曜日) 20歳
1974年9月20日(金曜日) 21歳
1975年9月20日(土曜日) 22歳
1976年9月20日(月曜日) 23歳
1977年9月20日(火曜日) 24歳
1978年9月20日(水曜日) 25歳
1979年9月20日(木曜日) 26歳
1980年9月20日(土曜日) 27歳
1981年9月20日(日曜日) 28歳 *
1982年9月20日(月曜日) 29歳
1983年9月20日(火曜日) 30歳
1984年9月20日(木曜日) 31歳
1985年9月20日(金曜日) 32歳
1986年9月20日(土曜日) 33歳
1987年9月20日(日曜日) 34歳 *
1988年9月20日(火曜日) 35歳
1989年9月20日(水曜日) 36歳
1990年9月20日(木曜日) 37歳
1991年9月20日(金曜日) 38歳
1992年9月20日(日曜日) 39歳 *
1993年9月20日(月曜日) 40歳
1994年9月20日(火曜日) 41歳
1995年9月20日(水曜日) 42歳
1996年9月20日(金曜日) 43歳
1997年9月20日(土曜日) 44歳
1998年9月20日(日曜日) 45歳 *
1999年9月20日(月曜日) 46歳
2000年9月20日(水曜日) 47歳
2001年9月20日(木曜日) 48歳
2002年9月20日(金曜日) 49歳
2003年9月20日(土曜日) 50歳
2004年9月20日(月曜日) 51歳
2005年9月20日(火曜日) 52歳
2006年9月20日(水曜日) 53歳
2007年9月20日(木曜日) 54歳
2008年9月20日(土曜日) 55歳
2009年9月20日(日曜日) 56歳 *
2010年9月20日(月曜日) 57歳
2011年9月20日(火曜日) 58歳
2012年9月20日(木曜日) 59歳
2013年9月20日(金曜日) 60歳
2014年9月20日(土曜日) 61歳
2015年9月20日(日曜日) 62歳 *
2016年9月20日(火曜日) 63歳
2017年9月20日(水曜日) 64歳
2018年9月20日(木曜日) 65歳
2019年9月20日(金曜日) 66歳
2020年9月20日(日曜日) 67歳 *
2021年9月20日(月曜日) 68歳
2022年9月20日(火曜日) 69歳
2023年9月20日(水曜日) 70歳
2024年9月20日(金曜日) 71歳
2025年9月20日(土曜日) 72歳
ChatGPT-5 Thinking が提案してきたコードは以下のとおりである。かなり修正してもらった。
#!/usr/bin/env julia
# birth.jl
using Dates
# --- ヘルパ ---
const WDAY_SHORT = ["月","火","水","木","金","土","日"]
const WDAY_LONG = ["月曜日","火曜日","水曜日","木曜日","金曜日","土曜日","日曜日"]
fmt_date_ja(d::Date; long_wday::Bool=true) = string(
Dates.format(d, dateformat"yyyy年m月d日"), "(",
(long_wday ? WDAY_LONG : WDAY_SHORT)[dayofweek(d)], ")"
)
# 引数: [YYYY MM DD [ENDYEAR]]
function parse_args()
if length(ARGS) == 0
return Date(1953, 9, 20), year(Dates.today())
elseif length(ARGS) == 3 || length(ARGS) == 4
b = Date(parse(Int, ARGS[1]), parse(Int, ARGS[2]), parse(Int, ARGS[3]))
lasty = (length(ARGS) == 4) ? parse(Int, ARGS[4]) : year(Dates.today())
return b, lasty
else
error("使い方: ./birth.jl または ./birth.jl YYYY M D [ENDYEAR]")
end
end
function list_birthdays(birth::Date, last_year::Int)
last_year = max(last_year, year(birth)) # 下限は誕生年
for y in year(birth):last_year
d = Date(y, month(birth), day(birth))
age = y - year(birth)
star = (dayofweek(d) == 7) ? "*" : "" # 7 = 日曜
println(fmt_date_ja(d; long_wday=true), " ", age, "歳 ", star)
end
end
# --- 本体 ---
birthday, list_until = parse_args()
today = Dates.today()
println("【基礎情報】")
println("今日 : ", fmt_date_ja(today; long_wday=true))
println("誕生日 : ", fmt_date_ja(birthday; long_wday=true))
println("\n【差分と年齢】")
days_elapsed = Dates.value(today - birthday)
age_years = year(today) - year(birthday) - (Date(year(today), month(birthday), day(birthday)) > today ? 1 : 0)
println("生誕からの経過日数 : ", days_elapsed, "日")
println("満年齢 : ", age_years, "歳")
println("\n【年ごとの誕生日一覧】(*は日曜) ※最終年:", list_until, "年")
list_birthdays(birthday, list_until)

 








