WinSCPからVSCodeへ
CGIのアップロードやパーミッション変更をスマホからやるとどうしてもうまくいかないのでそれらはパソコンの力を借りている。WinSCPというFTPソフトを使ってアップロードしたものを内蔵エディタで編集していた。内蔵エディタで事足りているうちに何だか欲が出た。外部エディタを登録してみることにした。

既にインストールしてあるエディタはgVimというのとCrescentEveの2つ。gVimは分かってくると面白いけれど身についてないので放ったらかすとすぐに忘れてしまう。CrescentEveは目が疲れてしまう。設定を変更してもしっくりこない。で、なんの拍子かVisual Studio Codeというのをインストールした。これは素人の自分にもスタートしやすく見た目も分かりやすかった。WinSCPの外部エディタにも登録してファイルの編集がてきるようになった。

早速VSCodeの勉強を始めたらリモートのファイルを編集したりローカルからアップロードできることが分かった。設定は難しそうでいてあっさり簡単に済んでしまった。注意事項が色々あるのでそれらも一通りやっておいた。

テーマのカスタマイズも面白そうだ。設定箇所が膨大。差し当たってHTML、CSS、CGIあたりの編集ができる程度まで自分の好みにしてみた。

VSCode自作テーマ
GIMPで画像処理
『糸通しの小部屋』や『ぼのちょの万年筆』などにアップする画像のサイズに悩んでいた。スマホで撮影した写真をスマホ上で縮小すると画質が落ちてしまう。いくつかのアプリを試してみたけれど塩梅が良くなかった。高解像度のものにHTML上で縦横サイズを指定して表示すれば画質は落ちないのだが限られたサーバ容量を食うので無駄になる。そもそも“画像をサイズダウンする”という需要が今の時代にはほとんど無いのかもしれない。今やほとんどの人が画像サイズを気にせずにSNSなどにアップすることができる。

Adobe Photoshpも考えたが…。結局パソコンにGIMPをインストールしてみた。昔懐かしのGIMP。今年の春先に大型アップデートがあったようでバージョンは3.2.4となっていた。使ってみるととても良い。画像を縮小しても画質がほとんど落ちない。非破壊編集が大きな目玉になっているようだ。確かに良い。

起動は結構時間がかかる。画像の縮小程度には使わないフォントやプラグインを外して高速化できた。しかしここでホームページのバナーが欲しくなった。だったら…とフォントなどを戻しバナー作成。Photoshpを使っていたのはかれこれ20年くらい前のことで、こういったソフトの扱いをすっかり忘れている。どうにかこうにか作成できた。90年代のダサレトロなデザインというコンセプトに合うようなものになった。




GIMPのダウンロードサイト
公式サイト(英語) https://www.gimp.org/downloads/
窓の杜(日本語) https://forest.watch.impress.co.jp/library/software/gimp/
※Microsoftストアアプリ版は「アップデートするとユーザーデータが削除される恐れ」

GIMPアップデートの沿革と内容については「GIMP 3.2リリース――20年越しの夢が、ようやく「安定版」になった日」が面白かった。
Chromeのキャッシュに悩まされる
ここのホームページはChromeで閲覧すると更新内容がなかなか反映されない。
どうもキャッシュがとても悪さをしている。

更新履歴のIFRAMEの問題は前投稿の通り、表示HTMLに適当なパラメータを追加することで解決した。
困っているのはCSSの変更が追い付かないのと、ここの返信表示も遅れること。
CSSの変更はChromeのキャッシュクリアまでしないといけない様子。
ここの返信表示はブラウザのリロードで済む。済むといっても閲覧される方々にそれをお願いするのは野暮だ。

JavaScriptで強制更新する方法もあるようで試そうか迷う。
もうすでにソースがごちゃごちゃなのでこれ以上なにか足すのは気が引ける。
細かいところの更新など
巣穴の更新履歴はIFRAMEで表示させている。このIFRAMEの中のファイルがキャッシュされてリロードが全然うまくいかなかった。ほとほと困った。調べてみたら特にChromeで顕著だという話だった。解決策を検索しても情報が古いか、色々試してもうまくいかないという内容ばかりで手掛かりを見つけられずにいた。そしたらAIがさも当然の事のように解決策を出してきた。IFRAMEに表示するHTMLのファイル名の末尾に適当な数字を足したコードを書けば良いとある。早速試したら呆気なく問題が解決された。

