CafeLogを改造 ページタイトルを記事タイトルに変える
2021.08.18
CafeLog 大変便利に使わせていただいております。
作者様にはとても感謝しております。
CafeLog v5.02をしばらく使わせていただきましたが、
その私が今一番感じている問題があります。

CafeLogのページタイトルがブログのタイトル名になっているために
Googleなどの検索エンジンにクロールされない(;´Д`)
つまりアクセス数が伸びない仕組みだということ。

つまりうちのブログで言うと、ページタイトルが「Randol News」となっているため、
何の記事なのかロボットが理解できず検索エンジンの優先順位が落とされているということです。

まぁ、アクセス数を稼ぐ心算で始めたものではないので今までは良かったのですが、
最近は多いに越したことないなと思うようになり、
疑問に思ってしまった以上、解決しなくては気持ち悪い。
というわけで試行錯誤で解決策を考えていきたいと思います。

最新のVer5.11ではソースを覗いてみるとこの問題は対応されているようですので
過去バージョンを使い続けている人専用の改造となります。


まず、テンプレートの中身を覗いてみましょう。



titleタグの間に見慣れない記号「!title!」があります。
subjectタグの間にも「!subject!」があります。
はて?私はこの「!~!」という物の存在を知りません。
私の無知で理解が追い付かないだけなのかもしれないと思い、
ネットで調べまくってみましたがそれでもわかりませんでした。
テンプレートという意味合いから変数的なものと独自解釈しましたが、
!title!を!subject!にしてしまえば、記事タイトルをページタイトルにできるのですかね?
試しに変えて実験してみました。
結果は・・・・・失敗
タイトルにはそのまま!subject!と表示されただけで変化はありませんでした。
手ごわい(;´Д`)
手抜きはダメですね。仕組みを調べて大元を弄る必要がありそうです。

!~!は開発者の独自記号なのでは?という推理を立てて
どこかに記号を文字に変換する記述があるかもしれないと判断。
そこでsys\libフォルダ内(5.00以降はadmin\libにフォルダ名称が変更されています)の
テキストファイル全てに「!title!」で検索をかけ
該当するファイルを探してみます。

ありました(;´Д`)



sys\lib\ref_chg.pl の中に。(5.00以降はadmin\libにフォルダ名称が変更されています
おそらくこのPerlファイルがテンプレートを実データに変換する集合体なのでしょう。
61行目の
$tmpl{index} =~ s/!(title|subttl)!/$cf{$1}/g;
がブログ名をページタイトルとして置換している部分です。
これをいじくってしまうと看板帯の文字も連動して変化してしまうので、
はて、どうしようかなと。

あとこのブログシステムは、各記事を一覧として表示する画面と、
記事番号ごとに収録するart
日付けごとに収録するday
月ごとに収録するmon
カテゴリーごとに収録するcat

の4種に記事が保存されています。
私が加工したいのは記事だけのページのタイトルを変えたいので、
art以外はタイトルは「Randol News」でいいのですよ。
artだけ記事タイトルがページタイトルとして載ってほしい。
この2面性をクリアするのはどうしたらいいのだろう(;´Д`)

