野鳥紀トップページへ 野鳥の写真集・総合目次へ 観察野鳥一覧表へ 制作メモのページへ ご案内のページへ 一シギ二タカ三ツグミへ移動 動画集「ビデオカメラと野鳥」のサイトへ移動

ページ制作の半自動化メモ

240406
ヤツガシラ

ヤツガシラを見つけました。
すぐ飛ばれてしまい、さほどの写真は撮れませんでした。
しかし、そこは珍鳥です。すぐページにアップすることにしました。
写真は準備できました。
しかし、半自動化のプログラムがエラーになります。
困りました。
エラーメッセージから、コードを調べてみると、どうやらバグです。
困りました。プログラムの事情をよく覚えていないのです。
それでも仕方がないので、VS2022を立ち上げました。
久しく使っていません。起動も恐る恐るです。

結果、原因はどうやら、
さすがにヤツガシラクラスになると写真が少ないのです。
写真集に3枚あるだけです。
観察メモのページがありません。
プログラムは観察メモのページがある前提で作っていました。
ブレークポイントなど浅い知識を動員して調べたら、複数の個所の修正が必要な様子です。
面倒なので、今のプログラムでエラーの出るところまで実行して、そこまでのページを作ります。
エラーで未完のページは手書きで作り上げる事にします。

実際に実行してみると、手書きで補正する必要のあるページは、4ページです。
他のページを参考にしながら作り上げました。

ただ、ここで、愕然とすることがあります。
写真集だけで観察メモのページがない鳥種が、ザーッと見ても、かなりの数ありそうです。
今後、そのたびにエラーが出ることになります。
まあ、発生件数としてはそんなにないだろうと踏んでの決断です。
その間に、プログラムの修正が出来るといいのですが。



240103
観察メモ生成、年次更新作業

例年、年末年始の作業があります。
具体的には「年次更新作業メモ」のページに作業の段取りが逐一メモしてあり、これを実行するといいようにしてあります。
各ページの更新はこれでよかったのですが、一つ問題がありました。
HSPで作っていた観察メモ生成のプログラムを昨年C#で作り変えています。
例年、HSPで作っていたプログラムも、新しい年の写真を追加できるように更新する段取りをメモしていました。
そこで、C#のコードを見直してみました。
欠陥に気付きました。
年次別のフォルダ名が定数になっている所がありました。
そのままだと年が変わると動かない事は明白です。
書き変えました。
来年も問題が出ないように、日付関数から年の数字を取り込むようにしました。
これで、来年以降はこのプログラムは触らないでいいはずです。

ただ、別に大きな問題が発生しました。
Win11のDefenderがHSP内のファイルにウイルスだという警告が出ます。HSP3.6です。
これのZipファイルとEXEファイルに警告が出ます。
PUA:Win32/Vigua.AとPUA:Win32/Keygen、というものだそうです。検索すると深刻ではなさそうですが。
この点、ChatGPTに聞いてみたら、無視してはいけない、と出ました。

ただ、C#導入前は、HSPをメインで使っていました。
今でもかなりのHSPのプログラムが残っています。

HSPはインストールの必要ない形式です。Zipを展開して、そのまま使います
そのZipに警告が出ます。
しかし、展開したHSPの実行ファイルのあるフォルダをDefenderでチェックしても異状は出ません。
それにHSPは古いバージョンのzipファイルもたくさんあります。
こちらはDefenderでも警告が出ません。

トレンドマイクロのオンラインスキャンを使っています。
これでフォルダを指定して試しました。結果は異状なしでした。
トレンドマイクロのスキャンは、何やら異常に時間がかかりました。30分ぐらいです。

まあ、誤作動だろう、対策がないかとHSPのページを見に行ったら、
今度は別のセキュリティから警告が出ます。
HSPのホームページはフィッシングの疑いあり、だそうです。
困りました。

231106
ジョウビタキ生成FTP失敗

久しぶりにジョウビタキのページを作ったが失敗している。
どうやら、以前からの問題をうっかりしていたらしい。

まず、PC版の方は、予定通りにページを生成し、FTPの成功している。
ただ、独立スマホ版の方が失敗している。
どうやら、以前からあった問題で、その都度手書きで修正してあり、泥縄的な対応だったようだ。
前回のアップの時(230219)、失敗に気づかず、そのままにしていたらしい。
ややこしいことになっている。

ローカルとサーバーの差異は無視して、ローカルで失敗しているページをPC版に合わせて修正して、FTPで同期するといいだろう。
以下、ローカルで、独立スマホ版の修正が必要なページは、
合併写真集<し>行の目次:/sp_photo_si_g.htmの写真枚数82のままま、84が正しい。
合併写真集<ジョウビタキ>/gappei2/_zyoubitaki_f.htmのページに前回分(230219)の写真2枚が挿入されていない。枚数も82枚のまま。今回分は挿入されている。
写真は、ローカルにもコピーされ、サーバー(Star)にもアップされている。

重要!
ジョウビタキ単独の合併写真集のファイル名は_zyoubitaki_f.htmと「_f」が付いている。
これを修正しようとして、あるいは修正して失敗して_zyoubitaki.htmの「_f」なしのページも作ってある。
ローカルで調べるときこの「_f」なしのページを見ると失敗する。前回の写真が無いとかいう不思議な現象に出くわす。
目次からは_zyoubitaki_f.htmのページに飛ぶ。


230717
手書きで写真集への写真の追加、ウサギ

猛暑のせいもあって、なかなか新しい写真が撮れません。
そこで、先日,たまたま出会ったウサギの写真でも出す事にしました。
ただ、半自動化のプログラムが出来ていません。
サイトを変えて、合併写真集を作って、この現状に対応した半自動化のプログラムを作り変えなければなりません。
まあ、今更、写真集のページは作らないだろう、あったとしても手書きで何とか対応できるだろうと思っていました。
さて、その手書きでの写真集への写真の追加です。
ウサギの写真は一枚登録してありました。
つまり、まったくの新規ではありません。
写真集のページを一枚増やすだけです。
各種の目次のページは作ってあり、更新の必要はありません。
更には、鳥ではありません。合併写真集の対象ではありません。
合併写真集は鳥類だけをまとめた物です。

そういう事で、比較的簡単なはずです。作業を始めました。

まず、規格通りの写真を作りました。640x480と150x120ピクセルの写真です。
この写真を既定のフォルダに保存します。
2か所ありました。PC版ページのフォルダと独立スマホ版のフォルダです。

次に、写真集のページを作ります。
こちらの方は3か所でした。PC版内のスマホ版のページがあります。
既存のページを調べて、コピーで何とかなりそうです。
既に一枚あるウサギのページをコピーします。これを今回のページにします。
既存のページを参考にして、写真行を追加、リンクなどを修正します。
これで終わりです。
あ、PC版スマホ版のページも作ります。
同様にコピーして行追加、リンクなど修正です。

もう一つの独立スマホ版のページはこのPC版スマホ版のページをコピーしての修正で出来ました。
リンク先等を修正するだけでした。

都合、3枚の写真集のページを追加、3枚の写真集のページの更新でした。

さて、あとは、関連ページの更新です。
対象は、作業前にバックアップを取りましたのですぐわかります。
トップページ、制作メモ、スマホ版トップページ、サイトマップ、でした。
本来は、RSSのページも作るべきでしょうが、最近は効果がないみたいです。作りませんでした。
独立スマホ版のページには更新対象のページはありませんでした。



230418
合併写真集、シベリアオオハシシギ

自動化のプログラムを順次作り変えています。
ローカルフォルダに昔のLaCoocanの名前を使っていて、紛らわしいので、これを現実に合わせるためです。

基本、C#で作っています。
ただ、面倒なところ、簡単すぎるところに関してはHSPで作った物を見直して使います。
写真集の写真を追加するプログラムはHSPで作っていたものを修正して使おうとしています。
フォルダ名の変数を変えるだけで、面倒な修正はほとんどありません。多分。
実際に使っていませんので完成は保留中です。
ここで、問題は、合わせて、合併写真集も修正しないといけません。
写真が一枚増えるので、当然合併写真集も更新することになります。

そこで、合併写真集は独立して作る事にします。
観察メモは合併写真集まで作りますが、その他の作業は合併写真集に関しては手作業で対応できると踏んでいます。
その分を独立して自動化することにします。
元々、合併写真集は、通常の写真集と観察メモを合わせただけの写真集です。
古い分もそのように作っているはずです。

思いつくところを修正して動かしてみました。
動くのですが、シベリアオオハシシギに関して、
既存 7 今回 5 重複 2 今回作業対象!、と出ます。
これは写真が2枚余分に入っていると言う意味です。
調べてみたら、写真ファイル名に問題がありました。
本来は、siberiaoohasisigiとすべきものを s_oohasisigiとしているのです。省略形です。
昔はファイル名は8文字という制限がありました。その名残です。

そこで思い切って全部をsiberiaoohasisigiに直すことにしました。
問題は、これに合わせて、シベリアオオハシシギの写真を使っているページを修正する必要があることです。
写真集と観察メモのページを修正しました。

実はこれだけで完成するだろうと踏んでいました。
修正してリンクチェックをします。これはツールを作ってあります。自作のLinkCheckです。
調べてみると、大量にリンク切れが出てきました。目次のページにサムネイルを置いてあるのです。
目次のサムネイルが大量のエラーになっています。

そこで、苦肉の策で旧名のファイルも残すことにした。
例えば、旧名s_oohasisigi050819-2.jpgと訂正後のsiberiaoohasisigi050819-2.jpg
の両方を置いておくことにしました。
これで、リンクのエラーは解消しました。
問題が出るとすると、この写真を入れ換えるときです。
このことを覚えていればいいのですが。


230307
ChatGPT、HSPでフォームに書き込んだ文字を消す

巷で噂のChatGPTを使ってみました。
ここは、別に独立したページを作り、移動しました。

230121
ミコアイサとホオジロガモ、メス

今日、大失敗をしました。
いつものように観察メモを作りました。
数日前に撮ってきていたミコアイサの写真を3枚、既定サイズにして、既定のフォルダにコピーして、半自動化のプログラムを動かしました。
作業は数分で終わります。関連する10数ページを生成更新します。

出来上がったサイトを、一応、手作業でチェックをします。
観察メモのページ、観察メモの鳥名順目次、合併写真集のページ、などを調べます。
ページはいつもの通りで、予定通り出来上がっています。
ただ、何かおかしいことに気づきました。
合併写真集には、このサイト全部のホオジロガモの写真が掲載されます。
今回の写真も追加されています。しかし、何かおかしいのです。
そこで気付きました。写真はホオジロガモではなくミコアイサなのです。

写真を作るとき、ミコアイサをうっかりホオジロガモと間違ってしまいました。
ただ、半自動化のプログラムはこのチェックはしてくれません。ファイル名で鳥種を判別しています。
そのまま12枚のページを生成更新してしまいました。
ホオジロガモと表示してあるミコアイサの写真です。
合併写真集にはホオジロガモの中に3枚ミコアイサが入っています。

幸い、更新されるものはほとんどすべてバックアップが作ってあります。
プログラムでバックアップしています。これを戻すだけです。
生成されたものは削除しました。

ローカルで見てみると、元に戻ったようです。
念のために、最近作ったリンクチェックのプログラムで、リンク切れがないか調べました。
大丈夫なようです。

あらためて、正しいミコアイサで作り直しました。

蛇足ながら、原因です。
今回の写真はメスでした。オスに比べて間違いやすいことには違いありません。
それに、直前に微妙な作業をやっていました。
サイトのメモではなく、その日に観察した鳥種のメモも作っています。Excelに作っています。
2008年から作ってあります。
時々、過去を振り返って、この時期何を見たかな、という具合に調べています。
それが、ちょうど一年前、同じ場所でメジロガモの記録がありました。
メジロガモは一回しか見たことがありません。
本当に見たのは、この日でもこの場所でもありません。ですので間違いだと分かりました。
ただ、記録にはメジロガモと書いていました。
当時の写真を見てみるとホオジロガモです。記録が間違っていたのです。訂正しました。
たまたまそういうことがあって、ホオジロガモの記憶が残っていた様です。

230105
ジシギ

今日ジシギの観察メモを作りました。
多分、オオジシギだと思うのですが、決定打がありません。やはりジシギです。
ただ、ジシギについては写真集を作っていません。作れません。
ですので、自動化の作業の際に色々と問題が出てきます。

もこのページに22年9月に同じメモがあります。同じような内容になりますが、もう一回書いて置きます。
観察メモを作ろうとすると、写真集がない、でも観察メモは作れる、というダイアログが出ます。
実行しますと、異常終了はしませんが、FTPに失敗しています。
通常は同時に合併写真集も作り上げるのですが、これも失敗します。
当然です。普通の写真集がないので合併写真集は作れません。
ただ、色々とダイアログは出しますが異常終了はしません。
作業終了後に手動でFTPすることになります。

なお、オオジシギは写真集を作っています。
オオジシギと特定出来たものです。
根拠は、鳴き声です。繁殖期にはよく知られた行動を取ります。
ディスプレイフライトとその際の風切り音です。

230102
独立スマホ版のtempフォルダ

今日、年が変わって、初めての観察メモをアップしました。
プログラムは何事もなく終了しました。
いつもの通り、サイトのページを確認していくと、本体のサイトの方は目的通り出来上がっていましたが、独立スマホ版のページに今回の鳥種の新しい写真がありませんでした。
FTPで調べてみたら、写真を入れているフォルダがありません。
当然、写真は表示されません。
ローカルのサイトを調べたら、こちらにも今回分のフォルダが出来ていません。

段取りとしては、本体のローカルのサイトのフォルダは手書きで作って、今回分の写真を入れておきます。
観察メモの自動化のプログラムで、合併写真集のプログラムを起動し、そこで、足りないフォルダと写真をコピーする、という段取りになっています。

ここで、年末に、そのローカルの写真を入れておくフォルダに余計なフォルダを作っていました。
これで、プログラムが誤動作したみたいです。

正確には、次の観察メモ作成まで保留です。

221126
新規鳥種追加、ウズラ

久しぶりに新しい鳥種がありました。
ウズラです。
新規については今年の2月にミズカキチドリがあり、その時も大変苦労しました。
今回は、その時のメモがこのページにあり、参考にできるので楽だろうと踏んでの作業です。
写真を準備して、分類順の目次2つに空白行を入れ、新規追加のプログラムを動かしました。
ローカルでの作業は無事に終わり、FTPの作業に移りました。
ここでエラーです。サーバーのリストが取れないとのエラーのダイアログが出て、異常終了しました。

まあ、これは別途FTPするといいのでさほどの障害ではありません。
FTPは後回しにして、ページが正しく生成できているか調べました。

ここまででの矛盾点は分かっています。
合併写真集のページを作ったことです。
新規の鳥種の追加などはかなり以前に作ったもので、この合併写真集の事を考えていません。
新規の鳥種があった場合など、どうしても手書きの修正が必要になります。
この際の、合併写真集に関するページと目次は生成更新していないのです。