iframe src="history.html?20260626"

このように任意の数字を足すだけ。実際に表示させるファイルの拡張子は変更しない。
AIが言うことなので本当に有効なのかは分からない。ひとまずはブラウザをリロードすればフレーム内も最新のものが表示されるようになった。


巣穴の一番人気コンテンツ“MONKEY BANANA”も少し変更した。「今日の運勢」というランダム表示機能をアップデート。デフォルトのまま表示されるパターンがあまりにも少なかったので、おみくじとして結果を多くした。このMONKEY BANANAは日本テレビで放映されていたクイズバラエティ番組『マジカル頭脳パワー』の「マジカルバナナ」というゲームが元になっている。リズムをつけながら“バナナと言ったら黄色” ”黄色と言ったらヒヨコ”…と連想していくゲーム。
当サイトのMONKEY BANANAは”オサル”という単語からスタートした。それが延々と連想され繋がっている。

私の趣味の万年筆についてのページ”ぼのちょの万年筆”を巣穴に追加した。ペン字書写が好きで万年筆を使っている。安物万年筆でどれだけ書けるのかトライしている。これが手応えがあって結構楽しい。万年筆の他にペン字書写に使う小道具、文房具も見せびらかししていきたい。
AIにスクリプトを書かせてみたら…
戯れにAIのGoogle Geminiに動かないCGIを最新の規格で書き直してもらったら、なんとあっさり一発で決められてしまった。

Google Geminiによる「人工無能少女まりちゃん」
※まりちゃんは人工無能高麗川金子に変更(2026年1月13日)


なんてことだ!

一発と言っても厳密にはPerlのパスが異なり通らなかった。他、二か所日本語が文字化けした箇所があったくらい。人工無能として問題なく稼働するという点では完璧だと思う。
追加で補正してもらった点は次の3つ。

  1. リロードで2重送信させない

  2. 名前入力はcookieを使い一定期間保持

  3. スマホ対応表示


一秒かからず最新の正しいコードを目の前に出してくる。更に人工無能に関する様々な機能、例えば時刻に合わせたあいさつやニュースなどの話題を発言させる、なんてことを提案してくる。なんてことだなんてことだ…。動くようになって嬉しいはずが悔しい。敗北感。惨敗。脱力するようななんとも言えない気分。それはたぶん自分の中に〝AIなんて〟という多少の蔑みがあるからに他ならない。
ChatGPTに同じことをさせたら何度繰り返してもエラーだらけのものしか返してこなかった。
CGI製作者へ質問するべきか
動かないCGIについて作者の方へ助けを求めるべきか。内心、さっさと尋ねてサクッと解決したいのが本音だ。しかし質問をするにはそれなりの準備が要る。まず自分でできることは自分でやる。調べられることは調べる。それでも解らないときに初めて質問を送ることができる、というスタンスに自分は立っている。これは学生の時分に身についたことで、先生に何か質問する場合は十分な下調べを行い論文や著書その他を読み込んだ上で知識を蓄えたところに満を持して初めて質問に至るというもの。

この習慣を無くすことはできない。学問でなくともインターネットの世界でも同じことだと思う。毎日調べものをすると少しずつ理解が深まる。私が人工無能の作者の方に質問することがあるとすればPerlやCGIのことを熟知して、それでも疑問が残った時だと思う。私はPerlやCGIの知識が乏しすぎるので質問をする資格がないのだ。

参考:「偉人ググレカス」について


弱音を吐くとしたら…作者の方のサイトが今年度2026年3月末に閉鎖されてしまうのが辛い。
CGI RESCUE「当サイトは2026年3月末をもちまして終了します!」
Name "*****" used only once:のこと
alt