家に帰ってきてからの空き時間でじっくり眺めること2日、
大体このプログラムの流れが分かりました。
このブログCGIは、ヘッダ部分は全て共通パーツとして考えられています。
この仕組みが根本にあるので記事タイトルをページタイトルとして使うなんて発想は無かったのでしょう。
なので、わざわざメイン処理にヘッダを組み込む必要が無いということで、
メイン処理から完全に除外されており、ヘッダは「変更反映」時にドッキングする
という仕組みが取られています。
完全に切り分けられているせいで、メイン処理のループ内にあるsubjectの値をそのまま参照し、
ヘッダのタイトルを記事毎に加工することは非常に困難となっています。
(後日追記:この記事を書き終えた後に最新の5.11のソースを解析してみたら、
Subjectの内容を記事数分すべて収める配列を用意して、
ドッキングするときに配列の中身を覗き見るという形に変更されていました。
私が面倒と思っていた部分にしっかりメスをいれていましたね。
真似ればよかった(;´Д`))


そこで考えました。夢の中で。簡単に数行書くだけで解決できないものかと。
ヘッダー、ボディ、フッターが完全にドッキングされ保存される直後のデータを覗き見て
そこを加工するのが一番簡単なのではないかと。
その箇所は384行目からの部分



386行目に空白がありますが、そこにプログラムを追加していきます。



こんな感じです。
Pealは馴染みが無いため、後の自分のために注意書きを残していますが、
ちょっち見苦しいのでカットしたものを以下に書きます。

my $headart = $head;
my $LeftKey = index($day, "subject");
my $St = $LeftKey +9;
my $i= $St;
while (substr($day, $i, 6) ne "") {$i++;}
my $teststr = substr($day, $St, $i-$St);
$headart =~ s/Randol News /$teststr/g;

画像にも書きましたが、一番下の行に自分のブログ名を入れる必要があります。
ブログ名の後ろには半角スペースを1つ入れるのを忘れずに。
この文はRandol Newsという文字が見つかったら記事タイトルを差し替えるというものです。
398行の$headを$headartに変えるのは不変のHeadをいじるわけにはいかないので
中身をコピーし改変したHeadartを利用するためです。

全て書き換え終わったらref_chg.plファイルをアップし更新。
次にCafeLogの管理画面に入り、「テンプレート編集」に入ります。



何も弄っていない場合は、↑この様になっていると思います。
それを↓の様に書き換えます。



!title!や!subject!と書かれている部分を直にブログ名を入れ込むのです。
2か所ありますが、上の部分にはスペースを入れることを忘れずに
このスペースがある無しでページタイトルか、ヘッダー部分の帯なのかを判断しています。

書き換えが終わったら、「変更反映」を実行することで
Artフォルダに保存される固定ページにはタイトルに記事名が表示されるようになります。
正直、自分でも美しい改造とは思っていません。
テンプレートの中身を弄ってしまっていますからね。
でも簡単に終わらせるのであればこれが一番楽かな・・と

これでアクセス数は上がるかな?(;´Д`)
AlienwareのVT-xについて
2021.08.15


VTとはIntel Virtualization Technologyといって、
仮想環境を実現するためのハードウェア支援機能です。
この機能があると、Windows10の画面上で新たなwin10やwin7、
Linux、Androidなどを動かすことが簡単になります。
いわゆる仮想PCを快適に動かす機能と言えばわかりやすいでしょうか。

ではこの機能はどうやって有効にするかですが、
一般的に最初から有効になっていることが多いようです。
最近のパソコンではBIOSの設定画面上に
「Intel VTT」とか「Intel VT-d」とか「Intel VT-x」
といった項目があります。



↑は富士通のビジネス用PCですが、選択項目があります。
古いPCなので、「Virtualizaion Technology」という項目になってますね。



Alienwareの過去のモデルではAdvancedの項目にあったという情報がありました。
私の使っているAlienware Aurora R11にはVTの設定箇所がありません。
このような項目がなぜAlienware Aurora R11には無いのか。
海外でも問題になっており困っている方が多いようです。

確かに使う使わないに関係なく、
ビジネスPCにあるのにハイエンドPCであるAlienwareに無いというのは
ちょっとイラっとします(;´Д`)

私はVMwareを長く愛用してます。
特に開発言語系のアプリは新しいPCに買い替えると移植がメンドクサイので
仮想PCにインストールして何処でもどのPCでも扱えるように環境づくりしています。
ホストPCがVT-xに対応していると仮想PCの処理速度の向上に結びつき、
最近はAndroidのエミュレート等で要求されたりと結構重要なのです。
そこで実際のところAlienware R11では対応しているのかどうなのかを検証してました。



ハードウェアがVT-xをサポートしているのか?ということですが、
Intel® Processor Identification Utility
をインストールして実行することで確認することが可能です。
入手先は↓
https://www.intel.com/content/www/us/en/download/12136/28539/intel-processor-identification-utility-windows-version.html?v=t
私のPCでは画像の通り、VT-xの対応は問題ないようです。
では機能が有効になっているかどうかの確認ですが、
それはWindows10のタスクマネージャーを見ることで確認が可能です。



これを見る限り、Windowsでは有効と判断しています。
この2種類のツールをもってわかることは、
BIOSでは選択項目は無いにしても有効のまま機能している。
ということです。

動作に問題が無いことはわかりました。
機能をOffにしたいことはまず無いのでこれからも問題になることは無いでしょう。
私の疑問は解決したのですが、これでは納得できない方のためにもう一段階踏み込んでみます。



現在のBIOSを確認。
Ver1.01って意外と初期の初期です(;´Д`)



現在DELLにBIOSを拾いに行くと1.07まで進んでいました。
一年でここまで進むとはなかなかにペースが速い(;´Д`)
Dellから緊急の更新として配られていたので
今回更新するのはいいタイミングかも。
このBIOSを組み込んだらVT-xの項目が現れるのか確かめてみます。



昔に比べたら安全になったとはいえ、BIOSのアップデートは怖いですね(;´Д`)



無事、アップデートが完了しました。
前回のアップデートもそうでしたが、
アップデート完了後、勝手に再起動してくれるのはいいのですが、
その再起動は正常に立ち上がってきません。
エイリアンロゴも表示されない暗黒のままです。
失敗したかと焦ります(;´Д`)
ま、電源を強制的に落として電源再投入すれば正常に起動してくれました。



再び、Advancedを覗いてみます。
PCIeの項目が1つ増えているだけで、
残念ながらVT-xの項目はありませんでした。



VMwareの設定を覗いてみます。
問題なくVT-xの項目にチェックを入れることができます。



もし↑のようにチェック項目がグレーアウトして設定できない場合、
それは仮想PCがサスペンドのまま終了している可能性があります。
一度立ち上げて、完全にシャットダウンしてみると大丈夫だと思います。
私はこの謎でかなりの時間を費やしました(;´Д`)

結果、機能は有効である。だがOffにはできない。
ELEGOOの商品紹介
2021.08.06
立て続けにELEGOOもリンクの提供をしてくれました。
専用のリンクなので今後ウチ専用の割引情報なんてのも可能になるかもしれません。
これから3Dプリンターを買う予定の人は要チェックです(`・ω・´)b

ELEGOO Saturn

ELEGOO Saturn 8.9" 4K Mono LCD 3D Printer
ELEGOOの大型機。
4Kモノクロの8.9インチ液晶搭載では一番のコスパかも?
PCからLAN経由でデータを送信可能です(ただしストレージの代わりとしてUSBメモリを挿しっぱなしにする必要あり)
他の大型機でも同様ですが、レジンバットとビルドプレートが大きいため、
プレート落下による液晶破損、レジンの消費量増大、造形物の重さによるサポート折れ等
一癖も二癖もあるので、大きい制作を行わないのであれば、
5インチ~6インチを買うのがお勧めです。安いですしね。

ELEGOO Mars 2

ELEGOO Mars 2 Mono LCD 3D Printer
ELEGOOでお得感が高いのがコレ。
21,798円という低価格で購入可能です。
2K HD解像度の6.08インチモノクロLCDを搭載したこのモデルは
4Kでありがちな解像度に起因する造形ミスが起きにくいので
初心者にも入りやすいモデルとなってます。
低価格追求の為かレジンバットがプラスチックなのがいただけませんが、
物足りなくなったら金属のレジンバットが
パーツとして販売されているので安心です。


ELEGOO Mars 2 Pro

ELEGOO Mars 2 Pro Mono LCD 3D Printer
概ね1つ上のMars2 Monoと一緒ですが、
最初からレジンバットが金属であることが優位点です。
値段も¥28,337なので少し高め。

ELEGOO Mars Pro

ELEGOO Mars Pro LCD 3D Printer
2年前の高性能マシン。
時代の流れとともに低価格モデルとなってしまい
19,618円で売り出されています。
送料は別ですが、2万を切る価格はインパクトが強いと思います。
これよりももっと安いのが欲しいということであれば、Proじゃないモデルが16,348円であります。
ELEGOO Mars UV Photocuring LCD MSLA
2年前のスタンダードモデルですが、もはや紙印刷のプリンターより安い(;´Д`)



ELEGOO MARS 3 LCD 3D Printer
最近発表された新型も侮れない様子です。
全力でSonic Mini 4Kをターゲットにしています。
液晶サイズと解像度は同じ。造形エリアの高さはMARSの方が上回っているようです。
更に価格もかなり安くなっており、いまなら約33,000円で買えます。
送料は不明ですがFEPフィルムを3枚おまけということでお得感が高いです。
8月30日から発送ということでかなり戦略的です。
今のタイミングを逃すと価格と納期はどうなるかわからないので、
買う予定がある人は早めに決断した方が良いと思います。


ELEGOO Mercury Curing Machine
最後に超便利な紫外線照射装置のリンクをば。
詳しい紹介は過去のページ(https://randol-news.net/art/00353.html)を参照で

- CafeNote -