現在の大半の作業は、観察メモを作ることです。
これに関しては、合併写真集まで生成できます。
ただ、今回のように新規の鳥種など写真集に関する追加や更新があれば、この観察メモの作業に矛盾が出ないように手書きで補正が必要になります。

さて、一応の新規の写真集の追加の作業の結果、
PC版内のスマホ版の分類順(全)目次(sp_b_index_picn.htm)が更新されていません。
どうやら、過去に分類順(全)目次のファイル名が変更されているようです。
プログラムではその古い方のページ(sp_b_index_pic.htm)を更新していて、今使っている方のページが手付かずです。
この新しい方のページは生成された古いページを参考にして手書きでウズラの行(目次)を追加しました。
PC版内のスマホ版の目次では、分類順(全)目次とともに分類順前(後)半の目次も更新が必要です。
分類順前(後)半の目次は新規追加のプログラムで更新されていました。


そういうことで、手書きで生成や更新が必要なページを以下リストします。

PC版のページでは、
まず、新規に生成するページがあります。新しい鳥種の写真のページです。
通常の写真集のページshtm09/uzura.htm(ウズラの場合)は新規追加のプログラムで生成済み。
PC版内のスマホ版の通常の写真集のページshtm09/sp/uzura.htm(ウズラの場合)も生成済み。
合併写真集のページがgappei2/_uzura.htm(ウズラの場合)、これは手書きで作ります。
 写真一枚のページなので、ちょうど前回作ったミズカキチドリのページを土台にできます。
 写真とタイトル、学名などを書き換えて新しい名前で保存すると簡単です。
更新(ウズラの行を追加するもの)、
PC版内のスマホ版の分類順(全)目次(sp_b_index_picn.htm)(既出)
合併写真集五十音順目次(textindexg.htm)
合併写真集分類順目次(b_index_picg.htm)
の三つです。

PC版内のスマホ版の写真集のページに関しては、新規追加のプログラムで問題なしです。
PC版内のスマホ版には合併写真集がありませんので。

独立スマホ版のページに関しては、
新規の鳥種の追加のプログラムでは何もしません。
このサイト自体が無かったころに作ったプログラムです。
ですので、写真集のページと各種の目次を追加更新する必要があります。
通常のスマホ版用の写真集のウズラのページshtm09/sp/uzura.htm、
合併写真集のウズラのページgappei2/_uzura.htm、
目次は、
五十音のウ行の目次sp_photo_u.htm(ウズラの場合)
分類順(全)目次sp_b_index_picn.htm
分類順前半目次sp_b_index_pic1.htm(ウズラの場合)
合併写真集分類順目次sp_b_index_picg.htm
合併写真集五十音順う行の目次sp_photo_u_g.htm(ウズラの場合)
を更新します。

一応、手書きで修正するページはバックアップを取りました。
PC版と独立スマホ版それぞれの定位置のバックアップフォルダにあります。
また、新規追加のプログラムで生成更新されるページはプログラムでリストするとともにバックアップしています。

HPBを使うので、設定で大事なことがあります。
HSPのプログラム側で小文字のタグを認識しません。大文字が前提です。
ツール、オプション、ソース編集、で出力文字のタグを大文字にしておく必要があります。
同じ所で、属性は小文字です。

221128追記
恐る恐る観察メモを作ってみました。重複しますがウズラです。
結果、正常の動作しました。
つまり、ここまでの手書きの作業が正しかったという事です。
なお、合併写真集では、同じファイル名の写真は使いません。
重複しないようにカウントし表示しています。

221119
手動でFTPしているページについて

下のジョウビタキ問題は未だに解決していません。
FTPに失敗している2枚のページは手動でFTPしています。

実は、その他にも手動でFTPしているページがあります。
無料のレンタルサーバーを契約してあり、そこに同様のサイトを構築してあります。
練習用、バックアップ用として使っています。もちろん、robots.txtでdisallowしてあります。

これまで、行き当たりばったりでミラーリングしていました。
これが最近は時間を食うのです。
数10分、ひどいときには1時間以上かかる場合があります。

最近ではこの作業はマメにFTPすると何とかなることに気付きました。
サーバーとローカルのファイルの日付を見比べて、更新の必要なページが分かるのです。
この作業を続けていたら、この分の作業も自動化できるのではないか、と気付きました。
勿論、観察メモのページの更新作業だけです。

例えば、今回のカイツブリの観察メモのページを作った際には、
スマホ版のサイトで更新が必要なページ類は、
/tenp22/221118_kaituburiのフォルダと同フォルダ内のページ
/gappei2/_kaituburi.htm
/sp_photo_ka_g.htm

PC版のサイトでは、
/tenp22/sp/sp221118ar.htm
/tenp22/221118_kaituburiのフォルダと同フォルダ内のファイル
/tenp22/sp221118ar.htm
/gappei2/_kaituburi.htm

/index.htm
/kasio5sakura.xml
/memo.htm
/ml50idx.htm
/mlindex.htm
/rss5.xml
/sp_index.htm
/sp_mlindex.htm

これをプログラムするといい事になります。
PC版のページは、合併写真集のページ以外は、バックアップのテキスト221119-0806ks.txtにリストしてあります。
これを元に、順次FTPする物を組んでいくことになります。

221108
合併写真集、ジョウビタキ

ジョウビタキの観察メモを作りました。
自動化のプログラムは正常に終了します。
しかし、合併写真集のページがアップされていません。
観察メモや写真集のページを作ったら、それに合わせて合併写真集のページも更新する事にしています。
観察メモに追加した写真を合併のページにも追加します。
ですので、合併写真集のページもアップロードするはずです。
でもなぜかアップされません。
ページは作られていますが、FTPに失敗しています。
この件、分かっており、以前のメモにも記載しています。
幸か不幸か、プログラム側でFTPのエラーを把握できないので、正常終了しています。

以前からある問題で、後でFFFTPでアップし直しす事で辻褄を合わせます。

失敗しているページは、
PC版とスマホ版の合併写真集のページ、ファイル名は双方同じで、_zyoubitaki_f.htm
直前に作っているページは二日前のビンズイで、ファイル名が_binzui.htm
つまり、フォイル名に_fが付いていることが原因、プログラムでこのファイル名を正しく生成できていない。
なぜ余計なものが付いているかというと、もともとの写真集のページがzyoubitaki_f.htmとなっているため。
昔、手書きで作った当時はこのようなことまで考えていないので、幾つか問題になるファイル名がある。
幾つかは、if分で処理したはずだが、漏れていたものだと思う。

ここまで書くと、訂正は簡単なようにも思える。
でもまだ手を付けていない。
FFFTPで処理できているので様子を見ている。


221006
合併写真集、リュウキュウサンショウクイ

観察メモにリュウキュウサンショウクイを追加した。
合併写真集で写真ファイル名が違うものがあり、心配したが、結果は無事終了。
今回分もちゃんと追加されていた。
経過はよくわからない。

220930
合併写真集、オオタカ

観察メモにオオタカの写真を追加しました。
オオタカの問題は既知です。最初のファイル名が標準化されていないので、自動化プログラムの一部で失敗します。
一部とは、合併写真集のFTPです。FTPに失敗します。失敗しまずがこの失敗を把握できていません。
FTPも成功したと言う結果を出します。
失敗するのはFTPだけで、ローカルでは関連のファイルを含めて全部完成しています。
ですので、今回もFFFTPでアップロードしました。

220911
ジシギ

今日、ジシギの観察メモを作りました。
場所柄、時節柄、タシギもしくはオオジシギだとは思います。
でも、確定はできないのでジシギとして写真を作りました。
いつものように半自動化のプログラムを動かします。
結局の所、合併写真集とのからみで問題が出ます。
まず、写真集がないというダイアログが出ます。その通りです。
その後も、幾つかのメッセージが出て、合併写真集が作れません。
当然、合併写真集もありませんので。
ただ、異常終了はせず、FTPまでされて終了しました。
このあたりの所、どのように作ったか覚えていません。
いつものように、サイト側での出来上がりを確認すると異常はなさそうです。
ローカルでのリンク切れのチェックもしてみました。正常です。
次回、同じ事で、また心配するので、その時の為のメモです。

220824
空白を含むファイル名、FC2Free

無料のサーバーFC2Freeに、バックアップのつもりで同じサイトを構成しています。
当然、robots.txtにDisallow: /をセットしています。
ここは、条件が(環境が?、性能が?)悪くて、通常の用途には使えません。
遅いのです。今日、FFFTPでミラーリングを実施しました。結果が出るのに30分かかりました。
しかしながら、無料という一点で使っています。

ただ、今回は、というか、以前から気付いていたことですが、収穫がありました。
それは、FC2Freeではファイル名に空白を含むファイルはアップできない、という事です。
その他、ここには幾つかの制限があって、、容量の大きいファイルもアップできなかったと思います。
この件、FC2Freeだけの問題でしたので無視していました。非公開ですので。
当然、同じファイルがこのサクラのサイトにもありますが。普通にアップロード出来て表示されています。
もちろん、ローカルつまりWin11上でも大丈夫です。

収穫とは、この問題に気付かせてもらえた、という点です。
本体のサーバでも、出来る事なら空白付きファイル名など特殊なファイル名は避けるべきでしょう。
今回は、この空白ファイル名を解消しようと思います。

該当するファイルは、
https://bird.x0.com/temp20/201101_aozi/aozi201101%20-2.jpg
https://bird.x0.com/temp20/201101_aozi/aozi201101%20-3.jpg
https://bird.x0.com/temp11/110119_aosigi/クリップボード-1.jpg
https://bird.x0.com/temp11/110726_ooban/2011-07-26%2021-53.jpg
でした。
ここでは空白は%20と表示されています。コピーペーストで持ってきた結果です。

さて、書き直すのは簡単なのですが、今まで使っている半自動化のプログラムがどう反応するか心配です。
まず、変更するファイルのバックアップを作りました。
そして、ファイル名から空白を取り除きます。
リストの3番目のファイル、クリップボード云々は使っていません。何かの作業中に紛れ込んだものでしょう。削除しました。これは多分、日本語のファイルが使えない、という事でしょう。

次に、このファイルを使っているHTMLファイルを修正します。
この作業にHPB15は使えません。
HPB15を使うと、微妙に、というかかなり変更が入ります。自動整形があるのです。
私のサイトのHTMLファイルの大半は、半自動化のプログラムで生成した物です。
HPB15には設定があって、自動的にスクリプトが大文字になったり、行頭にタブが入ったりします。
極力、これに合わせるように作ってはいますが、やはり合いません。
HPB15が適当に補正を入れると、今度は半自動化のプログラムが動かなくなりそうです。

という事で、エディタのTeraPadを使います。これだと、修正したい部分だけを変えられます。
ここで、Rekisaを使います。
Rekisaを使うと、修正したファイルとバックアップしてある修正前のファイルとの比較ができます。
修正場所以外の文字が変更されていないことの確認に使います。

もう一つは自作のLinkCheckです。
先のJPGファイルの名前を修正すると、当然それを使っているHTMLファイルを修正する必要があります。
日付などから修正対象のファイルは分かるのですが、取りこぼしがあります。あるかも知れません。
最終的にLinkCheckを動かし、リンクエラーがあれば、今回の作業に絡む所です。
作業前にリンクエラーがないことは調べてあります。

220817
合併写真集、noindex

昨年の始め、合併写真集を作りました。鳥名ごとに写真を一つのページにまとめたページです。
それまでは、写真集には鳥名ごとに5枚ほどの写真、観察メモには3枚ほどの写真を掲載してあります。
これを全部収集して一枚のページで見られる様にしました。
この際、作業中、未完成、という事で、noindexを付けていました。
これがまだ残っていました。
外しました。
GoogleSearchConsoleで指摘されていて、見つけました。
GoogleSearchConsoleでは大きな問題を抱えていていました。
SAKURAインターネットに移転して以来の問題で、重複しているページが莫大に増えていると指摘されていました。
これが、どうやら解決に向かっているようです。
詳しくは移転経緯のページに書いています。

220710
クロツグミ、合併写真集

今日、クロツグミの観察メモを作りプログラムを使ってアップロードしました。
しかし、最後の最後、独立スマホ版をFTPした後でエラーが出ました。
プログラムエラーではなく、FTPに失敗しているというエラーです。

半自動化プログラムでは、一番最後に独立スマホ版の目次を更新してFTPします。
FTPの後、念のため、サーバ側とローカル側のタイムスタンプを比較して、更新されているか調べます。
どうやらこれで更新されていないと判断したようです。
FFFTPで調べてみると、確かにサーバ側が1分古いです。
しかし、実際にページを見てみると更新されています。今回のクロツグミ3枚が追加されています。
サーバ側のファイルをダウンロードして比較してみても最新のローカルのファイルとの違いはありません。
ここでは、rekisaというテキストファイルの比較をするプログラムを使って調べました。

ここで気づきました。時刻の設定です。
PCの時刻が電波時計と比べて30秒進んでいました。

220415
オオタカ問題、合併写真集

今日、観察メモにオオタカのページを追加しました。写真は3枚です。
いつもの通り、半自動化のプログラムで、観察一覧表、鳥名順一覧などにリンクを追加してFTPまでして、正常に終了しました。

いつもの通り、正しく出来上がっているか調べます。
ローカルの方は予定通りに終わっています。
ただ、サーバの方には合併写真集が更新されていません。
ここまで、59枚の写真がリストされていて、今回の3枚を加えて62枚になるはずです。
ローカルのファイルは62枚になっています。完成しています。
しかし、サーバのファイルは古いままです。つまり、FTPを失敗しています。

私の自動化のプログラムではFTPの失敗を把握できないようなのです。
更に原因を突き詰めると、オオタカの合併写真集のファイル名が特殊な名前になっています。
これは、おおもとの写真集のファイル名が基準外の名前で登録している事に起因します。
原因は多分これです。
ただ、これを修正するとなると、あらゆるリンクを修正していく必要があります。多分。
そこで、原因には目をつぶり、該当のファイルをFFFTPでアップしてみました。
どうやらこれでよさそうです。

220227
新規の鳥種の追加、ミズカキチドリ

昔の観察メモ(111002)のページにハジロコチドリとあるのはミズカキチドリではないか、という連絡をいただきました。
調べたり相談したりして、どうやらその通りだという結論です。
そこで、めでたく新規の鳥種を一種追加です。
指摘していただいた方には感謝です。

しかしながら、この修正の作業が大変でした。
元凶は、昨年新しく(210209)合併写真集というページを追加した事です。
以前から、新規の鳥種を追加する時の対応は出来ていて、それ専用のプログラムがあります。
以前は、何の問題もなく、関係するページの更新なども自動的に作られていました。

今回は、ハジロコチドリとしていたものの一部を書き換えないといけません。
この場合の対応をまったく考えていませんでした。
もちろん、新規の追加の場合の合併写真集への追加も考慮していません。