動かない人工無能CGIに perl -wc を試すとこのような状況。「Name "*****" used only once:」というのが何なのか分からないままだったが調べると出てきた。記述の中に変数?が使われてないという指摘らしい。これは放っておいても問題ないとのこと。無理に直す必要はないのだろう。たぶん。
入れて良かったApacheとPerl
人工無能CGIを動かしたい一心で入れたApacheとPerl。これが大正解だった。
・Perlを使えばどこにエラーがあるか自分で確かめることができる。
・エラーログから何が起こったか確認できる
・FTPのアップロード作業が省略される
・パーミッションの設定も省略
色々恩恵を受けている。特にCGIのエラーや注意を調べられるのが助かっている。エラーログの内容を把握することはまだ到底難しいけれど、そこをヒントに唸ることはできるようになった。以前に比べたら雲泥の差である。

ちなみに動かない人工無能はsyntax okの表示なのでどこがいけないのか解らないでいる。そんなわけで動かないCGIの原因究明と自作することを平行して学んでいるという顛末。

〈人工無能が動いていたレンタルサーバ〉ビッグローブ個人ホームページサービス
サーバ仕様

〈人工無能が動かなくなったレンタルサーバ〉ロリポップ
サーバ仕様
 ※ロリポップでの不具合とローカルのそれは同様

alt
alt


Syntax okなのに動かないこの状況は、例えば〝画像Aを表示せよ〟というソースが実は〝画像Bを表示せよ〟という書き方になっていて文法にエラーは無いけれど目的を果たせていない…というようなことが起きてるのでは。などと考えている。素人考えだが。
動かない人工無能
「CGI RESCUE」さんの「対話型インテリジェント知識ベース簡易システム」いわゆる人工無能CGIが以前は動いていたのにロリポップに引っ越してから動かなくなっている。名前を入力してボタンを押しても発言の表示に切り替わらないのだ。その他にページ上部に〝nickquest1 〟という謎のテキストが表示される。これがなんなのか。最初はHTMLの表示が失敗してソースが漏れているのだと安直に考えていた。でもたぶん違うような気がしてきた。

alt

↑の記述を頑張って読むと、〝CGIが利用するデータファイルのquest.datやnick.datが開けなければ、それぞれnickやquestや1を表示せよ〟と書いてあるように見える。もしそうであれば、CGIに問題があるのでなくデータファイルに問題が発生しているのではないか。と思ってデータファイルの文字コードやパーミッションを確認変更してみたが特に変わりなし。CGI本体をShift-jisからUTF-8に変更したのでそこも揃えてみたが効果なし。

なんだろうなあ。きっとここが直ればうまくいくのではないかな。


【追記】
alt

ここを読むと$nn(チャット参加者が入力した名前)が空白なら「名前を書いて押してください」ボタンを表示せよ、そうでなければ「発言」ボタンを表示せよとなっている。名前を参照するデータファイルはnick.datで、どうやらCGIはそれを開けなくて画面上にnickの文字をprintしている…という状況なのではないか、もしかして。

【追記】ファイルのopenやcloseの説明と実例を調べるとファイル名は拡張子まで記述しシングルコーテーションではくダブルコーテーションで囲うようだ。前述のnickとquestに拡張子.datを追加しダブルコーテーションに書き直したけれど変化無し。念のためにキャッシュもクリアしたが変化無し。文法チェックはSintax okのまま。
Shift-jisのCGIをUTF-8に置き換える
「旧CGIプログラム(SJIS)をUTF8へ変更する方法」の中の〝Content-type〟についての説明を参考にしたら「故障中の人工無能」の文字化けが直った。この人工無能はShift-jisで書かれていた。理由もなく何となくUtF-8に変更してみたくて四苦八苦していた。

変更前 print "Content-type: text/html\n\n";
変更後 print "Content-type: text/html; charset=utf-8\n\n";

各ファイルの文字コードと改行を確認したりShift-jisの箇所を全てUTF-8に変えるだけでは駄目だったのだ。「charset=utf-8」を追加するのが正解だった。
これで懸念が一つクリアできた。

- CafeLog -