それでも何とかなるかもと、強引に試してみましたがエラーで止まりました。
一日がかりで修正しました。ほぼ手書きでの編集でした。結果、現在めでたく315種です。
合併写真集の辻褄も手書きで修正していきました。
ただ、先々の事もあるので、プログラムのコードと見比べて、どこでエラーが出ているのか調べました。
原因は、なんと手書きで、というかHPBで修正したことです。
HPBで書き換えるとタグが小文字になっていました。 A herfとしたいところがa herfと生成されています。
これを合併写真集生成のプログラム側で対応できていませんでした。
リンクがある場所をA herfで探しています。実際にはa herfとなっていたら見逃してしまっています。
(HSPで作ったプログラムです。C#には大文字小文字を区別せず、というオプションがあったような)
これを手書きで大文字に変更したら動きました。

もともと、合併写真集の生成は、既存の写真集のページと観察メモの写真を調べて、
重複分を避けて一つのページに表示するようにしています。
ですので、写真集や観察メモのページを変更しても追随できる作りになっているはすでした。
ただ、大文字のタグだけを調べて収集していました。

220302追記
Aタグが小文字になる原因はHPBの設定でした。
ツール、オプションのソース編集タグに大文字小文字の設定をする項目があります。
タグが小文字になっていたものをを大文字に、属性は小文字のままにしました。
昨年、Win11に変えて、HPBもインストールしました。この際、既定値に戻ったものでしょう。

今回の手書きで修正したファイルは、20ページになります。
一応、修正する前にバックアップしてからいじりましたので、バックアップしたファイルを数えました。
大半は目次ファイルです。目次の作りすぎかもしれません。
同じ写真へ、あるとあらゆる目次から進めるようになっていますので。
これらのファイルを半自動化プログラムで生成更新している訳です。

今日、新しく観察メモを追加してみました。
今回の修正がうまくいっているか、心配でしたが、すんなりと完了しました。
つまり、修正が成功したという事です。多分。

220303
更に修正箇所が見つかりました。
当時の観察メモのハジロコトドリとしていたものをミズカキチドリに修正しました。
そこで、気付きました。
写真集のページも修正が必要でした。
ハジロコチドリのページにミズカキチドリが残っていました。
修正する前にバックアップを作ります。このバックアップを再度数えたら38枚でした。

この際、役に立ったのが、別途作っていたリンク切れチェックのプログラムです。
C#で作りました。完成したのは最近です。
このプログラムに関しては独立したページを作ってあります。

わがサイトの全HTMLファイル5776ページのリンク切れを調べます。
リンク総数は168554箇所あります。
これを43秒で調べてくれます。
例えば、一か所修正して、まあ、関連の、思い当るところは修正しますが、見逃しもあります。
そこで、このプログラムでチェックします。
すると、エラーが出ます。エラーのあるファイル名とその中のリンクの位置を教えてくれます。
そのリンクを修正します。
これを何度か繰り返して、エラーが出ないようにします。
結果、38か所の修正が必要だったという事です。

220203
ジョウビタキ問題、合併写真集

今日観察メモにジョウビタキを追加しました。写真は3枚です。
自動化プログラムで、観察メモのページを作り、関連するページも仕上げました。
更新したページをFTPまで実行して終了しました。仕上げたつもりでした。
いつも、予定通り仕上がっているかチェックしています。
観察メモ単体のページに関するリンクや項目の追加は予定通りできていました。
ただ、鳥種ごとの合併写真集が出来上がっていません。
写真集の合計は合っています。今回の写真の分、3枚多くなっています。
ただ、その3枚を加えたはずの合併写真のページに写真が追加されていません。
合併写真の目次は繰り上がっていますが、写真そのものが増えていないのです。

色々調べていくと、全体の状態が把握できました。
ローカルのファイルは全部更新されています。
ローカルの合併写真集には今回の追加分が反映されていて数字もあっています。
つまり、FTPだけが実施されていません。
他の関係ファイルはFTPされてサーバー側も新しくなっています。
ジョウビタキの合併写真集だけがFTPに失敗しているのです。
これの原因はジョウビタキの合併写真集のファイル名が特殊なものになっているからだと思います。
また、プログラムではFTPに失敗しても何反応しないのでしょう。

どうやら、原因解明です。
この失敗している分をFFFTPでアップして辻褄を合わせています。
プログラムの修正はそのうちにやります。

211106
中国語(簡体字)を常に翻訳、lang属性追加

「中国語(簡体字)を常に翻訳 Google Translate」というダイアログが出ることがあって、困っていました。
最近追加した合併写真集のページが顕著です。

もともと、写真だけのサイトで、特に合併写真集には写真が100枚以上もあるページなどもあり、表向き日本語は鳥名と日付だけです。
ただ、鳥名はカタカナですし、ページタイトルもカタカナ鳥名が入っています。
普通に調べたら、中国語と間違われる事はないと思います。
新しい方のWindows11だけの話で、旧PCのWin10では問題ありません。
また、Win10の方は6年間の稼働実績があります。Win11はまだ半月です。
これも影響しているかもしれません。

対策を調べました。
<HTML lang="ja">を入れるといい、という記事を見つけました。
トップページに入れてみましたが、効果なしです。ダイアログが出るのは末端のページですので。
全部のページにいれるとすると大変です。
ダイアログが出るページ、合併写真集に入れてみました。
効果がありました。ダイアログが出ないようになりました。
langの効果はそのページだけのようです。

自動化プログラムに影響がないかを調べました。
このプログラムに影響がなければ、一括置換のアプリで書き換えればよさそうです。
対象は合併写真集の300ページと少々です。
どうやら問題なさそうです。
バックアップを作ったうえで、TExchangeで全部書き換えました。
このページは、テンプレートを使って、必要な写真を書き込む形にしています。
そのテンプレートも書き換えました。
つまり、自動化で今後作るページは対応している事になります。

211109
今日、観察メモのページを追加しました。
自動的に合併写真集にも写真が追加されています。
正しく動作しているようです。
ただ、念のため、バックアップで作っているサイトは更新していません。


211008
観察メモ生成に関するエラー

発生日時と発生源が曖昧だが、観察メモを作った時エラーが発生、
制作時に鳥名が乱れているものがいくつかあって、場合分けで処理していたが、その関連か。



210506
スマホ版のFTP先変更

バックアップや比較用に作っていたスマホ版の4か所のサーバーがあります。
この経過は、サーバー比較というページに書いています。
そこで、ふと思いついて、PC版本体のバックアップと比較の為、まず、PC版をStarServerFreeにも入れて見ました。
スマホ版だけをいくつも作っては無駄だ、一つぐらいはPC版も入れてみよう、と思っただけです。

ただ、実施してみて気付きました。StarServerFreeではCGIが使えません。
そこで、LaCoocanMiniへ移すことにしました。
Starの方はまたスマホ版に戻しました。

この作業のFTPへの影響の事を考えていませんでした。
自動化プログラムでFTPもしています。
将来、スマホ版の一つは公開しようと思って、スマホ版のファイルはMiniへFTPする様にしていました。
ですので、これをStarに変更しないといけません。

一応、作り直しましたが、結果は次の作業でしか分かりません。

しかも、複雑な事に、ローカルのフォルダ名は元のままです。
ローカルもサーバーに合わせて変更すると、プログラムも対応させないといけません。
これが面倒なので、ローカルは元のままで、LaCoocan用のフォルダからSAKURAのサーバーへアップするようにしています。
スマホ版のローカルフォルダは、当初がMiniサーバーに置くつもりだったのでMiniです。
つまり、現在、スマホ版のページやファイルは、ローカルのMiniフォルダからStarのサーバーへアップするようになります。

210508追記
ムナグロの観察メモを追加しました。
Starのスマホ版の合併写真集も正しく生成アップされています。


210430
ヤマガラの合併写真集

ここまで順調に更新できていた合併写真集(写真集と観察メモの写真を一つのページにまとめたもの)で失敗がありました。
210428のヤマガラです。
エラーこそ出ませんでしたが、生成アップロード作業の直後にチェックしてみたら、スマホ版の合併写真集だけが更新されていませんでした。

現在、観察メモ関係のページの生成には、
 元から使っている観察メモ生成のプログラムと、
 合併写真集を生成更新するプログラムと、
 このファイル群をFTPするプログラムと、
 スマホ版の合併写真集の目次に合併写真の枚数を書き込み、FTPするプログラム、
で成り立っています。
見事にスパゲッティ化されてしまいました。(最近ではパスタ化というのでしょうか。)

現象は、
スマホ版の合併写真集のページが更新(追加すべきヤマガラの写真が追加)されておらず、
サーバー側のページも当然そのままでした。
サーバー側のページは、FTPはされていたようで、日付けは新しくなっていました。
合併写真集の目次の枚数も元のままでした。

ここまで書いていくと、原因は合併写真集のページの生成更新にあった事が分かります。
手当たり次第に調べて行きましたので、結論に至るまでは大変でしたが。

つまり、合併写真集に追加すべき今回の観察メモの写真が何故か追加されていないのです。
更新されてはいませんが、ページ自体はあるので、FTPは成功するはずです。

FTP作業で手を抜いて、アップ前の日付けの比較をしていなかった記憶があります。
これまでは、いずれのページの生成作業でも、FTPの前とFTPした後で、ファイルの日付けを調べて、
FTP前でサーバーの日付けが新しかった場合、FTPの必要が無い旨表示、
FTPの後でサーバーのファイルが古かった場合、FTPの失敗だと表示する様にしていました

これが、ここまで一回も失敗が無かったのです。
そういう事もありまして、今回のプログラムではこのチェックをしていませんでした。
とにかく、該当のファイルをFTPして終わる、様にしていました。
エラーが出なかったのはこのせいでした。

もう一つ、原因がありました。
合併写真集を作る時、写真やページのファイル名が同じものを収集しています。
ただ、古い写真では特に、ファイル名を間違っていたり、ファイル名を違えていたりしている物があります。
今回のヤマガラもその中の一つでした。
これが、今回収集しきれていない原因だと思います。

しかしながら、これにも疑問が出てきました。
実は、合併写真集を生成更新するプログラムを個別に動かしてみたら、ちゃんと収集出来ていました。
合併写真集が更新できていたら、目次を更新してFTPする方も正常に動きます。
先の理由で失敗しているのなら、今回も失敗するはずなのですが、うまく行っています。
まあ、今回は細かい事は考えない事にしました。


210330
サーバーのファイルリスト

FC2の無料版を扱う機会があり、そのFTPで苦労しました。
FC2でサーバー側のファイルリストが表示されないという問題です。
同じFTP転送の作業で、まず、FFFTPで試して、うまく動かず苦労しました。
同じ様な問題が半自動化のプログラムでも発生しました。
FFFTPのトラブルに関しては、独立したページを作り、事情を書いています。

ここではHSPでの半自動化プログラム、FC2へのFTPに関する問題です。
同時に幾つかのサーバーで試しましたが、FC2以外のサーバーでは成功しています。

サーバーのファイルリストは、ftpdirlistとftpdirlist2のセットで取り出します。
私、理屈は分からないのですが、サーバーからの返事待ち、みたいなことでしょうか、ftpdirlistの直後に何やら待機するループを作ります。文例がそうなっています。
その後で、ftpdirlist2を発行してファイルリストが取得できます。
ここでエラーが出る場合があります。
FC2でこれをやるとエラーでした。

対策は、ありました。
と言っても試行錯誤で試してみてうまく行ったというだけで、理屈は今一不明です。

エラーの直接の原因は、そのサーバー側のファイルリストをmesboxに表示させると発生しています。
不思議な事に、表示を省略すると成功します。
取得したリストを変数に入れただけなら大丈夫、その変数を表示しようとすると失敗します。
ですので、表示させずに、その変数にあるリストからファイルの日付を取り出して、別に取得しているローカルの日付と比較する事は出来ます。
これで、新旧の区別をし、上書きしていいかどうかの判断材料にします。

解決策は、どう対策したらうまく行ったのかというと、
ftpdirlistの直後のループ内のawaitを50ミリ秒から100ミリ秒にする、
あるいは、ftpdirlist2の直後にwait100を入れる、というものです。
これで、安定して作業が出来ています。表示もされます。

FFFTPで接続は出来ているようだが、リストが出ない事と共通する物があるかも知れません。

210327
合併写真集の枚数、このサイトの写真数

合併写真集の写真の枚数は、プログラムで逐次更新しています。
鳥種毎の合計です。
全部の枚数は、それを合計すると出てきます。314種あるはずです。

このサイトの写真数は、だいぶ前に大まかに計算した数字をトップページに上げています。
6500枚としています。
実際には観察メモを追加する時に、その鳥種の合計枚数を更新していますので、副次的に全部の枚数もカウントしています。
この数字は現在、プログラム上だけでカウントしてあり、表示はどこにも表示してありません。
今日の集計結果は6726枚でした。

なお、写真集にも観察メモにも出している写真があります。
観察メモに出した写真の内、多少写りがいいかなというものを写真集に上げていました。
その分が重複しています。重複しているものはカウント中にチェックして合計から外しています。
具体的には177枚が重複していました。


210324
写真集の写真の追加、等

SAKURA移転い関して、作業を続けています。
今回写真集の写真追加のプログラムに手を加えました。
ページを生成更新するものと、それらをFTPするものです。
基本的に、サーバー関係の定数を変更するだけで動きそうです。

写真集の写真の追加の他、写真集の写真の入れ換え、写真集に新規の写真を追加も対応させました。
つもりです。
実際にページを作ってみないと成否は断言できません。

210312
インターネットサーバー

サーバーのスペルは、server。インターネットサーバーは、internet serverか。
saverと書いていた。スクリーンセーバーだな。置換した。
古いプログラムにも沢山ありそう、対応できないな。

210325
FTPの書き直しをしていて、この訂正も進めています。

210308
FTP作業の関数化、#includeが使えない
下のメモで関数化を諦めたFTP作業を、もう一回関数化に挑戦しました。
一回ではなく、既に数限りなく挑戦していて、どうしてもうまく行きませんでした。
netinitの所でエラーになります。

ネットを調べまわったり、試行錯誤したりして、どうやら解決策に至りました。
#include "hspinet.as"の使い方が悪いようです、どうするといいのか分かりません。
ネットでは、#moduleの中に入れたり、外に出したり、下に置いたりと、色々な対策が見つかります。
ただ、私の理解が足りないのか、どうしてもうまく行きません。

苦難の末の解決策は、やはりネットからの知識で、
#uselib "hspinet.dll"
#func netinit netinit 0
#func ftpopen ftpopen $202
・・・
でした。

具体的には、hspinet.asを使わず、hspinet.asの内容を直接moduleの中に記述する事です。
当初、必要な部分だけ移せばいいかと思って、
実行してみて、エラーの発生するコマンドを調べて、#func以下を書き足していきました。
つまり、netコマンドの所でエラーになりますので、それに対応する部分をコピーしていました。
これを、エラーがなくなるまで繰り返しました。面倒でした。

これで、最終的にエラーが無くなりました。つまり、正しく動きました。
ここまで、動いている様に見えます。

更に考えると、試行錯誤などせず、hspinet.asのコマンドの部分を全部コピーしておけば良かったのでしょう。
これも試しました。ちゃんと動きます。
元来、#includeの意味は、そのようなものでしょう。
どうなんでしょうか、元来、moduleでは#includeは使えないのかもしれません。

ネット関係は関数化するのも良し悪しです。
一つ一つの動作に時間がかかります。
例えば、ftpdirlistです。
対象のディレクトリのファイル数次第では、かなり待たされます。
そこで、お待ち下さい、を表示したいのですが、配置に苦労しています。
これが、ローカルのドライブならランプで確認も出来ますが、サーバーだと何も分かりません。

極端な話、関数内で画面を作ればなんとかなる話です。作れる物でしょうか。
しかし、何故か、呼び出し元の画面が使えることに気付きました。
objprm オブジェクトID,表示内容、のオブジェクトIDを合わせると表示されます。
そこで、引数でIDを関数内に持って来ます。
これで、目的のmesboxに表示されます。

ここで気付きました。変数+@を使えば呼び出し元の変数も使えます。
推奨はされないかもしれませんが、IDですし、引数で引き渡すよりいいかもしれません。

210306
FTP、サブフォルダへのアップロード

FTP作業で、SAKURAやMiniへのアップロード作業に取り組んでいます。
サーバー移転前はLaCoocanにアップしていた物です。
ターバー関連の定数を変更するだけではうまく行かず、個別にチェックが必要でした。

下のメモのトップページは一枚だけの作業でしたので、比較的簡単でした。処理済みです。
現在作業中のMiniにあるスマホ版の合併写真集の目次へ写真集の掲載枚数を入れる作業も、FTP作業を含めて、ほぼ終わりました。
この二つ、ファイルはルートに置いてあります。
まあ、ルートと言ってもサーバー側でサブフォルダを指定してからの作業ですので、一回だけフォルダ移動をする必要はあります。

現在の問題は、今後出てくるはずのサブフォルダへのアップロードの問題です。
ローカル、サーバー双方のサブフォルダを同時に移動しながらアップすると問題ないのでしょうが、面倒です。
この事に関して、昔調べた記憶がありました。
そこで探してみたら、自分のページのメモがヒットしました。

「FTPは、
ftpput "temp20/200624yo.htm"
ftpput "temp20/sp/sp200624yo.htm"
という形でどちらもputできます。
つまり、ディレクトリ移動せず、ルートからのパスを指定してやると動きます。」
という事です。
以前、調べて、試していました。

ということで、
事前に、ファイルの日付を調べて、上書きしても大丈夫か調べる事と、
アップロード後には、サーバー側の日付が新しくなっているか確認する、
という作業を省くつもりなら、目的のファイルをフルパスで扱えば、どのフォルダのファイルにも対応できるという事になります。

そこで、今回、FTPのルーチンを関数にしようと試しました。
今迄は、FTPの部分だけ別プログラムにして、exec等で呼び出す方式にしてあります。
これが、関数化できるなら、その部分をコピーしてしまえばどこでも使える事になります。
これがうまく行きません。

止むを得ず、サブルーチンで仕上げてあります。
ただまあ、そういう事なので、汎用性はあるだろうと思っています。



210302
FTP、月々の一枚
いつの間にか月を越していて、トップページの月々の一枚の写真を更新するのを忘れていました。
今日、慌ててプログラムを起動して、一枚を選んで作業を済ませました。

ここで、懸案だったFTPの問題があります。
今回は、元の通りで、LaCoocanにアップされました。
LaCoocanはまだ存在していますので、エラーにはなりません。
SAKURAにはFFFTPを使ってアップしました。

ただ、来月からはこうはいきません。
LaCoocanは今月で解約です。エラーになるはずです。
それまでに、FTPを変更するか、簡単なのは、FTPをしない様にする事です。

このプログラム、月々の一枚、に関してはFTPの変更は単純でした。
扱うのがトップページだけなので、サーバーのルート(実際はルートではなくその下のディレクトリをルートと見なしています。)にアップするだけです。
そういう事で、作り直しましたが、実際にこちらの希望通り動くかは、一か月後でないと分かりません。


210221
合併写真数の写真の枚数

合併写真集の掲載してある写真の枚数を表示する作業に、改めて取り掛かることにします。

この作業、210213から始めました。
しかしながら、作業中、写真のページを見直す際に、幾つかエラーに気付きました。

鳥名が取得出来ていないページがある事、撮影日が間違って表示される事、等です。
という事で、まず、そちらの対策を先にしました。

副産物で、この合併する作業で、収集もれがかなりの数ある事にも気付きました。
対策した結果、収集できた写真は、この合併写真集を作る作業の当初は6428枚だったものが、現在6672枚になっています。

以下、本題です。

このサイトの写真は、ほぼ全部が640x480ピクセルの写真で、サイズは50から100KB程度です。
これまで、サイズを気にする事は無いと思っていました。
が、今回、合併写真集を作り、少し気になりました。
一つのページに、その鳥種の写真を全部表示してあります。

私の様にスマホのデータ使用量に制限のある契約だと、これから開くページの容量がどのくらいなのかをいつも心配しています。
ここまで、1ページの掲載写真数は、通常の写真集のページは1枚、観察メモのページは3枚が基準です。サムネイルは除いた数字です。サムネイルのサイズは一枚10KBあるなしで、まあ気にしないでいいでしょう。

しかし、今回新設した合併写真集のページには、1枚だけのページもあれば、鳥種によっては100枚以上のページもあります。

例えばチョウゲンボウのページは、現在、丁度100枚の写真が掲載してあり、容量を計算したら5500KB程になっていました。5.5MBです。
これを180回表示させると1GB使用する事になります。
ま、実際には、同じ写真ならキャッシュとか使うのかもしれません。

現在、ローカルでサイト全体の容量を調べたら616MBでした。
まあ、全部見たとしても1GBにはなりませんが。

この合併写真のページには、ページを作った時に集計しますので、その枚数を表示してあります。
ただこれがページの中だと、写真が全部表示された後に分かる事になります。
あまり意味はありません。本来は開く前に表示しておきたい所です。
そういう事で、目次のページに、そのページに掲載している写真の枚数を表示する事にします。

さて、その具体的な作業です。
まあ、個々に数字は出しているし、合併写真集を作るプログラムを動かせば、いつでも再集計は出来ますので、極端な話、手書きで書き込んでいけば済む話ではあります。鳥種の数の分、314か所です。

これは面倒ですし、面白くありません。
そこで、当初は合併写真集を作るプログラムにサブルーチンを作って処理しようとしました。
現在は、そのルーチンだけ分離して、単独のプログラムで処理する事にしました。

一応、完成していますが、多少の問題点があります。
文字数が増える関係で横幅が広くなります。
表組ですので、バランスが悪いページも出てきました。
対策は、横幅を固定するか、文字のサイズを小さくするかでしょうが、一長一短です。
現在検討中です。

本来は、写真が追加された時に、この枚数も更新されるのが当然です。
面倒なので、そこまではまだ至っていません。


210221
合併写真集で日付が取得出来ない、他

下のメモの鳥名を探す作業中、ページを見直すこともあり、全くの別問題ですが、日付を正確に取得できない写真があることに気付きました。

特に古い写真は、ファイル名が今の形式になっていない物があります。
原則、ローマ字鳥名+6桁の日付+.jpgというファイル名である前提でプログラムしていますので、これ以外の形式だと日付を正しく取り出せません。

それでも、ファイル名のどこかに6桁の日付が入っていれば何とかなる所までは行きました。
最終的に、日付が間違っているもの6桁無いものが3枚見つかりました。
この3枚は、実際の日付を調べて直接挿入するようにしました。
付け焼刃もいい所です。
実際の日付はページに書き込んでありますので、もう一回ページを読み込んで調べるとスマートではあります。面倒なので後日の課題です。

他にも、観察メモの写真を取りこぼしているページが見つかりました。
これは単にページの行数を取り違えていたバグでした。
観察メモに沢山の写真を登録していると、後ろの方が把握できなくなっていました。
対処しました。副産物で、写真数が少し増えました。

この時点での写真数合計:6672枚
210122まで6800としていたトップページの数字に近付いてきましたかね。

計算に入っていない写真は、スライドショーに55枚あります。
その他には、
50音順目次を調べてみると、ページが337ページあります。
合併写真集のページ314との差の23は、鳥類ではない写真のページです。
今、この内、複数の写真があるページだけカウントしてみました。
アイガモ10、アナグマ9、イタチ9、イノシシ2、ウシ2、キツネ3、サル27,シカ10、ニホンカモシカ4、リス2、
計78になります。
先の集計結果にこの数を加算すると、丁度6800枚と言える数字になります。


210219
合併写真集の鳥名が不明
合併写真集のページに、鳥名が不明となっているページが7枚見つかりました。

薄々気付いていました。
以前から気になっていましたが、全体像が掴めなかったのです。
今回、TExchangeでチェックする方法に気付きました。
314ページを一括で検索が出来ます。
_haiirohireassisigi.htm
_kubiwakogamo.htm 
_ootidori.htm
_outyuu.htm
_sirotidori_sei.htm
_syubasikou.htm
_zyoubitaki_f.htm
の7ページのタイトル等が「不明」になっていました。
各ページに鳥名が3か所埋め込んであります。
本文、タイトル、Description、です。

プログラムのミスなのですが、具体的な原因が掴めていません。
一つには、ファイル名と鳥名が合わない時に発生しています。
このサイト、開設当初にはプログラム化について考えていませんでした。
ですので、ファイル名にかなりのブレがあります。
sirotidori_sei、これは多分シロチドリ成鳥という意味でしょう。
zyoubitaki_f、こちらはジョウビタキメスのつもりです。

プログラムでは、全部の鳥種について、
sirotidori、シロチドリ
zyoubitak、ジョウビタキ
というようなテーブルを作っています。
これでファイル名からカタカナの鳥名に変換する訳ですが、先のようなファイル名だと失敗します。

まあ、この問題を考慮して作り直すと、鳥名が不明というページは解消しました。
また、副産物として、合併写真集で収集する写真が増えることになりました。

ジョウビタキです。
先のバグ込みだと、ジョウビタキの写真は写真集にある5枚しか収集出来ていませんでした。
現在は、観察メモの写真も拾えていて、68枚に増えています。

このような問題がまだ残っているのかもしれません。
ジョウビタキを含んで再集計してみたら、ここまで6587枚だった写真数が、現在6650枚になりました。


210217
文字数の制限など

mesboxメッセージボックスが文字化けを起こします。
以前調べた事があり、32KBです。忘れていました。

私はプログラムを作る時、進行状況をボックスに表示させながら組み立てています。
これが、容量にすると結構なサイズになります。数百KBです。
文字化けです。

変数自体のサイズには実質制限が無いようで、表示がおかしくなるだけです。
そこで、最近では大きなサイズの変数はクリップボードに入れることにしました。
clipsetです。
こうしておいて、進行状況を調べたい時は、エディタを開いて貼り付けます。

以前、mesboxの制限を無くするツールがあり、使ってみました。
この時は、表示に時間がかかるのでやめた、というメモを残しています。

また、VSのC#にもtexBoxに同じ様な制限があります。
ただ、こちらはオプションで簡単に制限なしに出来ます。


210212
スマホ版野鳥紀の現状

スマホ版の野鳥紀を別のドメインで作ろうとしています。
目的は、何となくです。
この作業について、現状をまとめると、

まず、数年前に作ったページがあります。
PC版の写真を共有して、スマホ版と称して目次などを置いています。
これには、出来る限りPC版と同じものを作ろうとして、通常の目次と観察メモを置いています。
今回作った合併写真集の目次はありません。
現状では、合併写真集の目次はPC版の写真集総合目次に置いてあり、PCから見る様にしてあります。

次に、LaCoocanMiniにスマホ版だけを作りました。
ここには、観察メモがありません。
合併写真集はあります。

さらに、LaCoocanMiniと同じものをSAKURAの別ディレクトリ、別ドメインに置きました。
当然、観察メモなし、合併ありです。

MiniとSAKURAの別ドメインは、現在、disallowとしています。
SAKURAのPC版に開設した合併写真集は、数日前にnoindexなどを外しました。



210202
合併写真集、鳥名の重複分を除く、全角識別子

合併写真集の追加更新に関するプログラムのまとめです。

合併写真集を含んだ自動化のプログラムの修正の作業が終わりました。
私としては壮大なものになりました。4本のプログラムを連結しました。
(その後、1本を合併してあります。)

基本は観察メモの生成です。
観察メモを新しく作ると、新しい写真がありますので、合併写真集にも追加する事になります。
ここまで、別々には作ってあります、それぞれ動かせば、更新は出来ます。
後は、手動でFFFTPを使い、アップする段取りでした。

このままだと、一部を忘れたり、面倒だったりします。
そこで、全部をまとめました。

観察メモを作るプログラムから残りのプログラムを呼ぶ事にしました。
まず、サイトマップとRSSファイルの変換です。
中での変更が面倒だったので、そのまま、旧LaCoocan用のサイトマップが作られています。
これをSAKURA用にURLを変換します。これが一つ。
(今思うと、これはstrrep一発で出来るので、何も分離する必要はない事でした。後日改変済)

次に、本題の合併写真集のページを作り変えます。
本来、これも更新ですが、今更更新の方が面倒なので、全部の写真を改めて探して一つのページに収集します。万一、写真集の写真が入れ替わっていても対応できます。
テンプレートが作ってありますし、最初に収集する時に作ったプログラムをほぼそのまま使えます。
既存のファイルの挿入位置を探すより楽です。これが二つ目。

もう一つ、最後に全部をFTPです。
今回は、サーバーが2か所なので、その分面倒でした。
以前までの部分は、FTPでも事前にサーバーとローカルの日付を比較し、更新が必要か、
作業後には、ちゃんと日付が新しくなっているかなどチェックしています。
今回の追加部分にはそれをやりません。
面倒なのと、今までチェックしていて間違いはありませんでした。
アップ作業は、以前と同じことをしていますので、まあよかろうという事です。
時々、FFFTPでミラーリングを試しますので、間違いがあればその時、分かります。

ここまでメモして、今後必要な作業も見えてきました。
ただ、一応、これで今まで通り、写真さえ作れば、観察メモと、付随して合併写真集が完成します。

さて、この作業中に一つの課題がありました。
合併写真集に関しては、複数の写真ファイル名から、同名の鳥名(重複している鳥)を省く必要があります。

例えば、今回、ヒドリガモの写真3枚を追加しましたが、更新する合併写真集のページは一つです。
あるいは、ノスリ1枚とチョウゲンボウ2枚の観察メモの場合はノスリのページとチョウゲンボウのページを更新します。
つまり、配列もしくは文章から重複している項を省く必要がありました。

そこまで面倒なルーチンではありません。
repeat二重とif文を絡ませただけで、単純な物です。
ただ、今回、変数に全角文字を使って見ました。

最近では、ラベルにも変数にも全角日本語が使えます。使えるそうです。
この事は薄々知ってはいて、C#ではラベルに使っています。
サブルーチンを探す時、ラベル一覧を出します。
ラベルが日本語だと、この時、見晴らしがとても良くなります。探し出すのが簡単です。

今迄は半角でラベルを作って、実際のルーチンの所にコメント文で説明を入れていました。
今では極端な話、そのコメント文をラベルにしています。
HSPでも最近追加するラベルは全角です。

さて、今回は一歩進んで変数も全部全角日本語にして見ました。
いえ、元々半角で作っていた変数を全部、全角に置き換えて見ました。

今迄は、変数名とかラベルとかに、合っているのかよく分からない英語、スペルも正しいか不安な英語、仕方が無いのでローマ字と、使っています。
これでは人様に見せるのには強い抵抗があります。
これが、全角日本語にすると、そういった問題は解消します。

という事で、作ったものが下のボックスです。
全角変数は、慣れないせいもあるのでしょうか、とても見づらいスクリプトになります。
このような事は今後はやらないと思います。まあ、面白半分です。
折角なので、簡単な解説も含めておきます。


210131
月々の一枚更新

月末になり、定例の月々の一枚を更新しました。
今回はメジロでした。

今回から、変更したことがあります。
月々の一枚の写真を観察メモから取った事です。
今回の分は1月26日付けの観察メモに入れていた写真です。

これまでは、写真集のページの写真が選定の対象でした。
ただ、最近では写真集に入れる写真がほとんどありません。
毎月、苦労して写真集の写真を無理やり更新していました。

今月は、写真集はとうとう一枚も更新なしでした。
観察メモの方は現在でも結構な数があります。

そこで、かなり以前にプログラムを変更して観察メモの写真も取り込めるようにしていました。
しかしながら、観察メモから取り出したのは今回が初めてです。
年も改まったので、いい区切りと思い、実行しました。
今後はやはり、観察メモから取り込むことになるはずです。

210130
合併写真集

合併写真集の自動化が一応完成しました。
と言いますか、最低限の機能で動きます。

合併写真のページは、SAKURAのPC版とLaCoocanミニ(スマホ版)の2か所に作ってあります。
とてもややこしい事をしています。

写真自体は2か所とも同じです。バックアップのつもりもあります。
写真を掲載しているページはバナーが違うだけです。
PC版のページはマウスで操作、スマホ版はタップで操作でしょうから大き目のバナーにしています。
当然、それぞれの目次の形式も違います。

目次はスマホ版には分類順と五十音順を作りました。
SAKURAのPC版には当初分類順しか作っていませんでしたが、今日、五十音順も作りました。
目次の場合、ほぼ手作業です。置換のツールが役立ちます。
作成途中という事もあり、複製に近いという事もあるので、いずれも、noindex,nofollow、Disallowです。

他に、SAKURAには数年前に作ったスマホ版があります。
今のところ、SAKURAスマホ版には合併のページへの目次は作っていません。
これもどうするか、考えどころです。

さて、自動化プログラムの方は、
通常のFTPで観察メモの写真はアップされます。
合併用の目次は一回アップしておけば、後は必要ありません。
ただ、新種の鳥が出た時には当然目次が増えますので、手書きで更新する事になります。

残っている作業は、
SAKURAでは合併写真集のページが更新されてもアップされません。古いままです。
210201サクラ側は合併写真のページもアップするようにしました。
今日、観察メモにヒドリガモをアップしました。合併写真のページも更新されている事を確認しました。

ミニ側は、やはり更新した際の合併写真集のページと写真のファイルがアップされないままになります。ローカルは同期されています。FTPだけが未完です。
ただ、新しい写真が反映されないだけで、404エラーにはなりません。
210202Mini側もFTPする様にしました。
今回のヒドリガモで試して、正しく転送されることは確認できました。
ただ、一連の自動実行は実際に実施してみないと分かりません。

ローカルのファイルはプログラムで更新されます。
写真やページのファイルもSAKURAとミニのフォルダで更新、コピーされます。
ですので、現在はFFFTPでそれぞれのサーバーにミラーリングする事で作業終了です。

210130
合併写真集では分類順の項目分しかページを作っていません。
五十音順目次には鳥類ではない項目も含まれています。
つまり、合併ページ用の五十音順の目次を作るには、この分の項目を削除する必要があります。
SAKURA版の五十音順の目次を作る際、削除した項目を計算しました。
23個です。五十音順目次には337個の項目があります。

ここで気付きました。
何もいちいち数えずとも、それぞれの項目数を比較すると簡単に分かる事でした。
Chromeのソースで適当な単語を指定して検索するといいのです。
検算にはなります。
今、この方法で試すと、合併のページの目次は全部314、通常の五十音順の目次の項目数も、やはり337でした。



210128
合併写真集の五十音順目次

合併した写真集のページはほぼ出来上がっています。
これを作るプログラムも動きます。
プログラムもページも現状で十分です。ただ、目次が不十分です。
現在、合併写真のページの目次は分類順の目次だけで、五十音順の目次を作っていません。
まあ、スマートなのですが、いざページを探すとき、分類順からは探しづらいです。

そこで、五十音順の目次に挑戦しました。
目次だけを作ればいいのです。
ただ、目次の数がとても多い、あいうえお順に五十音の分だけあります。

プログラム化してもいいのでしょうが、目次を作るだけです、2度と使えません。
面倒なので、手書きで作りました。
仏の写真集の目次がありますので、これを手書きと、一部TExchangeを使ってやりました。
Mini版の方だけです。何とか終わりました。

210127
ノートパッドに改行が残る
note2arrayでノートパッドから配列へ変換できる事を知りました。とても便利です。
今まではこれを知らずに、repeatとnotegetで配列に入れていました。

ところが、dirlistが失敗します。訳が分からず悩みました。

mmにフォルダのリストを入れてあります。
notesel mm
note2array ma,mm
dirlist G:/+ma(0)+"/*.jpg"

このままだと失敗します。
note2arrayの次に、
strrep ma(0),"\n",""
これを入れないといけません。

ノートパッドの要素には改行が含まれている、という事の様です。
気にしないでいい事も多い様に思います。
今までnotegetで取り込んだ時は問題なかったような。
面倒なので試してはいませんが。


210127
合併写真のページ

合併写真のページを作るプログラムがほぼ完成しました。

具体的には、一つの鳥種に関して、写真集と観察メモにある写真を全部収集して、
新しいページにその写真のパスを埋め込んでいくだけです。

現在、ページがSAKURAとLaCoocanMiniに作ってあります。
それぞれバナー類が違うだけで、ほぼ同じものです。
これ用の変換ルーチンも作りました。
まず、SAKURA用にページを作ります。
作ったものを、Mini用に変換します。バナーを入れ換えるだけです。

写真集の方はめったに変化はないですが、観察メモは写真が逐次追加されます。
この為、同期するにはこのプログラムを逐次使わないといけません。

副産物で、このサイトの写真数をカウント出来ます。
210126の段階で、6554枚でした。

なお、実際には、収集していない写真もあります。
基準が、写真集の分類順のページに掲載している314種からスタートしています。
分類順に掲載出来なかったものや、独立したページもあります。
実数はもう少し増えるはずです。

Mini版のリンク切れがあるので、調べてみたら、Miniのローカルフォルダに新しい観察メモの写真ファイルをコピーしていなかった。
何か、方法を考えないといけない。
変換作業後にフォルダ数を調べて、足りなければコピーする様にした。




210126
noindex,nofollow、Disallow

現在作業中の合併写真のページは既にアップロードしています。
しかも、2か所、SAKURAとLaCoocanMiniです。

ただ、作成したばかりで、今後大小の改変をするかも知れません。
そこで、念の為、noindex,nofollow、Disallowを付けています。
この事を忘れなければいいのですが。

210130
SAKURAに五十音順の目次も作ろうとしています。
これにもnoindex,nofollowを入れています。

220817
noindexが残っていました。今から作業です。

210125
鳥名とファイル名

合併写真のページを作る作業をしています。
写真集の写真と観察メモの写真を合併したページを作ることです。

一応、プロトタイプが出来上がって、アップしています。
プロトタイプと言っても、これで充分だろうと思っていました。

ただ、特に観察メモは日々増えていきます。
これを追加するプログラムが必要だと思い、作りました。
これも、ほぼ出来上がりました。

ただ、これを走らせて見ると、ほころびがいくつも露呈してしまいました。
プログラムのバグはもちろん、サイトのページ自体の間違いがありました。
写真集のページの鳥名とそのファイル名は基本一致させている前提です。
これの一致していないものがあることに気付きました。

プログラムでは、まず、ファイル名に使うローマ字とタイトルなどに使うカタカナの鳥名を対にする為に一覧表を作っています。ただのテキストファイルです。

通常、この一覧表をプログラムの初期の段階で読み込んで使います。
この一覧表に登録していないものがあります。
まあ、これは新種が出たら、その都度追加する前提でやっていましたので、エラーやダイアログが出た所で追加していました。
しかし、今回、この一覧表を見直すことになって、タイプミスに気付きました。
正しいローマ字、カタカナになっていない名前がありす。
この分は、一覧表を修正追加する事で済みました。

困った事に、ページのファイル名が違うものがあります。
オオヒシクイです。本来は、oohisikui.htmとすべきものをhisikui.htmとしていました。
このままだと、先の一覧表を参照すると、違う鳥名になります。

これには古い記憶があります。
ヒシクイとしてアップしたら、詳しい人から注意を受けて、オオヒシクイと訂正しました。
ただ、昔はプログラムの事など念頭になく、ページ数も少ない時でした。
訂正したのは目次とページのタイトルだけに終わっていて、ファイル名を変えていませんでした。
見た目、ファイル名等は問題にはなりません。表向きは解決しています。

ただ、現在、この末端のページのファイル名を変えたら、リンクの修正が必要です。これが、どこにいくつあるのか見当もつきません。

もう一つ、目次やページに書いている鳥名を間違えている物がある事に気付きました。
こちらは単なる制作時の書き間違いでしょう。

プログラムの途中でダイアログで気付かされたものです。
トモエガモです。ページやタイトルは大丈夫でしたが、目次がトモエエガモになっています。
多分、開びゃく以来のミスでしょう。

これが、分類順の目次全てで間違っていました。
10ページ近くあります。
多分、制作過程で順次コピーして作っていったものでしょう。

解決は、そう面倒ではありませんでした。
TExchangeが使えます。
テキストファイルの検索置換が出来るツールです。
これで、フォルダ全部のファイルをチェックさせます。
すると、変更箇所がリストされ、変換も一括で完了します。

まだあります。
オオタカのページがootaka_you.htmとなっていました。多分、オオタカ幼鳥の意味でしょう。
これが、ファイル名になったいるのが間違いなのです。
この為、オオタカの観察メモの写真が取り込めていませんでした。取り込めていたのは写真集の5枚だけでした。

ここを取り込めるようにすると、59枚になります。
同じミスがカササギにもありました。これは+6枚です。

この対策は、
先の一覧表に、ootaka_you,オオタカ、という項を追加しました。
ただ、他の既存のプログラムにどう影響するか心配はしています。

ここで、全体を制作しなおしてみました。結果は、
合計:6517、失敗:10、重複:177、です。
これで、トップページの写真数と整合する事になりました。

210107
写真集と観察メモの写真を合併したページを作る

サイト移転やそれに関する修正など、落ち着いてきた所で、長年の懸案に取り掛かろうと思います。
サーバーに余裕がある事も動機の一つです。

写真を一つのページにまとめようと思います。
現在、このサイトの写真、つまり野鳥の写真は、一つの鳥種が2か所のグループに分散して収納表示されています。
一つは、写真集のページ、もう一つは観察メモのページです。

写真集の方は、野鳥の写真集総合目次からリンクを進みます。
こちらの方は、50音順、分類順等何種類もの目次が作ってあります。

観察メモは、日記みたいなもので、日付順に並べた一覧表形式の目次と、鳥種別の五十音順に並べた目次(観察野鳥鳥名順目次)があります。

中には重複しているものもありますが、ほとんどは別の写真です。
日々撮影した写真を観察メモに作り、その中でほどほどのものを写真集に上げていました。
写真集の写真の枚数は一種当たり原則5枚と決めていますので、最近では大半が観察メモのページだけに留まっています。

これを統一したページを作ろうと思います。
一つの鳥種に関して、このサイトに収録してある全部の写真が見られるページを作りたい、のです。

色々考えました。
当初考えていた事は、写真集のページの末尾に観察メモへのリンクを作ろうか、という事でした。
しかし、これはプログラムの変更が面倒で実現しません。
写真集のページは、追加、入れ換え、並び換えなど何種類もの操作があります。これを全部変更する必要が出てきそうです。

そこで、写真集のページとは独立したページを作っていきます。
一番簡単なのは、写真集の写真は、5枚前後ですので、全部表示し、その下に、観察メモのページへのリンクを作っていくことです。
この方式だと、作業は比較的簡単です。
観察メモの分は、観察メモの目次にあるリンクをコピーするだけですので。
ただ、これだと、見る場合の操作性がよくありません。現在の、別々のページになっているのと大差ない様に思います。

そこで、もう一つは、写真をまとめて表示するページの形です。
一つの鳥種の写真数は、多いものは100枚を超えるはずです。
この場合に心配なのは表示に要する時間です。

そこで、まず、チョウゲンボウのページを作ってみました。写真が丁度100枚あります。
試してみると、100枚1ページでも表示に問題はありません。
写真のサイズが640x480で、今では小さい方の部類に入ります。そのおかげでしょう。
結局、これで仕上げました。
ページ分けなどの工夫もいりません。プログラムも楽でした。

既に、プロトタイプが作ってあって、写真集の総合目次にリンクを作ってあります。

副次的な成果がありました。
プロクラムの中に、総写真数等をカウントさせてみました。
他にも、、収集に失敗したもの、重複しているものもカウントさせます。

結果は、
合計:6426、失敗:21、重複:171(210122)
でした。

合計(以下の二つを除いた写真数):6426
失敗(日付を正確に取得できず、収集できなかった写真数):21、
重複(写真集にあった写真が観察メモにも使われているもの:171

6426枚となりました。
これまで、トップページには6800枚としていました。
(枚数には、いずれもサムネイル分は入れていません。)

この差に関しては、
まず、今回のプログラムで収集できなかったファイルがあるはずです。
ファイル名に鳥名と日付が規定通り入っていないものは収集から外しました。
最近はきっちり、鳥名+日付という形で作っています。ただ古いファイルにはそうでもない物があります。
これは処理が面倒なので、そのまま残しました。

先にカウントされた失敗分を修正して行きます。
実際には、失敗分は数字の他に、個々のファイル名もリストしています。
そこで、気付きました。
特に古い年次の写真には、ファイル名が正しくないものがあります。
と、言いますか、一枚の写真にオオソリハシシギとオバシギというタイトルで2種写っているものがあります。
このファイル名をoosorihasinado0419と付けています。
目次には双方の鳥種で登録されているのですが、このままだとどちらの鳥種でも収集されません。
普通はこの事に気付きません。一つのページには普通に何種類かの鳥種を表示しています。
ですので、目的の鳥種名でない時は収集しないようにしています。
このファイルは、日付が規定通り6桁で入っていなかったので気付けました。日付が正しければスルーしている所です。

このケースを収集する事は事実上出来ません。
目的の鳥種名になっていない、それでは別の鳥種か探そうとしたら、現在の登録数314回のループが必要です。
冗長になりすぎます。ですので諦めています。

さて、この失敗分21の内20は手書きで修正しました。
正しい鳥種名と規定の6桁の日付にして、作業をし直しました。
結果、
合計:6447、失敗:1、重複:172
となりました。
残りの一件は、鳥種の同定が曖昧だったので、そのまま残すことにします。
この間の作業による合計が微妙に違うのは愛嬌という事で済ませます。

合計枚数の差に関しては、その他、
はっきりカウント対象外の写真と分かっているものが、
スライドショー用の写真が55枚、
50音中のページにはあって、分類順のページにはない項目、
例えば、ウシ、これは分類順には載せていません。ただ、写真にはウシとアマサギが写っていますので、カウントしてもいいはずです。
それに、先の説明の通り、どの鳥種にも合致せず、収集できなかったものもありそうです。
210130
五十音順の合併目次を作ろうとして、やむなく分類順目次に入れなかった項目を計算しました。
合併写真集のページが合併順の目次の分しか作っていないからです。
この過程で、分類順に含まれていない項目数が分かりました。
23個です。五十音順目次には337個の項目があります。

210122、
徹底して探せば、残り300枚ぐらいはあるはずと思いますが、この際、トップページを6500枚に書き変えました。ここまで6800枚としていたものです。
野鳥写真数としてあり、誰か数えるかもしれません。
何しろ、今回生成した鳥種別のページに、そのページの掲載枚数を表示しましたので。
それにしても、6500/314=20で、一種当たり平均20枚となります。大丈夫かな。

どこかで紹介したと思いますが、実際にローカルの写真をカウントするプログラムを作っています。
これを使うと、今、7235枚となります。
この分の写真はアップしてあります。
未使用のファイルは計算に入れてあります。
未使用分は、HPBのビジュアルサイトで計算できます。577件になりました。
このページみたいな、野鳥に関しないページに挿入している写真などは計算しているはずです。

余談になりますが、トップページにある鳥種数の簡単な確認方法に気付きました。
Chromeで、ページのソースを表示します。
写真の行に必ずあって、他の行に無い文字列を検索するといいです。
例えば、width="160" height="120"で検索をすると、ヒットする合計が出てきます。
Edgeでもほぼ同じです。IEでも検索は出来ますが、数字は出てきません。

210125
上のメモにあるように、プログラムのバグ修正で、オオタカなどかなりの写真を追加というか発見できました。結果、
合計:6517、失敗:10、重複:177

210126
合計:6554、失敗:1
失敗1は、
日付を処理できなかったファイル
アカハラ:temp12/120424_kibitaki/akaharakana120424.jpg
これは、識別に不安があるので、そのまま残す。カウントしない。

210213集計
合計 既存 6581

210106
旧年分の観察メモの追加
昨年末、201231撮影のノスリの写真を観察メモにアップしました。
プログラムでは旧年分の観察メモも対象にしてあり、ちゃんと旧年分の観察メモ一覧表に追加するようにしてあります。あるはずでした。
実際に昨年の年初も同じケースがあり、年初に年末分のページを正しく追加できています。

今日、201231付けの観察メモを作りました。
これが思い通りに仕上がっていません。
スマホ版のページがPC版の観察メモへのリンクになっています。
間違えているのは2か所、スマホ版のトップページとスマホ版の一覧表のリンクです。

スクリプトを調べて行くと、間違いに気付きました。
その通りに作ってあるのです。

まず、原因は、元々観察メモはスマホ版を作っていませんでした。
スマホ版からもPC版の観察メモを呼び出していたのです。
スマホ版の観察メモを作ったのが、昨年20年の6月でした。
それでも一応、20年分は遡ってスマホ版を作った様です。
19年分は全部PC版と共通です。こちらはそのまま残してあります。

つまり、この分を全く対応していなかった、という訳です。
その通り、PC版へのリンクになっていました。

今回の分は、手書きで修正しました。
一応、スマホ版のメモは生成されており、リンクが2か所間違っているだけでした。

スクリプトの修正も、手の届かない問題ではないと思いますが、手を付けていません。
来年、発生しないように気を付ける、もしくは手書きで修正する、事にしています。


210106
Rekisa

下のメモの作業中など、Rekisaに重宝します。
WinXp時代のアプリです。いまでもWin10で問題なく動きます。

ページを生成した時、期待通りの結果になっているのか心配します。
単にページを表示してみただけでは安心できません。
HTMLでは、多少のゴミがあっても表向きは動いている場合があるからです。

この事を確認するのにRekisaを重宝しています。
変換前のページと出来上がったページとを比較します。
これで、安心できます。


210105
トップページ中央の写真
トップページの中央にサムネイル写真を表示させています。
元々、乾坤一擲、という写真を使っていて、入れ換えは数年に一回するかどうかという状態でした。

現在は、時節柄という事で、アマビエのページを作り、その姿を切り抜いたものを表示しています。

そこで、ふと思いつきました。この写真も毎回入れ換えたらどうだろう、という事です。
新しく追加した観察メモのページの写真のサムネイルを表示し、そのページへのリンクを張ります。
観察メモ等の更新状況は、隣にある「最近の更新状況」欄にリストされています。こちらはテキストです。
その写真のサムネイルを表示します。つまり、観察メモが追加されるごとに写真が入れ替わる訳です。

プログラムは修正しました。
現在のアマビエを、幕の内の間、もう何日か表示させますので、そのうち更新します。

また、写真によっては、そんなに写りはよくない、というものもあります。
そんな場合は、この部分だけ変更しない、という選択もできるようにしました。



201222
観察メモのページ生成の修正

サイト移転に関して、観察メモのページの生成プログラムの修正が、ようやく終わりました。
細かい修正は必要とは思いますが、今まで通り、写真さえ準備すると、FTPでアップするまでの作業を自動化しています。
移転前は、ページ生成と関連のページの更新プログラムと、その追加更新されたページをFTPするプログラムの二つでやっていました。

今回は、その二つの間に、マップとRSSファイルのURL部分を置換するプログラムを入れました。
いずれも、ページ生成更新のプログラムから呼び出して実行しますので、写真さえ出来ていれば、サイトが更新されます。
(201225の観察メモの追加作業で全体の動作を確認、完了)

おかげで、写真集その他のページの更新作業にも目途が付きました。
ページ生成はそのままでいいはずです。
生成したマップファイルなどは、今のURL置換のプログラムがそのまま使えます。
単独でも使える様に、起動の際、コマンドラインオプションが無ければ、ボタンで操作するようにしています。

FTPは多分、サーバー関連の変数を書き変えるだけで動くと思います。
現在では、観察メモ以外は月に一回あるかどうかです。
当分は、SAKURA用のマップとRSSを変換して、FFFTPでアップするつもりです。

2101106
元々あったバグだと思います。全年分の観察メモに欠陥がありました。
丁度。2012131の観察メモを作ったのですが、スマホ版のリンクに手違いが出ていました。
リンク先が、PC版になっていました。
観察メモ一覧とスマホ版トップページのリンクです。
手書きで処理しました。
プログラムの修正はこれからです。と言いますか、全年分を作らなければ出ないものです。



201218
サブフォルダ、ドメイン、サブドメイン

LaCoocan用のFTPプログラムがSAKURAで使えるか、という問題です。
サーバーを変え、ここまでは、新SAKURA用、旧LaCoocan用二つのフォルダを作っていました。
半自動化のプログラムがLaCoocan用のフォルダでないと動きません。
更に、手を加える必要のあるファイルがあります。
その作業を、旧フォルダで済ませて、新フォルダにコピーしてFTPでアップしていました。

これを統一する、と言いますか、LaCoocan用フォルダから、そのままSAKURAのサーバーへFTPでアップロードする様にしました。
残った作業はFTP部分のプログラムです。今はFFFTPでアップしています。

FTP作業では、古いファイルでサーバー上の新しいファイルを上書しないようにします。
FTPではこの点、2度目のテストが効かないのです。
この事に関し、SAKURAではサブフォルダを使っていますので、動作試験は楽な事に気付きました。
用語がよく分かりませんが、サブフォルダにindex.htm以下を置いて、そこをルートとして扱います。

そこで、サブフォルダです。
サブドメインは二つしか使えませんが、フォルダを作るだけなら自由です。
サブフォルダを別に作っておけば、本来のフォルダに影響を与えずに試験が出来ます。
極端な話、全く同じようにファイルをアップしておけば、同じサイトが出来上がります。
そこまではしませんが、動作試験に関連するファイルを置いておくだけです。
古いファイルをアップしておいて、新しいファイルで上書するという試験がいくつでも出来ます。
プログラムでは、ホスト側の初期フォルダを変更するだけでいいのです。

これを何度か試してみて、プログラムの中身は変更なしで使える事に気付きました。
フォルダの構造は以前と変わらないのだから、そのはずです。

201215
ローカルフォルダ、FTP、文字化け

半自動化プログラムも、サーバー移転に関して、残った課題はFTPです。現在は、SAKURAの分はFFFTPでアップしています。
このFTP作業も、HSPでプログラムします。今まではしていました。

そのSAKURA用のFTPのプログラムで、若干ですが困った事があります。
サーバーにあるファイルのリストを取ると、日本語名のファイルが文字化けするのです。
プログラムは、LaCoocanで使っていたものをそっくり転用しています。
細かい所はこれからですが、ホスト名等を変えただけで、後は何も変えていません。
LaCoocanでは、これが正しく表示されます。
ところが、SAKURAでは文字化けするのです。
日本語名のファイルはこの間の試験用に作っただけで、数個です。実際に使ってもいません。
しかも、表示だけの事で、動作には関係ありません、

調べてみると、どうやら、サーバーでは日本語はいけないみたいです。
とは言え、SAKURAのファイルマネージャーでは文字化けはしていません。赤色で非対応な名前のファイルと注釈、警告でしょう、が出ています。
FFFTPでは何もなく、正しく表示されます。
やり方次第では、文字化けは防げるという事ですし、LaCoocanでは問題ないし、未練は残ります。
まあ、当面日本語は使わないとして、後日の課題です。


201213
dirlist、改行

dirlistで苦労しました。
dirlistでファイル名を調べ、そのテキストファイルを読み込む、というスクリプトを作りました。
これがうまく行きません。
ファイルが無いというエラーになります。
原因は、改行でした。
dirlistで取ったファイル名には改行マークが付いているらしく、そのままnoteloadするとファイルが無いと言われます。
strrepで改行を取り除いてから実行します。


201205
サイト移転に伴うプログラムの追加
今日、実際に観察メモの追加作業をやりました。
一応、手順通りに終わりました。

まず、今までのLaCoocan用のプログラムでLaCoocan用のフォルダに各ファイルを生成します。
ただし、ここではFTPは実行しません。現在は実行しても問題はないのですが、LaCoocanを廃止した後はエラーになります。

そこで、新しく、マップファイルとRSSファイルの変換プログラムを作りました。
これで、SAKURA用のファイルにします。
作業は単純で、URLをstrrepで置換し、SAKURA用のフォルダに保存するだけのものです。
毎回上書きされますので、別名でバックアップも作ります。

こうしておくと、当分、変換が正しく出来ているか検査が出来ます。
テキストファイルを比較するツールがあります。
それを使って、この場合、新しいファイルの項目が追加されている事と、
その他は同じ内容ある事を確認します。

ここ、当初は、ファイル名を変えて生成し、変換が正しいことを確認してファイル名を変更していました。
現在、動作は確認できましたので、同じ名前で生成しています、

残りのファイル、今回の観察メモ用に生成、更新したファイルは、LaCoocan用のフォルダにあります。
これを、LaCoocan用からSAKURA用のローカルフォルダにミラーリングします。
ミラーリングには、バックアップ用のツールを使います。
この時、先に変換したマップとRSSファイルはコピーされません。
先に変換して、名前を戻したファイルの方が新しいからです。
なにやら、綱渡りのような気もしますが、大丈夫です。
万一、マップファイルもコピーしてしまっても、先の変換用のプロクラムを使えば済みます。
ただ、この場合には、別名でバックアップしたものが使えません。URL部分がLaCoocan用のままです。

これで、SAKURA用のファイルがそろいます。
最後に、SAKURAのサーバーにFTPして終わりです。

これで何回か試して、問題なければ、直接LaCoocan用のフォルダからSAKURAのサーバーにFTPする用に出来そうですが、それは出来ません。
マップファイルをSAKURAのURLにしておくと、観察メモ生成用のプログラムが動きませんので。

201203
サイト移転に伴う作業

この項、変更有り。
半自動化しているプログラムは、原則すべて書き換えないといけません。

しかしながら、ここに来て、簡単な方法に気付きました。
書き換えるのは、ローカルフォルダに関する部分とURLに関する部分です。
こういう事態になるとは考えもせず、絶対アドレスで組んであります。

ローカルフォルダに関する部分は、フォルダを変えなければ、何もする必要が無くなります。
URLが入っているのは、マップファイルとRSSファイルだけです。

そこで、差し当たっての対策で、
普通に、今までの半自動化でファイルを追加更新します。
その後、マップとRSSを改めて読み込んで一括置換します。
strrepが使えます。
置換したマップとRSSのファイルは別名で保存します。

これでいいはずで、元のプログラムはそのまま通用します。
URLを置換する部分だけを別にサブルーチンにするか、別プログラムにしてもいいはずです。
関数化するのが良いのでしょうね。関数はよく分からないので、多分サブルーチンになると思います。

これまで、FTPまで自動化していました。
旧サーバーへはそのままFTPしても問題ありません。差し当たってはです。
しかし、いずれ、旧サーバーは廃止します。
幸い、FTPするかどうかは選択できるようにしていました。
このままでもいいし、そのうち、FTPせずに終了するようにするといいはずです。

出来上がったファイル群を新サーバー用のフォルダにコピーします。
ここでは、バックアップ用のツールを使います。ミラーリングやコピー除外が出来るものです。
そこで、旧サーバー用のマップとRSSファイルはコピー除外します。
こうすると、ファイル名を変えたマップとRSSがコピーされます。

コピー先で、ファイル名を元に戻して、FTPします。
ここのFTPはFFFTPを使います。

最終的には、旧サーバーを廃止した後の段取りを考えないといけません。
旧サーバーは無いものとして考えればいい訳です。

現在の作業の大半は、観察メモを追加する事です。
観察メモに関しては、ここまでの形で作業して、うまく行きました。

201204
旧サーバーへのFTPをしない事にします。
元のプログラムをいじって、問題のマップとRSSファイルは別名で保存します。
そのファイルを、別のプログラムかサブルーチンで読み込んで、新URLに一括変換して、元々のファイル名で保存します。
これで、旧サーバー用のローカルフォルダから直接新サーバーへFTP出来ます。


200709
同じフォルダが、mkdirで、と思ったら。
HSPのmkdirで新しいフォルダを作ります。
一応、作る前に同名のフォルダがないか調べるのですが、通過してしまいました。
念の為に結果を見てみたら、同じ名前のフォルダが二つできています。
そこで、慌てて、元のフォルダにファイルを移し、新しく良く作った方を削除しました。

ゴミ箱をよく見たら、スペルミスしていました。
同名ではありませんでした。


200630
forループ、観察メモ、サイトマップ

観察メモのページの生成作業に関して、多少の改良をしました。

この観察メモの追加作業は、現在、具体的には、
2個の新規のページを作り、
8個の関連するページとファイルを更新する、という作業をプログラムで実行しています。

実行前に、ページに使う数枚の写真を準備し、既定のフォルダに保存しておきます。
後は、この専用のプログラムを動かすと、先の2個と8個のファイルを生成、更新し、FTPでアップトードまでやらせています。

この内の一つが、サイトマップファイルの更新作業です。
これに関して懸案がありまして、この更新作業に、51秒程かかっていました。
他のファイルは、ほぼ一瞬で終わります。

サイトマップファイルとは、
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

<url>
<loc>http://ooo.d.dooo.jp/index.htm</loc>
<lastmod>2020-06-30</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
・・・

といったものです。
もう忘れましたが、バージョンや形式がいくつかあって、恥ずかしながら、簡単な方を選んだ様に思います。

つい少し前、これとは関係ない作業でしたが、
HSPでもループを減らす工夫をすると、作業時間の短縮になる事に改めて気付きました。
(ここまで、スクリプトの分かり易さ重点だったのです。)
そこで、このプログラムに関しても見直してみることにしました。

まず、現状では、サイトマップファイルの更新の際に、ループを
重複の検査、
観察メモのページが登録してあるブロックが始まる位置の特定、
そのブロック内での具体的な追加位置の特定、と、
三つのループを使っていました。

何とかなりそうな気がしてきます。
これを、改良して、一つにまとめる事にしました。
ついでに、ループをrepeatからforに変えます。
これも別の作業で気が付いた事でしたが、forだと、例えば7行おきに読み込む、という場合にとても便利です。

現在、サイトマップファイルは30131行になっています。
ここまでは、先のループの二つでは、全部の行を読み込んで調べていました。

サイトマップファイルは、各ページ毎に登録しますが、一ページの分が全部7行のブロックです。
つまり、7行おきに調べると、事が済むことに気付きました。

改良後は、forのループで、
重複の検査(今回のファイルが既に登録されているものでないか)
一個のページに関するブロックが、ちゃんと7行おきに並んでいるか。
観察メモページは、まとめて日付順に並べてありますので、観察メモのブロックが始まる位置を特定出来ます。
ここまでの作業を一つのループでまとめて調べることにしました。

最後に観察メモのブロックの中の、どの位置に追加するか特定し、実際に新しいブロックを追加します。
この作業だけは別のループにしました。
これは、普通には、一回かそこらの検査で終わります。普通は一番新しいファイルだからです。

こうして、作業時間を再度測定したら、3.3秒で終了しました。33秒ではなく3秒と少しです。

なお、サイトマップファイルの行数から、現在登録しているページ数が分かる事に気付きました。
行数から、ヘッダ、フッタ部分の3行を引いて、7で割ります。
(30131-3)/3=4304ページとなります。



200629
a+=1、=の省略

HSPのスクリプトを見直していました。
途中のスクリプトに変な物を見つけました。
見つけた物と同じではないのですが、こういう物です。
if a>0:b+7、です。

b+7の所です。エラーになっていません。
b=b+7、と書こうとしていた様子です。

調べてみたら、HSPではこのような時、=を省略できるそうです。
あまり、拡張性はなさそうとの事。
b+7の場合、b+=7と同じで、bに結果が入る、という事です。



200625
リンクエラー、HPB

HPBのビジュアルサイトビューでリンク切れをチェックできます。
ただ、全4000ページ以上が対象なので、結構な時間がかかります。
結構な時間(10分ぐらいか)待って、結果を見ると、10数個のリンク切れがあると出ています。
これを調べても分かりません。
個別に、ツールメニューのURLエディタで調べても異常はありません。
リンク切れをチェックしてくれるサイトもあります。ここで調べても出てきません。
誤動作なのでしょうね。

このサイトビューを使うと、HPBを終了してもタスクが残る時があります。
そうなると、HPBを再度起動しようとしても、反応しません。立ち上がりません。
タスクマネージャーを見ると、ゴースらしきプロセスが残っています。
どうにも、無理があるようです。

200625
スマホ版観察メモ
とても自慢できる物ではないのですが、スマホ版と称するページも作ってあります。
写真集と、観察メモのページです。
スマホ版を作るに当たり、特に知識はありませんでした。今でも同じです。
小さい画面で表示できるように、リンク類を大きくしたらいいのだろうという考えだけで作ってあります。

スマホ版と言っても写真はPC版と共通です。ページの体裁とバナーだけを変えてあります。
スマホ版の観察メモは2018年から始めましたので、まだ3年目です。
それも、観察メモ一覧表を作っただけで、ここまで、実際のメモのページはPC版へ飛ぶようにしてありました。

今回、それを別々のページにしました。
と言っても、やはり、バナーを大きく単純にしただけです。
まあ、スマホの画面で見ても、なんとか操作できるだろうという事です。

しかも、独立して作るのではなく、普通にPC版のページを作った後、そのファイルをコピーして編集します。
編集の内容は、
バナーの部分をスマホ用のものに入れ換え、
表示する写真はPC版のページと共用ですので、リンク先(?参照先)を書き換えます。
ついでにMETA name="viewport"を追加しようと試してみましたが、これが無い方が良いように思います。
観察メモのページに関してはこれだけで、スマホ版のページ専用のフォルダに名前を変えて保存します。

後は、関連するページのリンクです。
スマホ版の観察メモ一覧表とトップページにリンクがありましたので、そこを書き換えます。
今はHSPに、strrepというコマンドがあって、作業が簡単です。
strrep "書き換えるテキスト","書き換え対象","書き換え内容"、
とすると、文章の特定の部分だけを入れ換えることが出来ます。
これを使ってリンクの文字列を作り直します。

昨日のページの分から独立分離させてあります。
もっとも、この分は、手書きで修正しました。
改変したプログラムが使えるのは、明日以降に作る分からです。
多分、です。未だ実際には動かしていませんので。

次に、古いページの処理があります。
既に今年だけでも70枚ほどのページがPC版と共通という形で作ってあります。
年度の途中から変更するのも、情けないので、そのうち、一括変換するプログラムを作るか、今持っている置換のアプリで作業しようと思っています。

今年分のページは全部変換しました。
一括変換のプログラムでは対応できませんでした。変換してはいけない部分との区別が難しい為です。
先に作ったPC版のページを編集するルーチンを利用して、簡単な変換用のプログラムを組みました。

前年分も簡単に変換できるはずですが、サイトマップを修正する方を先に片づけるつもりです。
サイトマップへの追加ルーチンも作りました。

後は、FTPのプログラムです。
当初、FTP関連は修正が要らないだろうと考えていました。
実際に試すと、エラーで止まります。

完全な検証はしていませんが、事前のエラーチェックで止まっていました。
逆に、チェックをしなければ動いていたと思います。

FTPは、
ftpput "temp20/200624yo.htm"
ftpput "temp20/sp/sp200624yo.htm"
という形でどちらもputできます。
つまり、ディレクトリ移動せず、ルートからのパスを指定してやると動きます。

200628追記
今日新規に観察メモを1ページ追加しましたので、結果がはっきりします。
予定通り動いていました。
スマホ版観察メモ追加作業には積み残しもあります。
観察メモ追加作業にはFTPでのアップロード作業もあります。
FTP作業中、関係のファイルが、事前にアップロードされていない事と、事後にアップロードされていることをチェックしています。
しかしながら、今回追加したスマホ版のページに関しては、これを省略しました。
手抜きなのですが、ここまで、このチェックで止まった前例がありません。
まあいいか、という事です。






200501
トップページの改修
トップページをほんの少し変更しました。
下の画像は変更前の画面コピーです。改修後は現在のページです。

文章を少し変えた他、体裁を少し変えています。
何しろ、元々、1024x768ピクセル程度のCRTで見る前提でした。それに、表組が基本の組み立てです。
それでも、窓で見るる分には普通に見えるのですが、最近の大きなディスプレイで、全画面表示にすると、ただ横にだだっ広い隙間だらけの配置になってしまいます。

これを、今では当たり前の、中央にまとめてバランスよく表示するようにしたいと考えていました。
調べてみると、いくつか方法がある様です。
<meta name="viewport" content="width=1000"/>、とか、
<style type="text/css"><!--body {width:1000px;margin:auto;}--></style>、とか、です。

実際に試すと、metaの方は効果なしでした。
いえ、私が知らないだけで、何か足りない物があるのでしょう。
幸い、styleの方で、期待通りになりました。
本来は、全部のページを同じようにしないといけません。
ただ、膨大な数になります。保留です。

さて、後はプログラムの問題です。
丁度、文章を変更した部分に現在の掲載数が含まれています。
このままでは、この部分を扱うログラムが動きません。
後日、こちらも対応しました。



200425
文字コード

Windows10のメモ帳の文字コードが、UTF-8標準になっています。
調べてみたら、2019年6月のWin10の1903から、変わったようです。

さて、今回のトラブルは、
下のテキスト変換のプログラムの作業中に、突然、文字化けが出てきました。
mesboxに表示しているものですが、今回は、32KB問題ではなさそうです。

ほんの数文字のテキストでもゴミが出ます。
今回は、文字数の増減はありません。単に文字化けです。

古いテキストファイルは、大半Shift_JISで保存してあります。
これは、今でもWin10のメモ帳で普通に更新してもコードは変わりません。
元の文字コードが維持される為でしょう。

プログラムのテストをする為に、単純で短いテキストファイルで試します。
もっとも単純にと思って、半角数字の123だけというテキストファイルを作りました。
問題はありません。
次に、やはり漢字も入れてみるかと、123試験、とかいうテキストにしてみました。
ここで、文字化けが発生しました。

こうやって、順番に書くと、原因は明確です。
もう一つ、要因はあります。半角文字の場合、Shift_JISもUTF-8もコードは同じです。
テキストエディタでは区別できません。
そこで、半角数字だけのファイルを作った時、メモ帳ではUTF-8と判断され、保存されてしまいます。
しかしながら、HSPではShift_JISとみなして、想定通りに作業を済ませます。
半角だけのファイルの場合はどちらも同じコードですので。
そこに漢字を追加すると、今度は、といいますか、今度も文字コードを維持して、UTF-8で保存されてしまいます。
そうすると、HSPが誤作動するのです。
HSPでは、何もしなければ、相変わらずShift_JISとして処理します。

直接に関連は無いのですが、
文字コードと言えば、我がサイトは当初からShift_JISを使っています。
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">、です。

いえ、開設当初、多少は迷いました、
ページを作る際、文字コードを何にするか、最初に決めないといけない問題です。
UTF-8も当時からありましたかね、ISO-2022とか、EUCとかの選択肢がありました。
結局、当時はポピュラーだったShift_JISで始めました。
現在では、Shift_JISは、どうやら置いて行かれている様です。

しかしながら、私の所では、ここまでは、Shift_JISが正解でした。
その後、始めたHSPが、原則Shift_JISでしたので。
サイトの構成ファイルの中にはUTF-8等でないと受け付けられないファイルもあります。
HSPには、その場合のコマンド、UTFファイルを生成するコマンドも用意されています。
一つのファイルなら、一手間加えるだけです。だったと思います。

現在では、UTF-8が主流の様に見えます。
そこで、一括で変換する事が検討課題には上ります。
しかし、ページが大変な数です。
確か、この為のコンバーターがあったはずです。
ですが、残念ながら、文字コードをコンバートしただけでは解決に至りません。
文字コードを変換したら、プログラムも対応させないといけないのです。
今では、これが面倒なのです。
つまり、様子見です。

200420
mesbox、文字数制限

HSPのmesboxに表示できる文字数に制限があることを知りました。

少し大きめのテキストを表示するプログラムを作っています。
90KBほどのテキストファイルで、その内容を読み込んで、多少の変換をして表示するものです。

3つのmesboxを作り、そこに表示していきます。
ボックスは、読み込んだばかりの元のファイルの内容、それを変換したもの、更にもう一回変換したもの、を表示する為です。

ファイルが大きいせいで、結構時間のかかる作業になりました。
90KBで試そうとすると、2回の変換作業で、約11分かかります。
そこで、早く結果を見る為に、最初は、仮の小さなファイルで動作試験をしていきました。
数KBのテキストで試すと数秒で終わります。
いずれにしろ、テキストファイルを扱うだけです。さほどの問題は出てきません。

作業に目途がついた段階で、目的の90KBのファイルで試しました。
これがうまくいきません。
結果にゴミが付くのです。テキストの末尾に10バイトほどのゴミが付いて帰ってきます。
それだけではなく、テキスト自体が入れ変わる場合もありました。(これはプログラムのミスかも知れません。ただ、以下の対策後には異常は出なくなりました。)
困りました。

当初、テキストの中に元々ゴミか何か原因になる物が有るのかと疑いました。
動作異常を起こすようなテキストではない物があるのではないかと。
ただ、プログラムは、たとえテキストにアスキーコードでない部分があっても対応しているつもりでした。
つまり、バイト単位で変換するものです。

いずれにしろ、ファイルのどこに原因があるか調べないといけません。
ファイルが大きいせいもあり、眺めたぐらいでは分かりません。
そこで、ファイルを分割して調べることにしました。
どんどん分割して試していけば、そのうち、原因の個所に出会うだろうという考えでした。

90KBのファイルを半分にしてもゴミが出ています。
そこで、さらに半分にして調べました。
今度は正常です。驚くことに、その四分割したファイルを個々に全部調べても、どれも異常が出ません。
2分割したものは、どちらも異常な結果になります。

ここに至って、ファイルの大きさ、テキストの長さが原因ではと勘繰るようになりました。
ゴミが付くと、少しばかりテキストの長さが大きくなります。
先のmesboxに入れた前後でテキストの長さを調べてみました。他の場所は、もう調べる場所もないのです。
結果は、mesboxの後でゴミが付いていました。
しかも、30KBを超えたあたりの大きなファイルだけです。

そこで、mesboxの仕様を調べてみました。
ヘルプでは出てきません。
ネットで調べて、ようやく32KBの限度があることが分かりました。
回避する方法はあるようですが、よく理解できません。
仕方が無いので、mesboxには表示しない事にしました。

内容を見るには、ファイルを保存してテキストエディタで見るか、
よくやる方法ですが、クリップボードに転送して、やはりエディタに貼り付けて見る様にしています。

200425追記
掲示板にあったスクリプトを使わせていただき、限度のないmesboxに変えました。
ゴミは出なくなりました。

200526追記
上の拡張ボックスで表示させると、大きなテキストでは表示に時間がかかります。
300KB程度のテキストで13秒程です。
ちゃんとした解決方法があるのかもしれませんが、分かりません。
やむを得ず、テキストの一部だけを表示するように変更しました。
10KBで1秒、100KBで3秒程度になりました。



200406
ftp、stat

自分のサイトの更新にftpを使っています。
HSPでftpのコマンドが使えることを知ってからは、ページの生成とftp転送を一体化して使っています。

ftpコマンドは、netinit、ftpopen、ftpdir、などです。
これらについて、私の理解が間違っているのかもしれませんが、statが説明の通りに値を返しません。
説明では「実行に成功した場合は、システム変数statに0が代入され、失敗した場合はそれ以外の値が代入されます」、と書いてあります。

実際には、私の環境では、成功失敗にかかわらず、stat=0、です。
我がNiftyのサーバーだけがそうなのかもしれません。
私の使い方が間違っているのかもしれませんが、いくら調べても分かりません。
困ったものです。

仕方が無いので、逐一、エラーを発生させたり、させなかったりして、ftpresultを調べました。
この違いを確認することで、失敗成功を分けています。


200303
ループの中のwait
HSPで画像ビューアを作り始めてから、もう1年半ほどになります。
行き当たりばったりでスクリプトを追加してしまうので、大きく複雑になって困っています。
最近、特にもたつきが目立ってきました。
扱うのが一眼レフの大きな写真です。インタプリタ的なツール(多分)では、ストレスのない程度に動かすことは、無理筋なのかもしれません。

実は、ちょっと前、突然、昔読んだような記憶が湧き上がってきました。HSPでは、ループににwaitを入れないといけない、という記事です。私の記憶自体、あてにはならないものでしたが。
まあ、そうだったかもしれないなと、入れてみました。wait 1です。ループは10箇所ありました。
繰り返しの回数は、小さいものは10回、大きいものは、写真の数ですので、数百、たまには、500とか1000とかになる事もあります。

最初に書いた通りで、最近、このビューアの動きがとても悪くなっている事に気付きました。
そこで、再検討しました。このwaitです。
wait 1は10ミリ秒とあります。つまり100回まわすと、waitだけで1秒消費することになります。
これは体感的にはかなりの時間になります。
結局、全部外しました。

で、マニュアルを読み直しました。以下の通りです。
「HSPではキーを押さないと進まないなどの無限にループになる可能性のある部分では、 必ずwaitかawait命令を入れる必要がある」、と書いてありました。

これを勘違いしたようです。
この意味は、例えば、ループさせておいて、getkeyでキーコードを受け取る場合には、そのループにwaitを入れておかないと、帰ってこない。という意味のようです。

私もgetkeyを使っています。場所はかなり複雑なループの中です。
そこで試しました。waitは入れても外しても同じです。目的のキーを認識します。
単純なループではwaitを入れろ、という意味なのでしょうね。
あるいは、試していませんが、実行ファイルでは危ない、という意味かも知れません。

私は、元々、用心のため、ループにはいつも、 if cnt>3000:dialog "err":end、みたいな一行を入れています。
これでまあ、強引にcntを変更しない限り、止まらない事は無いはずです。多分。

この、waitの勘違いだけではないと思います。
他にも、同時にスクリプトの整理も進行中です。
ちょっと見には、かなり軽くなったように感じます。



200209
TExchange、写真集の掲載枚数チェック

現在取り組んでいる画像ビューアで、作業中に、写真集のページの掲載枚数を調べて警告を出す事を思いつきました。

この写真の枚数を調べるスクリプトは、既に幾つか作ってあります。
その一つは、観察メモを作る時、その鳥種について写真集の枚数をカウントして表示するようにしています。

ですので、その時作ったものを利用すると、そんなに面倒ではないはずです。
本来は、それが独立したルーチンにしてあり、適当な引数を付け、呼び出せば済む、という事でしょうが、そうはいきません。いつも、行き当たりばったりなのです。

ビューアでは、写真の出来をチェックしながら、まともな写真があれば鳥種ごとのフォルダにコピーをする、という作業をやります。
このコピーの作業で鳥名が特定できますので、対応する写真の数を調べられます。
写真集のファイル名もローマ字になっています。
鳥種ごとのフォルダはローマ字に統一してあります。

そこで、予め、写真集の50音順の目次のページを読み込み、
鳥種ごとのページのファイル名のリストを作ります。
そのファイル名から鳥名のリストも作っておきます。
次に、その鳥種のページを全部読み込み、写真が何枚あるか、リストにしておきます。
つまり、起動時に、ページに掲載してある鳥種の鳥名と写真数のリストを作っておくことにしました。

なお、この際の鳥種は336件になりました。
サイトのトップページにある掲載数の313種は純粋な鳥種で、50音順の目次のページには動物等の写真もありますので数が増えます。

さて、という事で、ビューアでコピー先のフォルダを作った時、そのフォルダ名を参照することで、ページに掲載してある写真の枚数が分かります。
その数が5枚未満ならダイアログを出すようにしました。
つまり、写真集用の写真があったぞ、という訳です。

ここまでが前置きです。
この作業中に、問題を見つけました。
写真集のページのファイル名が完全な鳥名になっていないものがあるのです。
例えば、ジョウビタキのページは、zyoubitaki_f.htmとしていました。
全部がこの形なら対応ができますが、シベリアオオハシシギは、s_oohasisigi.htmとしていました。
いずれも初期の頃の写真です。当時はプログラムの事は考えていません。
ジョウビタキは多分、メスという意味でしょう。
シベリアオオハシシギは名前が長すぎるので短縮した覚えがあります。
何しろ、8.3形式の世代です。長いファイル名には無意識な抵抗があります。中途半端ですが。
都合、5枚がこのような状況、完全な鳥名に一致しませんでした。

これを対応しました、
最初に考えたのが、ファイル名を変更してちゃんと鳥名にする、という事です。
先の例ですと、ページのファイル名をzyoubitak.htm、siberiaoohasisigi.htmと変更したら、問題は出ません。
ところが、ファイル名を変更するだけだと問題が出ます。リンクです。
そのページをリンクしている構文を書き換えないといけません。

ここで頼りになるのが、TExchangeというフリーソフトです。
テキストファイルの中の文字列を一括で置換してくれるソフトです。
まさにこのような場合に使います。とても便利です。

TExchangeを起動して、ページを保存しているローカルのフォルダのファイルを対象にします。
ファイルが4500枚ほどありました。
起動に数十秒かかりました。
指定する文字列の検索と置換が出来ます。
zyoubitaki_f.htmを指定して、まず検索してみます。この作業に数分かかりました。
ファイル数が多いのでやむを得ません。
結果、対象ファイルが21個、件数で25件あると出ています。
同じページに対象の行が複数ある場合です、件数が増えていきます。

対象の行も一行全部、対象のファイル全体も表示されますので内容も分かります。
全部リンクのようです。
こんな感じです。<TD><A href="shtm06/zyoubitaki_f.htm">ジョウビタキ</A></TD>
これを、TExchangeで一括置換すると作業完了です。

完了のはずなのですが、これは実施しませんでした。
一括で変更することを、ちょっと心配しました。
冷静に考えると、強引に置換実行でよかったと思います。

以前、TExchangeが無ければ事実上無理だったと思える作業をしたことがあります。
サムネイル写真の入れ換えです。
何年か前、サムネイル写真を多少大きくしました。
この時、写真集の全ページの書き換えが必要でした。
多分、数千か所の一括書き換えをやったと思います。
手書きではまず無理で、TExchange(あるいはこれに類するアプリ)がなければ、検討することもなかったでしょう。

今回は、見苦しいですが、ソフトで対応できましたので、書き換えはしませんでした。
先のリストの中から、分かっている5件分をif文で抜き出して書き換えてしまいました。
問題を先送りしただけかもしれません。

200212追記
このページが大ききなりすぎたせいでしょう。HPBでの編集時にカーソルがまともに動きません。
2019年以前を別のページに分離しました。
最下段にリンクを置きました。


200125
onkey、oncmd、sendmsg

画像処理には、XnViewを使わせていただいています。これで必要十分です。十分すぎますけど。

恐れ多くもこれの真似をしようと思い立ち、独自の画像ビューアに挑戦していて、もう1年半ほどになります。
ま、このメモにあるページ関係のプログラムが落ち着いていて、勉強のために何か新しい事を、と考えたものでした。

画像処理といっても、私の場合、大半の作業は写真の削除です。
あと、多少なり写りのいいものを鳥名ごとにコピーする作業があります。
そこで、この削除とコピーに特化したビューアを作ろうと考えました。2年近く前です。
スクリプトは既に8000行を超えています。
そこはHSPです。各作業に多少時間がかかるのが難点ですが、一応不自由のない程度には動いています。

この作業中の、リストボックス内での動作に関するトラブルです。
大まかな流れは、
まず最初に、リストボックスに写真ファイルの一覧を表示させます。
次に、ボタンを使って、リストボックス内のポインタを移動させます。
次に、同様にカーソルキーなどでもポインタの移動をさせます。
具体的には、onkeyを使って押されたキーを補足し、カーソルキーならボタンと同じ動作をさせます。
そして、ポインタのある行の写真をgzoomで表示させます。
ここまでは、よくあることで、問題はありません。

次に、マウスを使ってもリストボックス内の項目を移動させたいと考えました。
つまり、listbox内のどの行をマウスでクリックされたか把握する方法です。これが面倒というか、自分の能力の外でした。
調べてみると、HSPの掲示板などで、これに関してoncmdとsendmsgを使う方法が紹介されています。
oncmd gosub *xxx,$111と
sendmsg ID, $188,0,0を組み合わせるものです。
おかげさまで、これでクリックされた行が把握できています。
行が分かれば、ファイル名が分かり、写真を表示させます。

この作業を進めていくうちに、問題に気付きました。
マウスでリストボックス内の行を指定した後、更にカーソルで行を移動しようとすると、2行移動してしまうのです。

説明が面倒ですが、
aaaaa
bbbbb
ccccc
ddddd
eeeee
というリストがある時、

最初に、ポインタはaaaaaにあります。
これをマウスでbbbbbをクリックして、ポインタをそこに移します。oncmdで移動させた行が分かります。
更に、カーソルでcccccに移動させます。onkeyでカーソルキーを把握しての作業です。
当然、ポインタを一つ増加させますので、ポインタはcccccに移動すべきなのですが、
何故かそこを飛び越してdddddに移ってしまいます。
以降は、カーソルを使うと、同じように一つ置きに移動するようになります。

正確には、最初にポインタがaaaaaにある時、ボタンとonkeyを使って、別の作業をしています。
画像の拡大と画像の表示域の変更(ま、スクロールです)です。
そして、この二つの作業をしていない時は、この問題は発生しません。困ったものです。

気が付いてから、一週間ほどは悩みました。
実際には、かなり前からこの問題を抱えていたようで、気が付くまでかなりの日にちが過ぎていました。

もっとも、特殊な動作で発生します、普通にはこのような作業はしません。
本来、単純な作業の連続の場合、動作が早くて楽なのは、キーボードでの操作です。
マウスクリックを挟まない限り、問題は発生しません。

しかしながら、放置する訳にはいきません。原因追及に苦心しました。
oncmdの実際の動作が今一つ分からないので、対策が試行錯誤になりました。
本来は、oncmdの根本に帰って作業をすると簡単な事なのかもしれません。

最終的に、oncmd gosubを、oncmd gotoにすることで解決しました。
onkeyの方は、最初からgotoでした。

プログラムの基本に、gotoを多用すると流れが分かりにくい、と言われていました。
ただ、最近のスクリプトを見せていただくと、結構gotoが使われているように思います。
そこで、今回、最初から、どちらでもいいような場合はgotoを使うという前提で始めたものです。

原因を私なりに考えたことは、(全くの勘違いかも知れませんが)
oncmdはプログラム動作中、常時監視している、
onkeyはstopの所でのみ有効になり、監視が始まる。
以前、oncmdがonkeyより優先して発動される様な経験があったような、おぼろげな記憶があります。
つまり、onkeyで項目を移動させると、即oncmdで項目移動を補足してしまい、onkeyはその後、さらに移動をさせてしまう、のではないかという事です。
理屈はよく分からないながら、結果的に、二重に認識されていると想像しました。

対策は、gosubをgotoに変え、
oncmdで変化を把握した直後に、oncmd 0を入れる。
onkeyでも同様にonkey 0を入れる。
oncmd 1やonkey 1はstopの直前に置く。
この為に、stopは分散させず、全部のルーチンを作業後はstop専用のルーチンに戻し、そこでstopさせる。
oncmd 0の方は、面倒ながら、ほぼ全部のサブルーチンに入れてしまいました。
こうして、極力、stopの所でのみ、oncmdが有効になるようにしました。

なお、oncmd 0等はgotoに変更する以前から、あちこちに入れていました。
解決したのは、oncmdをgotoに変えた後でした。



200112
Runtime Error、NumLock、onexit

またしてもランタイムエラーです。
下のメッセージと同じものです。
今回は原因は分かりました、いえ、原因が分かるほどの知識は無いのです、ただ発生個所がはっきりしていました。
HSPの掲示板で紹介されていた関数で、NumLockをオンオフするものです。
紹介されていた関数は期待通りに動いていました。

画像ビューアのプログラムでテンキーを使いたいので、紹介されていた関数を使わせていただいて、起動時にテンキーをオンにするようにしました。つまり、NumLockをオンにします。
期待通りに動いています。

しばらくして、プログラム終了後もNumLockがオンのままでは困ることに気付きました。
通常の使用で、テンキーにあるDelボタンを頻繁に使うのです。NumLockがオンの状態では、このDelキーには小数点の「.」キーが割り当ててあります。Delキーとして使えないのです。
そこで、プログラム終了直前にオフにしようと、同じ関数を配置しました。オプションを変えるだけです。

このオフのところで、先のランタイムエラーです。
NumLockオフを入れるとランタイムエラー、入れないと、NumLockオンのままですが、エラーになりません。

ネットで調べて、どうやらonexitとの絡みだと考えました。
その時は、

起動、
NumLockオン
onexit 1
・・
NumLockオフ
onexit 0
終了
としていました。

そこで、順番を変えて、
起動、
NumLockオン
onexit 1
・・
onexit 0
NumLockオフ
終了
と変えてみました。ま、ファーストイン、ラストアウト、ですね。昔は、Push、Popと言っていましたか。

これで、エラーは出なくなりました。


200212
ページを分割、2019年以前を分離しました。

半自動化メモ(2019年以前)へ

このページについて(110513)

このサイトのページ制作は、かなりの部分を半自動化しています。

写真を撮って、ほどほどの写りだったら、あるいは、写りは問題外でも記録として貴重なものなら、ページを作って写真を掲載する事になります。
一つのページを作る作業自体は、単純なものです。テンプレートも作ってあるので、そんなに時間はかかりません。

ただ、相互に関連するページが複数あり、それを書き換えねばなりません。
しかも、この関連するページが、場合によって違います。
簡単な場合で4ページ、最大だと20ページ程度を書き換える事になります。
関連とは、ほとんどリンクがらみです。間違えると、当然、リンク切れになります。

一つ一つは単純だけど全体では面倒な作業、これこそプログラミングに最適なはずだと思い当たりました。

ツール(プログラミング言語)はHSPを使っています。
このページは、そのプログラム制作の経過です。


トップページへ 前のページに戻る